deepseek api流式输出需同时满足协议、头字段和解析方式三者:accept必须为text/event-stream,content-type保持application/json,客户端须按sse格式解析data:行并提取delta.content,超时应设30秒自动断连。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

DeepSeek API 的流式输出不是开个 stream=true 就能直接看到分块内容的——必须匹配协议、头字段、解析方式三者,缺一不可,否则会卡在空响应、乱码或连接中断。
HTTP 请求必须设对 Accept 和 Content-Type 头
流式输出依赖服务端按 Server-Sent Events(SSE)格式推送数据,客户端不声明接收意图,服务端就按普通 JSON 返回完整体。
-
Accept必须设为text/event-stream,不是application/json,也不是留空 -
Content-Type在 POST 请求体中仍为application/json;GET 请求则不带该头 - 漏掉
Accept: text/event-stream是最常见 406 错误或静默失败的根源
Python requests 中正确读取 SSE 分块
requests.get(..., stream=True) 只是开启底层流式传输,但原始 iter_lines() 会把 SSE 的 data: 行、event: 行混在一起解析,导致 JSON 解析失败。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
- 必须手动剥离前缀:只取以
data:开头的行,并去掉该前缀再json.loads() - 忽略空行、注释行(以
:开头)、event:行 - 示例关键逻辑:
for chunk in response.iter_lines():
if chunk and chunk.startswith(b"data:"):
try:
data = json.loads(chunk[6:].decode("utf-8"))
if "choices" in data and data["choices"]:
delta = data["choices"][0]["delta"].get("content")
if delta:
print(delta, end="", flush=True)
except json.JSONDecodeError:
continue
Node.js 使用 axios 时 responseType 必须设为 stream
axios 默认把响应体当字符串或 JSON 处理,遇到流式 SSE 数据会提前尝试解析整个 body,直接报错或卡死。
- 必须显式设置
responseType: "stream",然后用response.data拿到可读流 - 不能用
await response.json()或response.data.toString() - 需配合
pipeline或on("data")事件逐段处理,且要自己按data:分割 - 若用
fetch,则必须用response.body.getReader()+decoder.decode()手动流式解码
流式响应里真正有用的字段只有 delta.content
完整响应结构嵌套深、字段多,但实际渲染只需关注增量文本。其他字段要么固定、要么仅调试用。
-
delta.content是每次推送的新文本片段,拼起来就是完整回答 -
finish_reason出现在最后一块,值为stop或length,用于判断是否结束 -
index字段当前所有 DeepSeek 模型都固定为0,不用做顺序校验 - 别试图从
message.content或choices[0].message.content里取值——流式模式下这些字段不存在或为空
最容易被忽略的是:流式连接超时后服务端可能不发 finish_reason,而客户端还在等最后一块。建议加 30 秒无数据自动断连,而不是死等 is_final 或 finish_reason 字段出现。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!









