必须同时满足协议声明、请求参数和客户端解析三方面要求才能实现实时逐字流式输出,缺一不可:需确认API端支持流式的模型(如deepseek-v3),请求头设Accept: text/event-stream,参数stream=True,且客户端正确解析SSE格式响应流。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在调用DeepSeek API时实时看到模型逐字生成的回复,而不是等全部内容完成后再一次性返回,必须同时满足协议声明、请求参数和客户端解析三方面要求——漏掉任一环节都会导致流式失效,出现空白响应或连接中断。
确认API端支持流式能力
访问 https://www.php.cn/link/3c3c9c9207af380d2ee406d6d9cb64ad,用你的 API Key 发起 GET 请求,检查返回的 model 列表中是否包含 【deepseek-v3】 或 【deepseek-chat】 等明确标注支持 streaming 的模型。不支持流式的旧版模型(如 deepseek-coder-1.3b)即使加了 stream=True 也只会返回完整体。
这一步跳过会导致后续所有配置白费——你根本没连上能流式输出的模型。
Python requests 方式开启流式
方法一:手动构造 HTTP 请求(最可控)
- POST 请求 URL 设为
https://api.deepseek.com/v1/chat/completions - 请求头必须包含:
Accept: text/event-stream和Authorization: Bearer YOUR_API_KEY;Content-Type保持application/json - 请求体 JSON 中设置
"stream": true,且"model"字段值为支持流式的模型名(如"deepseek-v3") - 调用
requests.post(..., stream=True),再用response.iter_lines()遍历响应流 - 对每一行做判断:【只处理以 data: 开头的行,去掉前缀后 json.loads()】,再取
choices[0].delta.content
注意:不能直接用 response.json(),会卡死或报 JSONDecodeError —— 因为服务端返回的是多段 SSE 格式文本,不是单个 JSON 对象。
Python OpenAI SDK 方式开启流式
这是最简路径,前提是已安装 openai==1.45.0+ 并确认 DeepSeek 兼容层可用。
第一步:初始化 client 时指定 base_url 和 API Key
第二步:调用 client.chat.completions.create(..., stream=True),传入 messages 和 model 参数
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
第三步:遍历 stream 返回的生成器,直接取 chunk.choices[0].delta.content
这一步操作起来很简单,但【必须确保 base_url 是 https://api.deepseek.com/v1】,填错地址(比如漏掉 /v1)会导致 404 或静默失败。
Node.js axios 方式开启流式
方法一:使用 axios + stream 响应类型
设置 responseType: "stream",否则 axios 会尝试把整个 SSE 流当字符串解析,直接崩溃
用 response.data.on("data", chunk => {...}) 接收原始 Buffer,再按 \n 分割 → 过滤出 data: {…} 行 → 去掉 data: 前缀 → JSON.parse → 提取 delta.content
方法二:用 fetch + ReadableStream(推荐用于现代环境)
必须用 response.body.getReader() 获取 reader,再配合 TextDecoder().decode() 逐块解码;不能用 response.text() 或 response.json()
fetch 默认不设 Accept 头,【务必手动添加 headers: { Accept: "text/event-stream" }】,否则服务端拒绝流式响应。


















