新闻详情

新闻详情

首页 / 资讯中心 / 详情

小白程序员轻松上手大模型工具调用,让你的模型从“聊天”变“干活”!

发布时间:2026/10/2 13:51:48来源:尧图网络
小白程序员轻松上手大模型工具调用,让你的模型从“聊天”变“干活”!
本文介绍了如何通过工具调用让大模型从简单的聊天机器人进化为能够执行具体任务的智能助手。文章详细讲解了工具调用的两种方式直接硬调和绑定模型以及一次工具调用的四个核心消息流程。此外还介绍了如何创建工具、使用docstring作为产品文档、以及通过Pydantic进行参数校验等实用技巧。最后提出了使用tool_choice强制模型调用工具的方法帮助开发者更有效地利用大模型的能力。一、Tools 很重要让模型从“聊天”变成“干活”工具扩展了智能体的能力——让它能拿实时数据、跑代码、查数据库、甚至在真实系统里写数据。本质上工具就是一个可调用的函数有明确的入参和出参。模型根据对话上下文自己决定要不要调、调哪个、传什么参。一句话记住你写函数模型写“意图”你俩配合出结果。二、两种调用姿势工具调用Tool Calling也叫函数调用Function Calling。方式1直接硬调调试用tool def get_girls(city: str) - str: 获取指定城市的美女信息 参数: city: 城市名称如北京、上海 返回: 城市的美女怎么样 return city 的美女 GOOD!!! response get_girls.invoke({city: 北京}) rprint(response)方式2绑给模型✅ 生产这么干三、经典闭环一次工具调用的 4 个消息用户提问 → 模型吐tool_calls→ 你执行函数拿到ToolMessage→ 再喂回模型 → 模型说人话。完整跑通代码from langchain_core.messages import HumanMessage messages [HumanMessage(北京的美女如何)] # 1. 模型决定调工具 response model_with_tools.invoke(messages) messages.append(response) # 2. 执行工具拿到 ToolMessage 追加进历史 for tool_call in response.tool_calls: if tool_call[name] get_girls: tool_response get_girls.invoke(tool_call) print(type(tool_response)) # class langchain_core.messages.tool.ToolMessage messages.append(tool_response) # 3. 把工具结果再交回模型生成最终回复 final_response model_with_tools.invoke(messages) print(final_response.content)终端输出长这样你截图里那个终端窗口就对应这段 messages Human Message: 北京的美女如何 Ai Message: Tool Calls: get_girls(city北京) Tool Message: 北京 的美女 GOOD!!! messages Final: 根据查询结果北京的美女非常棒 评价为 GOOD!!!四、创建 Toolsdocstring 就是它的“产品文档”用tool装饰器最省事函数的 docstring 会自动变成模型的工具说明。tool def get_girls(city: str) - str: 获取指定城市的美女信息 参数: city: 城市名称如北京、上海 返回: 城市的美女怎么样 return city 的美女 GOOD!!! rprint(convert_to_openai_tool(get_girls))转成给模型看的 schema 之后长这样⚠️ 坑1docstring 必须写 Google 风格Args:/返回:这种缩进结构LangChain 才认得出来去解析。写# 查天气或者 NumPy 风格模型就容易猜错参数。convert_to_openai_tool会从docstring加载参数说明这里的docstring必须遵循Google 风格开启严格解析更稳tool(parse_docstringTrue) def get_girls(city: str, height: int) - str: 获取指定城市的美女信息 Args: city: 城市名称如北京、上海 height: 参考身高如 170、180 Return: 城市的美女评价 return f{city} 的美女参考身高 {height}cmGOOD!!!五、进阶用 Pydantic 把参数锁死模型偶尔会传字符串代替 int或者编造一个不存在的枚举值。生产环境必须加一层校验。class WeatherInput(BaseModel): location: str Field(descriptionCity name or coordinates) units: Literal[celsius, fahrenheit] Field( defaultcelsius, descriptionTemperature unit preference ) include_forecast: bool Field( defaultFalse, descriptionInclude 5-day forecast ) tool(args_schemaWeatherInput) def get_weather(location: str, units: str celsius, include_forecast: bool False) - str: Get current weather and optional forecast. temp 22 if units celsius else 72 result fCurrent weather in {location}: {temp} degrees {units[0].upper()} if include_forecast: result /nNext 5 days: Sunny return result rprint(convert_to_openai_tool(get_weather))自定义工具名 / 自定义描述 也一句话搞定tool(web_search, parse_docstringTrue) def search(query: str) - str: 搜索互联网最新信息 Args: query: 搜索关键词 ...六、强制它干活tool_choice默认模型觉得“这题我能直接答”它就不调工具了。想强制走工具内部系统助手、审批流、不允许自由发挥的场景model_with_tools model.bind_tools(tools, tool_choicerequired)不传 /auto模型自己决定required必须输出 tool_call否则重试指定函数名只准调那一个none是默认可能不调required是“别偷懒去调工具”。OpenAI / DeepSeek 的约定和这里一致。文末小结1. Tool 带 Google 风格 docstring 的普通函数2. 模型管“要不要调 传啥参”你管“执行 回结果”3. 生产环境 Pydantic 校验 必要时 tool_choice 强制调用Agent 的上限不取决于模型多大而取决于你给它的工具说明书写得够不够“模型友好”。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

