模型正常结束生成的标志是finish_reason为"stop",此时content完整可直接使用;若为"length"则输出被截断不可用于品牌分析;其他值属异常需告警。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要从腾讯混元API返回的JSON中快速判断模型是否正常结束生成,还是因长度限制、出错等原因中断,这直接影响后续文本提取和业务逻辑分支。
定位finish_reason字段位置
在非流式响应中,该字段位于 【Choices[0].FinishReason】 路径下;流式响应则需在每个chunk的 Delta 字段外层查找 FinishReason(注意:流式仅最后一个chunk含此字段)。
直接用 Python 解析时,推荐写成 resp["Choices"][0]["FinishReason"],不要漏掉 Choices 是数组、索引为 0 这一关键结构。
识别三种常见取值含义
stop:表示模型自然结束,content 完整,可安全使用全部文本。
length:说明输出被截断,content 不完整,【此时不能直接用于品牌提及分析或推荐判断】,需检查是否设置了过小的 max_tokens 或 prompt 过长。
其他值(如 null、空字符串、unknown)属于异常情况,应触发告警并记录原始响应体,不参与业务流程。
Python中安全读取并分支处理
第一步:用 get() 链式防御性访问,避免 KeyError:
reason = response.get("Choices", [{}])[0].get("FinishReason", "").lower()
第二步:根据 reason 值决定后续动作:
if reason == "stop": → 提取 content 并进入品牌匹配流程
elif reason == "length": → 记录 warning 日志,跳过本次解析,或触发重试(带更大 max_tokens)
else: → 写入 error 日志,保留原始 response,终止当前任务


















