大模型与Function Calling
·
什么是工具调用(Function Calling / Tool Use)
大模型本身仅擅长文本生成、推理、总结、理解,没有实时联网、计算、操作外部软件、查询数据库、控制硬件的能力。
工具调用是一套协议:大模型识别用户需求后,自动生成结构化函数参数,交给程序去调用外部工具,拿到工具返回结果后,再由大模型整合答案输出给用户。
简单流程:
用户提问 → LLM 判断需要工具 → 输出工具调用 JSON → 后端执行工具(搜素 / 计算器 / 数据库)→ 工具返回数据 → LLM 整理结果回复用户
【也就是说,大模型只能输出要调用工具的json,真正调用工具的是后端程序】
标准工具调用架构(三层)
1. 层 1:大模型(大脑)
负责意图识别、判断是否调用工具、生成标准化工具入参、结果总结。
主流支持工具调用模型:GPT 系列、通义千问、文心一言、DeepSeek、讯飞星火、Llama 3、GLM 等。
2. 层 2:工具描述 Schema(说明书)
用 JSON 格式定义每个工具:工具名称、功能描述、入参类型、必填项、参数说明。
示例极简计算器工具定义:
json
{
"type": "function",
"function": {
"name": "calculator",
"description": "执行数学四则运算",
"parameters": {
"type": "object",
"required": ["expr"],
"properties": {
"expr": {"type": "string", "description": "数学表达式,如123*45+78"}
}
}
}
}
模型读取这份 Schema,才知道什么时候、怎么调用工具。
3. 层 3:工具执行器(手脚)
后端代码接收模型输出的调用指令,执行对应逻辑:
- 搜索工具:调用搜索引擎 API
- 计算器:运行表达式计算
- 数据库工具:SQL 查询
- 代码工具:沙箱运行 Python
- 第三方服务:天气、快递、订票接口
完整交互示例(计算器场景)
- 用户提问:
1258 * 36 + 920 等于多少 - 模型判断:需要计算器工具,输出工具调用结构:
{"name":"calculator","parameters":{"expr":"1258 * 36 + 920"}}
- 后端执行计算,返回结果:
46208 - 将结果塞回对话上下文,交给模型
- 模型整理自然语言回复:
1258 × 36 + 920 的计算结果是 46208
更多推荐

所有评论(0)