大模型知识--Function Calls
本章节主要介绍下大模型知识的FunctionCalls,现在我们总说大模型只是停留在聊天获取知识的阶段,如果让它更加智能化,更加方便就需要让它帮忙处理很多事情,比如让它调用我们数据库查询数据,调用日历帮我们写入备忘录等等。但是大模型如何能够调用我们自己的api呢?这个就是目前FunctionCalls 和 MCP 做的事情,本章主要介绍Function Calls。
一、是什么
把大模型想成一个 只长嘴巴的学霸。它动手能力不行,需要有助手帮忙去操作一些具体事项。
它能背百科全书,但不会真的动手订机票、查天气、调数据库。
Function Calls 就是给学霸递上一张「万能遥控器」:
学霸看到用户问题后,在遥控器上按下按钮(生成一段 JSON 指令),
后端系统收到指令就去真正干活,然后把结果回传给学霸,学霸再组织成自然语言回答。
一句话:
Function Calls = 让大模型“说话”变成“下指令”,把“嘴”升级成“手+嘴”。
从字面翻译也能了解就是:方法调用
Function Calling 旨在解决两个核心问题:
-
获取实时信息:查询实时天气、股价、新闻等。
-
执行具体动作:操作数据库、发送邮件、控制智能家居等。
二、如何用
让我们用一个经典例子 “今天旧金山的天气怎么样?” 来拆解这个过程。
第1步:准备工具说明书 (Developer's Job)
在发送请求给大模型之前,开发者必须在系统提示词(System Prompt)中“注册”可用的函数。这本质上是给模型一本工具手册。
json格式
{"tools": [{"type": "function","function": {"name": "get_current_weather", // 工具名"description": "获取指定城市的当前天气", // 工具描述,模型靠这个决定是否调用"parameters": { // 参数规范,模型必须生成符合此格式的JSON"type": "object","properties": {"location": {"type": "string","description": "城市或地区的名称,例如:旧金山" // 参数描述},"unit": {"type": "string","enum": ["celsius", "fahrenheit"],"description": "温度单位"}},"required": ["location"] // 必填参数}}}]
}
第2步:用户提问 & 模型决策 (LLM's Job - Planning)
-
用户输入:
"今天旧金山的天