非流式响应需逐层提取Choices[0].Message.Content;流式响应须逐行解析SSE的data:字段并拼接Delta.Content;模型生成的Markdown/JSON属正文内容,不可二次JSON解析。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要从腾讯混元API的HTTP响应中准确提取模型生成的文本内容,而不是直接读取原始JSON或SSE流体字节。非流式响应结构固定但需解包嵌套字段,流式响应则必须拼接多个Delta片段,漏掉任意一段都会导致回答截断。
非流式响应中提取完整回答
调用时设置 Stream=False,响应为单次完整JSON,但内容藏在多层嵌套里。
第一步:解析顶层JSON,获取 Choices 数组;
第二步:取数组首项(Choices[0]),再进入 Message 字段;
第三步:读取 Message.Content 的字符串值——这才是模型最终输出的纯文本回答。【若跳过 Message 层直接读 Content,会触发 KeyError】
流式响应中拼接完整回答
流式返回的是多个SSE事件行,每行以 data: 开头,最后一行是 data: [DONE]。不能用 response.text 一次性读取,必须逐行处理。
方法一:用 requests + 手动迭代响应流
发起请求时传入 stream=True → 使用 response.iter_lines() 遍历每一行 → 对每行做 line.decode('utf-8') → 检查是否以 data: 开头 → 剥离前缀后用 json.loads() 解析 → 提取 Choices[0].Delta.Content 并累加到字符串变量中;
方法二:用 SDK 封装的流式接口(推荐)
使用 tencentcloud-sdk-python-hunyuan v3.1.1000+ 版本 → 调用 client.ChatCompletions 时传入 Stream=True → SDK 自动处理 SSE 解析和 Delta 拼接 → 直接从返回的生成器中 yield 出完整字符串。
处理含 Markdown 或 JSON 的回答
模型有时会在回答中内嵌代码块、表格或 JSON 片段,这些不是响应结构的一部分,而是回答正文内容。
不要尝试用 JSON 解析器二次解析整个回答文本——这会导致报错;
只需原样保留 Message.Content 或拼接后的字符串,后续如需提取结构化字段,应单独对这段字符串做正则或 AST 分析;
若回答开头出现 { 且你误以为是 JSON 响应体,会直接解析失败——【真正的 API 响应 JSON 和模型生成的 JSON 内容处于完全不同的层级】


















