AnyInt Docs
指南

流式传输

流式传输是改善聊天、copilot 和交互式生成流程中感知延迟的最简单方式。

流式传输是改善聊天、copilot 和交互式生成流程中感知延迟的最简单方式。

当用户能从部分输出中受益时,使用流式传输。不要把它当作异步任务 API 的替代品:视频、音乐和其他资产工作流仍然可能需要创建任务、轮询或回调。

已发布的流式传输接入点

接口如何启用
OpenAI 兼容聊天设置 stream: true 开启 /openai/v1/chat/completions
Gemini 流式传输调用 streamGenerateContent?alt=sse

何时使用流式传输

  • 聊天界面
  • 在 IDE 或 copilot 中进行渐进式生成
  • 长时间运行的答案生成,其中首个 token 延迟很重要

何时不应使用流式

场景更适合
route 创建视频、音乐或其他异步资产任务创建加轮询或回调
客户端必须先校验一个完整 JSON 对象才能展示非流式响应,或服务端缓冲后校验
用户不会交互式查看输出批处理请求并存储最终响应
网络层无法处理 server-sent events先使用非流式,在客户端支持验证后再开启流式

流的样子

  • 兼容 OpenAI 的聊天会返回 SSE 分块,格式为 chat.completion.chunk 格式
  • Gemini 流式传输使用已发布的 streamGenerateContent?alt=sse 路由
  • 在流关闭之前,不应将任何一个流视为最终答案

OpenAI 兼容示例

curl https://api.anyint.ai/openai/v1/chat/completions \
  -H "Authorization: Bearer $ANYINT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "stream": true,
    "messages": [
      {"role": "user", "content": "Stream three short bullets about API gateways."}
    ]
  }'

Gemini 兼容示例

curl "https://api.anyint.ai/gemini/v1beta/models/gemini-3-flash-preview:streamGenerateContent?alt=sse" \
  -H "Authorization: Bearer $ANYINT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [{"text": "Stream a short answer about model routing."}]
      }
    ]
  }'

实现提示

  • 将每个分块视为部分状态,而不是最终答案
  • 让服务器能够容忍连接中断
  • 如果需要审计或回放,请存储最终组装后的输出
  • 将 UI 渲染与业务侧完成逻辑分离
  • 将流中断与模型拒答、无效请求错误分开处理
  • 使用生产中同样的代理、CDN 或服务端框架做测试

生产检查清单

检查为什么重要
客户端收到多个 chunk确认客户端没有一直缓冲到完成才展示
UI 可以取消流用户离开页面后避免继续浪费 token
服务端能处理连接中断移动端和浏览器客户端经常断连
必要时存储最终组装输出审计和回放需要完整文本,而不只是 UI chunk
错误路径可见如果流提前停止,用户需要清晰的失败状态

相关页面

On this page