基于POI-TL实现动态Word模板填充与图表生成实战 2026/10/2 14:34:04

基于POI-TL实现动态Word模板填充与图表生成实战

接到一个需求,要把系统里的业务数据按指定格式导出成Word报告,里面要有列表、图片、表格,还得带可视化图表。一开始想用POI直接手写,写了一半就放弃了——表格格式、单元格合并、段落缩进、页码这些都要自己用代码控制&#xff0c…

阅读更多 →
手写数学运算识别系统源码解析:从数据合成到模型部署 2026/10/2 14:34:04

手写数学运算识别系统源码解析:从数据合成到模型部署

简介:基于Python的手写数学运算识别系统源码,适用于计算机视觉、机器学习方向的毕业设计及课程实践。项目以手写数学表达式为处理对象,实现从图像预处理、特征提取到模型训练、字符分类与表达式解析的完整流程,输出结果支持LaTeX代…

阅读更多 →
手写数学运算识别系统:Python源码实现与工程落地方案 2026/10/2 14:34:04

手写数学运算识别系统:Python源码实现与工程落地方案

简介:这是一份基于Python的手写数学运算识别系统源码包,面向毕业设计及计算机视觉、机器学习初学者。项目完整覆盖图像灰度化、二值化、去噪等预处理流程,并结合HOG特征提取、SVM/随机森林/CNN分类器训练,以及数学表达式解析与结果…

阅读更多 →
MySQL DML技术详解:从增删改到事务与误操作恢复 2026/10/2 14:34:04

MySQL DML技术详解:从增删改到事务与误操作恢复

1. 认识DML:增删改到底是什么,为什么它才是数据库操作的主战场先说个可能颠覆认知的结论:很多初学者学MySQL时,把大量精力花在DDL(建表语句)上,觉得创建表、修改字段才是重点。但真实项目里&…

阅读更多 →
Python+Flask打造Web项目管理信息系统:从设计到部署实战 2026/10/2 14:33:51

Python+Flask打造Web项目管理信息系统:从设计到部署实战

简介:基于Python实现的Web项目管理信息系统,面向计算机相关专业课程设计及信息系统实践场景,提供完整项目方案与配套资料。系统涵盖项目与任务管理、通知管理、系统管理等核心功能,数据设计部分对实体关系和功能点进行了详细梳理&…

阅读更多 →
嵌入式Linux GPIO应用编程实战:libgpiod与字符设备直驱 2026/10/2 14:33:51

嵌入式Linux GPIO应用编程实战:libgpiod与字符设备直驱

1. 这不是教科书里的GPIO,是我在工控现场焊过板子、调过驱动、被LED闪瞎过眼后写下的真实笔记“Linux 学习笔记:GPIO 应用编程”——看到这个标题,你可能以为又是一篇照着内核文档抄参数的教程。但我要先说清楚:这篇笔记里没有cat…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