腾讯混元大模型需通过tokenhub的openai兼容接口(https://api.hunyuan.cloud.tencent.com/v1/chat/completions)调用外部工具,正确传入符合规范的tools数组和"tool_choice": "auto"才能触发function_call;否则工具定义会被忽略。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让腾讯混元大模型在一次调用中自动调用外部工具(比如查天气、搜股票、发邮件),而不是只靠模型自己编造答案——这要求你把工具定义(tool definition)正确传给混元API,否则模型根本不知道有哪些工具可用,也不会生成function_call字段。
确认使用OpenAI兼容接口而非原生SDK
混元原生API(如ChatPro)不支持tools参数;必须使用TokenHub提供的OpenAI兼容接口,地址为https://api.hunyuan.cloud.tencent.com/v1/chat/completions。若你正在用hunyuan.tencentcloudapi.com域名或TencentCloud.Hunyuan SDK,立即切换,否则传入tools字段会被直接忽略。
构造符合规范的tools数组
tools必须是JSON数组,每个元素是对象,含type、function两个必填字段;function内必须包含name、description、parameters三者,且parameters必须是合法JSON Schema(不能是Python dict或JavaScript对象字面量)。
错误示例:{"name": "get_weather", "parameters": {"city": "string"}} —— parameters不是Schema,缺少type: "object"和properties包裹,混元会静默丢弃该tool。
正确写法:{"type": "function", "function": {"name": "get_weather", "description": "根据城市名查询实时天气", "parameters": {"type": "object", "properties": {"city": {"type": "string", "description": "城市中文名称,如北京、广州"}, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"], "default": "celsius"}}, "required": ["city"]}}
在请求体中嵌入tools并启用tool_choice
将tools数组作为顶层字段写入POST请求body,与model、messages同级;同时必须显式设置"tool_choice": "auto"(或指定具体tool name),否则混元默认不触发工具调用,即使tools定义完全正确。
【tool_choice是强制开关,缺省值不是auto,而是none】。很多开发者漏掉这行,结果看到response里choices[0].message.content有回答,但完全没有tool_calls字段——不是模型不会,是根本没开闸。
发送请求并解析响应中的tool_calls
第一步:用fetch或requests发送POST请求,Headers带Authorization: Bearer <tokenhub_api_key></tokenhub_api_key>,Body为完整JSON对象。
第二步:检查响应status_code是否为200,再读取response.json()["choices"][0]["message"].get("tool_calls")。若为null或空数组,说明模型判定无需调用工具;若有内容,则按id、function.name、function.arguments三项提取参数并执行对应函数。
第三步:把函数执行结果按OpenAI格式组装成{"role": "tool", "content": "...", "tool_call_id": "..."},连同原始messages一起再次发给混元,带上"tool_choice": "none",获取最终自然语言回复。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











