You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的OpenAI库中终止流式响应生成?

关于OpenAI流式响应终止的问题解答

核心结论

仅在循环内执行break无法直接阻止服务器继续生成响应——客户端断开迭代后,服务器可能仍会继续生成一小段内容才会检测到连接断开,这会造成额外的token浪费。要有效终止生成流程,需要配合主动关闭请求连接的操作。

标准实现方式

OpenAI Python库的流式响应对象包含一个response属性,对应底层的HTTP响应实例。在触发终止条件后,调用该属性的close()方法,可主动断开连接,让服务器快速检测到客户端已终止请求,从而停止生成。

修改后的示例代码如下:

self.__response = self.client.chat.completions.create(
    model='gpt-4',
    messages=messages,
    stream=True
)

try:
    for chunk in self.__response:
        text = chunk.choices[0].delta.content
        # 这里添加判断响应不符合预期的条件
        if 不符合预期的判断条件:
            break
        # 文本处理逻辑
finally:
    # 主动关闭连接,通知服务器停止生成
    self.__response.response.close()

补充说明

  • 主动关闭连接能大幅减少不必要的token消耗,服务器检测到连接断开后会立即终止生成流程。
  • 即便主动关闭,可能仍会有少量已生成的chunk到达客户端,但这部分内容量极少,远优于单纯使用break的情况。

内容的提问来源于stack exchange,提问作者Viktor Romanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 17:47:01