流式输出
流式输出可以持续返回生成内容,不必等待完整响应。当所选模型和渠道支持时,GetRouter 的 Chat Completions 与 Responses 接口可以使用流式请求字段。
使用 cURL 调用 Chat Completions
将 stream 设置为 true,并使用 curl -N 禁用客户端缓冲:
Chat Completions 使用 Server-Sent Events,文本位于:
流通常以 [DONE] 等终止事件结束。
Python
Responses API 流式输出
Responses 使用专用事件对象,而不是 Chat Completions 的 choices[].delta Chunk。请按照事件的 type 解析,不要复用只支持 Chat Completions 的解析器。
stream_options
Chat Completions Schema 接受 stream_options,但支持情况取决于模型渠道。如果兼容选项被上游拒绝,请移除该字段,仅保留 stream: true 后重试。
流式 Tool Calls
Tool Call 参数可能分散在多个 Chunk 中。请按照索引或 Tool Call ID 累积数据,等参数完整后再解析和执行。
处理连接中断
客户端超时、代理超时、网络中断或上游错误都可能导致流在终止事件前断开。
客户端应当:
- 将缺少终止事件的响应视为未完成
- 根据业务需要保留已经接收的文本
- 不要盲目重试包含非幂等操作的 Tool 工作流
- 为所选模型设置足够长的超时时间
- 记录 Request ID 和错误,但不要记录 API Key
Warning
除非应用能够避免重复副作用,否则不要自动重放已经部分执行的 Agent 或 Tool 工作流。
常见问题
内容一次性返回
客户端、反向代理或中间件可能缓冲 SSE。请先使用 curl -N 直连测试,再排查前端 UI。
连接立即关闭
确认模型支持当前接口的流式输出,并在将问题判断为网络错误前检查 HTTP 响应或错误事件。
Chunk 中没有 Usage
流式请求中的 Usage 返回方式取决于协议、请求选项和模型渠道。不要要求每个 Chunk 都包含 Usage。
