DeepSeek怎么开启流式输出stream
DeepSeek开启流式输出只需在API请求中设置stream=true并逐块读取SSE事件。Chat Completions以data: [DONE]结束,Responses API则以response.completed、response.incomplete或response.failed结束,两种协议不能混用同一套结束判断。
DeepSeek开启流式输出只需在API请求中设置stream=true并逐块读取SSE事件。Chat Completions以data: [DONE]结束,Responses API则以response.completed、response.incomplete或response.failed结束,两种协议不能混用同一套结束判断。

DeepSeek流式输出需要设置哪个参数?
在请求中设置stream=true后,服务端会通过SSE连续发送增量内容,客户端必须逐块读取而不是等待完整JSON。

流式输出适合聊天界面和长回答,因为用户可以更早看到首段内容。它不会自动缩短模型总生成时间,只是把已生成的内容提前发送给客户端。
Python使用Chat Completions怎么逐块打印内容?
使用OpenAI兼容SDK时遍历返回的stream对象,并在每个chunk中读取delta.content即可。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["DEEPSEEK_API_KEY"],
base_url="https://api.deepseek.com",
)
stream = client.chat.completions.create(
model="deepseek-flash",
messages=[{"role": "user", "content": "用三点说明SSE是什么"}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
print(delta, end="", flush=True)思考模式还可能返回reasoning_content。前端如果只显示content,在推理阶段短时间没有可见文字并不一定是请求卡住。
Chat Completions和Responses API的流式事件有什么区别?
Chat Completions按delta发送并以data: [DONE]结束,Responses API使用带event名称的语义事件且没有[DONE]。

| 接口 | 增量内容位置 | 结束标志 |
|---|---|---|
| Chat Completions | choices[0].delta.content | data: [DONE] |
| Responses API | 不同类型的语义事件 | response.completed、response.incomplete或response.failed |
Responses API的最终事件是response.completed、response.incomplete或response.failed。若把Chat Completions的[DONE]判断直接复制到Responses API,程序可能一直等待不存在的结束标记。
设置stream=true后仍一次性返回怎么办?
仍一次性返回通常是客户端、应用服务器或反向代理在缓冲响应,需要逐层关闭缓冲并立即刷新输出。

- 确认实际请求体中stream为true,而不是字符串“true”。
- 检查服务器框架是否先把所有chunk拼接后再返回。
- 检查Nginx、网关或CDN是否启用了响应缓冲。
- 浏览器端使用ReadableStream或EventSource逐块处理,不等待response.json。
- 为超时、网络中断和incomplete事件保留重试或续写逻辑。
流式输出怎么同时统计Token用量?
Chat Completions可以启用stream_options中的include_usage,并从最后一个内容块读取完整用量;Responses API则从最终响应事件读取usage。
中间chunk的usage通常为空,不能边接收边把空值累加成总量。程序应保存最后一个非空usage,并在正常结束事件到达后再写入计费或监控日志。
如果连接提前中断,最终usage可能无法到达,因此监控系统还应记录请求ID、已接收字符数和中断状态,不能把缺失用量误记为零消耗。
流式接口上线前还需要测试哪些情况?
用户中途停止生成会发生什么?
客户端应主动取消上游请求并把状态记为aborted,避免后台继续生成和计费。
中文被拆成乱码怎么处理?
网络层应按UTF-8字节流使用增量解码器,不能把每个网络分片单独转换成字符串。
连接断开后可以从原位置继续吗?
接口未必支持自动续传,应用应保存已显示内容并提供重新生成或基于上下文续写的选择。
多个并发会话怎么避免内容串线?
每个请求独立保存响应ID、缓冲区和结束状态,前端按会话ID把事件分发到对应窗口,并在关闭页面时正常清理仍在运行的连接。
流式请求失败怎么区分前端和服务端问题?
先用curl直接读取SSE;curl正常而网页失败时排查前端解析,curl也失败时再检查网关、HTTP状态和服务端日志。测试时使用同一个模型、提示词和网络入口,避免把输入差异误判为传输故障。
反向代理配置错误会出现哪些现象?
常见现象包括长时间空白后一次性显示、连接提前超时和事件被合并。排查时应关闭缓冲、延长读取超时并保持SSE响应头,同时确认代理没有压缩或改写事件分隔符,并在桌面端和手机网络分别复测。

































