Function Calling 实践
“帮我查一下北京今天的天气” → 大模型不会查天气,但可以调用你的 API。Function Calling 让 AI 与业务系统打通。
一、Function Calling 是什么
- 1.1 本质——大模型输出函数调用请求,程序执行后返回结果
- 1.2 流程——用户输入 → 模型决定调用哪个函数 → 程序执行 → 模型生成最终答案
- 1.3 与 Agent 的关系——Function Calling 是 Agent 的基础能力
二、定义 Function
- 2.1 函数描述——用 JSON Schema 定义
- 2.2 参数描述——告诉模型每个参数的含义
- 2.3 Spring AI 的
@Description注解 - 2.4 注册 Function——
ChatClient绑定
三、Spring AI 实现
- 3.1
FunctionCallback接口 - 3.2 自动发现——
@Component注解的 Function - 3.3 手动注册——
ChatClient.Builder.defaultFunctions() - 3.4 多轮调用——模型可以多次 Function Call
四、实战案例——智能订单查询
- 4.1 定义
queryOrderFunction——参数 orderId - 4.2 执行逻辑——查数据库
- 4.3 用户说”帮我查一下订单 123456”
- 4.4 模型调用
queryOrder("123456") - 4.5 返回结果 → 模型生成自然语言回复
五、实战案例——智能创建工单
- 5.1 从对话中提取——标题、描述、优先级
- 5.2 Function 调用后返回工单号
六、注意事项
- 6.1 安全——Function 需要鉴权
- 6.2 幂等——同一个 Function 可能被多次调用
- 6.3 超时——Function 执行不要太久
- 6.4 错误处理——Function 失败时的降级策略
七、总结
- Function Calling = AI 的”手”
- 让它不仅能说,还能做
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 谜思录!