在腾讯混元大模型中启用Function Call需三步:1. 用JSON Schema定义functions数组,含name(全小写无空格)、description、parameters(object类型且required明确);2. 请求体含messages(末尾user消息隐含调用意图)和functions字段,带正确Authorization与Content-Type;3. 解析响应中assistant消息的function_call字段(arguments需JSON.parse),执行本地函数后以function角色返回结果再请求最终回复。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在腾讯混元大模型中启用Function Call功能,需先注册函数描述、构造含tool_calls字段的请求体,并确保响应中包含function_call字段才能触发本地函数执行。
定义可调用函数结构
在发起请求前,必须向模型明确声明你希望它调用的函数名称、参数和用途。这一步不写对,后续所有调用都会被忽略。
使用JSON Schema格式编写functions数组,每个对象至少包含name、description、parameters三项。parameters必须是合法JSON Schema object类型,不能是string或null。
示例函数:查询用户订单状态——【name字段必须全小写且不含空格,否则混元会跳过匹配】
{"name": "get_order_status", "description": "根据订单ID查询当前物流状态和预计送达时间", "parameters": {"type": "object", "properties": {"order_id": {"type": "string", "description": "16位纯数字订单编号"}}, "required": ["order_id"]}}
构造含工具调用意图的请求体
向混元API发送POST请求时,请求体中需同时携带messages与functions字段。
messages数组末尾添加user角色消息,内容应隐含调用意图,例如“帮我查下订单1234567890123456的状态”。模型不会响应自然语言结果,而是返回tool_calls结构。
functions字段直接填入上一步定义的函数数组,不可嵌套在其他键下,不可用functions_list或tools等别名。
请求头必须带Authorization: Bearer 【你的混元API密钥】,且Content-Type为application/json。
解析模型返回的function_call字段
当模型决定调用函数时,响应体中会出现message.role = "assistant" 且含function_call字段的对象。
该对象结构固定为:{"name": "get_order_status", "arguments": "{\"order_id\": \"1234567890123456\"}"}——注意arguments是字符串而非JSON对象,需JSON.parse()后才能传给本地函数。
若返回中无function_call字段,说明模型未触发调用,可能因提示词未暗示动作、函数定义缺失required项、或参数类型与描述冲突。
执行完本地函数后,将结果封装进新messages数组,role设为"function",name与原始调用一致,content为函数返回值JSON字符串,再发一次请求让模型生成最终回复。


















