需实时捕获腾讯混元API流式响应增量文本并拼接,显式设置stream=True启用SSE;用timeout=(10,60)防超时;推荐原生SSE解析或SDK生成器获取Delta.Content;维护full_content与chunks列表以支持上下文判断;监控空内容次数实现流中断双保险容错。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要从腾讯混元API的流式响应中实时捕获每一段增量文本,拼接成完整回答,并在接收过程中识别品牌提及与推荐信号——若直接等待全部返回再解析,会丢失首字延迟优势,且无法应对流中断等异常。
初始化客户端并启用流式请求
调用HunyuanClient时必须显式设置stream=True,否则服务端不会以SSE格式返回数据块。非流式请求即使代码里写了循环读chunk,实际收到的仍是单个JSON对象。
使用timeout=(10, 60)参数:连接超时设为10秒防卡死,读取超时设为60秒避免网关30秒截断导致空白页——【不设读取超时将大概率触发HTTP 504 Gateway Timeout】。
逐chunk接收并拼接内容
方法一:原生SSE解析(推荐)
用requests发送POST请求,设置stream=True,再用iter_lines()逐行读取;每行以data:开头,需手动剥离前缀、json.loads()反序列化。
方法二:SDK内置流式接口
调用client.ChatCompletionsStream(req),返回一个生成器,每次next()或for chunk in ...可得一个ChatCompletionsResponse实例;注意该实例的Choices[0].Delta.Content字段才是本次增量文本,不是Message.Content。
这一步操作起来很简单,直接把文件拖进去就行。
关键字段提取与上下文维护
第一步:声明空字符串full_content = ""和空列表chunks = [];
第二步:对每个chunk执行full_content += chunk.Choices[0].Delta.Content;
第三步:将当前chunk追加进chunks列表,用于后续回溯上下文(例如判断“不推荐”是否覆盖前文“推荐”);
第四步:检查chunk.Choices[0].FinishReason是否为"stop"或"length",是则终止循环。
若未做第三步,当模型在后半段否定前文推荐时(如“推荐A,但B其实更合适”),仅靠最终拼接文本会误判为双重推荐。
流中断容错处理
在流式循环内捕获EventStreamError异常;
同时监控连续收到的空Delta.Content次数,达到3次即主动break并标记error_code="STREAM_BROKEN";
不要依赖except Exception兜底——部分网络抖动只中断SSE连接但不抛异常,必须结合空内容计数双保险。


















