Function Calling 模型
1、基本介绍
-
Function Calling 模型,即函数调用模型
-
它能够根据用户的自然语言指令,自动判断是否需要调用外部函数,并生成调用所需参数
2、解决的问题
-
普通大模型有两个硬伤
-
知识过时:训练数据截止后的事情不知道,例如,天气、股价等
-
无法操作现实:不能帮你发邮件、查数据库、订机票等
-
-
Function Calling 就是让模型遇到自己搞不定的事,就调用开发者预先写好的函数去搞定
3、工作流程(以查天气为例)
- 定义工具:告诉模型
有一个函数叫 get_weather,需要参数 city
json
{
"name": "get_weather",
"description": "查询某个城市的当前天气",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "城市名称,例如:北京"
}
},
"required": ["city"]
}
}
python
def get_weather(city):
...
-
用户提问:
北京今天天气怎么样? -
模型推理:模型不会直接回答,而是输出一段结构化数据,表示
我要调用 get_weather,参数是 {"city": "北京"}
json
{
"role": "assistant",
"content": null,
"function_call": {
"name": "get_weather",
"arguments": "{\"city\": \"北京\"}"
}
}
- 程序执行:你的代码收到这个请求,去调用天气 API,拿到结果
晴,25℃
python
result = get_weather(...)
- 生成回答:把 API 结果再喂回给模型,模型用自然语言告诉你
北京今天晴,气温 25 度