大模型速通Funtion Calling
Funtion Calling
llm 是概率预测器,负责识别意图和决策生成输出结构化指令 <–> 大脑,不执行本地代码
Funtion Calling(四肢)
def:执行本地代码,负责工具调用和执行,完成实际逻辑
标准执行生命周期
1 | flowchart LR |
但是模型为啥会给出标准合适的 json 呢
- 指令微调:模型训练用了海量的函数调用训练集,教会模型使用工具和遵守 schema 规范的格式生成结果
- 推理约束解码:底层引擎集成 FSM 和正则表达式机制,在逐个生成 Token 时,会拦截不符合语法树的 Token。
生产环境避坑指南(难点与解决方案)
| 难点 | 问题描述 | 解决方案 |
|---|---|---|
| 难点一:幻觉调用(Hallucination) | 模型凭空捏造不存在的函数,或胡乱修改参数名。 | Self-Correction 机制:将错误信息喂回给模型,让其自省并修正输出。 |
| 难点二:JSON 格式崩溃 | 输出包含多余符号、缺失括号等,导致 JSON 无法解析。 | 使用json_repair 容错解析器,并强制开启 JSON Mode 输出。 |
| 难点三:工具数量爆炸 | API 数量过多,超出上下文窗口,导致注意力分散、调用错误。 | Tool Retrieval:结合 RAG 动态检索最相关的 Top-K 工具(如 Top-5)进行注入。 |
| 难点四:多步依赖调用 | 下一步 API 调用依赖于上一步执行结果,需要连续规划。 | 使用Agent 编排框架(如 ReAct),实现 Thought → Action → Observation 循环。 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 wan_g!
评论