工具调用

- 说人话
- 模型本身只会吐字,碰不到真实世界。工具调用是你事先告诉它有哪些动作可以用、每个要填什么参数,它在需要时输出一段结构化的调用请求,由你的程序去执行,再把结果塞回对话里让它接着往下说。它能查天气、能发邮件、能操作你的软件,靠的都是这一层。
- 说行话
- OpenAI 叫 function calling,Anthropic 叫 tool use,同一件事。请求体里的字段是 tools 和 tool_choice,参数用 JSON Schema 声明,模型回来的是一段 tool_calls。
- 潜台词
- 「它能联网 / 能操作我的软件」,底层都是这一套。
- 别用它
- 工具给太多会挑花眼,超过十几个就该分层或按场景裁剪。还要记得它填的参数不一定对,执行前自己校验一遍,尤其是会花钱、会删东西的操作。
拿这个能做什么2 个项目
- 01
- 02
工具描述写得好不好,比模型强不强更影响成功率。那段 description 是提示词,不是注释,很多人没意识到这点。
动手试试做完就算会了
写个 get_weather(city: str),第一行放 print("被调用了"),传进 ollama 包的 chat(..., tools=[get_weather]) 问杭州下不下雨。打印返回的 message:城市已经填成杭州,那句「被调用了」一次也没出现,函数得你自己去跑。