必须严格匹配openai兼容的sse格式,使用/v1/chat/completions端点、stream=true、tools数组及tool_choice参数;推荐用腾讯云python sdk v3.0.117+自动解析流式tool call。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要让腾讯混元API在流式响应中正确解析工具调用(tool calls),必须严格匹配OpenAI兼容接口的SSE事件格式与字段结构,否则前端会收不到function name或arguments字段,导致工具无法触发。
确认API端点与基础参数
调用地址必须为 https://api.tencentcloud.com/v1/chat/completions,且请求头中需包含 Content-Type: application/json 与有效的 Authorization: Bearer {your_api_key}。若误用旧版 /v2/ 或混元控制台调试页的非标准endpoint,流式事件将直接退化为普通JSON响应,失去event: chunk字段。
在请求体中,stream 字段必须设为 true;同时必须传入 tools 数组(至少含一个tool definition)和 tool_choice(可选"auto"或{"type": "function", "function": {"name": "xxx"}})。
构造符合SSE规范的流式响应解析逻辑
方法一:监听 event: chunk + data: 开头的纯文本流
服务端返回的是标准SSE格式,每条消息以 event: chunk 开头、data: 后接JSON字符串、双换行分隔。不能用 JSON.parse(rawResponse) 直接解析整段响应,必须按行切割并过滤空行和event行。data字段里的JSON可能不完整(如arguments被截断到两帧),需缓存拼接后再 parse。
方法二:使用官方SDK自动处理(推荐)
腾讯云Python SDK v3.0.117+ 已内置流式tool call解析器,调用时传入 stream=True 即可,无需手动处理SSE。SDK会自动累积chunk、识别function_call字段、在完整收到name和arguments后触发回调。若使用旧版SDK(
注意:【必须升级至最新版SDK,否则无法识别tool_calls】
提取并验证工具调用参数
第一步:从每个完整data块中提取 delta.tool_calls 字段
流式响应中,tool_calls 不是整体返回,而是逐字段增量推送。例如第一帧含 index=0, id="call_abc", function.name="get_weather";第二帧才补上 function.arguments='{"city":"shenzhen"}'。必须按 index 索引合并,否则参数错位会导致调用失败。
第二步:等待 finish_reason = "tool_calls" 出现
该字段标志tool call结构已收全,此时可安全提取全部 tool_calls 内容。若在收到 finish_reason 前就强行执行工具,arguments可能为空或残缺。
第三步:校验 arguments JSON合法性
混元返回的 arguments 是原始字符串(非对象),且可能含未转义双引号或换行符。必须用 json.loads() 尝试解析,捕获 JSONDecodeError;若失败,需丢弃该次tool call,避免向下游传递非法参数引发500错误。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











