腾讯混元api流式输出结束需严格匹配data: [done]标记,不可仅含“done”;非流式则依finishreason字段判断,“stop”为正常完成,“length”表示被截断。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

腾讯混元API流式输出结束的判断依赖于响应数据流中特定标记,不是靠空行或超时猜测,错判会导致截断回答或无限等待。
识别流式响应末尾的[DONE]标记
逐行读取SSE格式响应体,每行以data:开头,当遇到data: [DONE]时立即终止拼接。
这一步必须严格匹配完整字符串"[DONE]",不能只检查是否包含"DONE"——因为模型生成内容中可能出现“done”“Done”等普通词汇,误判会提前中断。
示例响应片段:
data: {"Choices":[{"Delta":{"Content":"推荐"}}]}
data: {"Choices":[{"Delta":{"Content":"使用"}}]}
data: [DONE]
非流式调用无需判断结束
直接解析JSON响应中的FinishReason字段,值为"stop"即表示正常完成。
若FinishReason为"length",说明回答被max_tokens截断,【这不是流式结束信号,而是非流式下的输出不完整提示】。
流式处理代码中必须设置循环退出条件
第一步:初始化full_content = ""和stream_lines(如requests流式响应的iter_lines())
第二步:遍历每一行line → 剥离前缀data: → 尝试json.loads解析
第三步:若解析失败且line.strip() == "[DONE]" → 跳出循环
第四步:若解析成功且Choices非空 → 提取Delta.Content累加到full_content
注意:[DONE]行本身不含JSON结构,必须单独判断,否则json.loads会报错并跳过,导致程序卡在最后一段而无法退出。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











