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

如何用Python基于OpenAI ChatGPT API实现Token级流式响应?

使用最新OpenAI Python库实现流式响应输出

要实现像ChatGPT UI那样的逐Token流式输出,只需在调用API时添加stream=True参数,然后迭代返回的响应对象,逐个处理每个响应块的增量内容。以下是完整的可运行代码:

from openai import OpenAI

# 初始化客户端,确保已通过环境变量或参数传入API密钥
client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "Explain quantum computing"}],
    stream=True  # 开启流式响应
)

# 逐块处理流式响应
for chunk in response:
    # 提取当前块的增量内容,过滤空内容块
    content_chunk = chunk.choices[0].delta.content
    if content_chunk:
        # 实时输出内容,不换行并强制刷新缓冲区
        print(content_chunk, end="", flush=True)

关键细节说明

  • stream=True:开启流式模式后,API会在生成内容的过程中持续返回小块数据,而非等待完整回答生成完毕。
  • 迭代响应对象:流式返回的response是一个可迭代对象,每次迭代得到的chunk包含当前新增的Token内容。
  • chunk.choices[0].delta.content:每个块仅携带新增的内容片段,部分块可能没有content字段(如会话结束的标记),因此需要先判断非空再输出。
  • print(..., end="", flush=True):使用end=""避免每次输出换行,flush=True强制立即输出内容,确保和ChatGPT UI一样的实时打字效果。

内容的提问来源于stack exchange,提问作者Lavi Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 06:12:08