流式响应 (SSE)

流式响应会让模型边生成边返回,用户看到的是逐字输出。聊天客户端、编码工具和网页应用常用流式响应提升体验。

什么时候用流式

场景是否建议开启
普通聊天建议开启
长文本生成建议开启
后端批处理可关闭,方便拿完整 JSON
排障阶段先关闭,确认非流式可用
客户端兼容性差先关闭

Chat Completions 示例

curl https://www.wanmoapi.com/v1/chat/completions \
  -H "Authorization: Bearer $WANMO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-mini",
    "stream": true,
    "messages": [
      { "role": "user", "content": "写一段 100 字介绍万模API" }
    ]
  }'

返回会包含多行 data:,最后通常以 [DONE] 结束。

常见卡住原因

现象原因处理
客户端一直转圈SSE 没解析结束事件先关闭流式验证
Nginx 后面不实时输出代理缓冲开启关闭 proxy_buffering
中途断开超时太短增大 proxy_read_timeout
只在某个客户端失败客户端流式兼容问题换非流式或换客户端验证

运维配置提示

如果你自建反向代理或 CDN,需要关注:

proxy_buffering off;
proxy_read_timeout 300s;
proxy_http_version 1.1;

不同云厂商还可能有响应缓冲、边缘函数超时、WebSocket/SSE 支持开关。

开发者解析建议

  • 按行读取 data:
  • 忽略空行和注释行。
  • 遇到 [DONE] 结束。
  • 对 JSON 解析失败的半包要做容错。
  • 前端展示和后端累积文本要分开处理。

排障顺序

  1. 关闭 stream,确认非流式请求成功。
  2. 开启流式,用 curl 看是否逐段返回。
  3. 如果 curl 成功但客户端失败,说明是客户端解析问题。
  4. 如果 curl 也卡住,检查代理、CDN、上游和模型响应时间。

下一步:常见问题排查