如何用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
相关产品推荐
相关产品推荐

