文本对话
函数调用
部分模型支持函数调用对模型能力进行扩展和增强,你可以在模型广场中通过 函数调用
标签筛选查看支持函数调用的模型。
函数调用链路较普通的对话流程更加复杂,需要在提交问题时附带函数名称描述信息,以及调用函数需要的参数,如果用户问题意图和函数名称描述匹配,并且参数齐全(不够的话会引导用户提交),那么AI响应会返回匹配的函数名和标识该函数的ID,客户端根据函数名和参数调用本地函数后,将执行结果和函数ID一起再次提交给AI模型,AI模型会根据上下文基于函数调用结果回答用户最初的问题,这就是函数调用的基本流程。
下面我们以获取当地天气为例,给出函数调用的示例代码:
正如前面提到的,函数调用需要在提交问题时附带 tools
字段指定函数名称、描述以及参数信息,以及 tool_choice
字段用于设置是否让AI模型根据用户意图自动选择要调用的函数。
执行上述代码后,会返回如下响应消息字段:
可以看到,AI响应中包含了 tool_calls
字段,其中包含了函数调用的ID和参数信息,客户端根据这些信息调用本地函数 get_current_weather
后,将执行结果和函数ID一起再次提交给AI模型:
AI模型会根据上下文基于函数调用结果回答用户最初的问题: