流式输出
三个推理接口都以 stream: true 开启流式:响应是逐帧到达的事件流,客户端边收边渲染,不用等整段答案生成完。
声明
| 参数 | 类型 | 约束 | 说明 |
|---|---|---|---|
stream |
boolean | 三个接口同名 | 流式开关;类型写错按 invalid_type 拒绝,不会退回非流式 |
stream_options.include_usage |
boolean | Chat Completions | 请求流式时附带用量:usage 块紧跟 finish_reason 块、与之同帧到达 |
Chat Completions 的事件形态
每帧是 data: 加一个 chat.completion.chunk 对象,空行分隔;流以 data: [DONE] 结束。函数调用的流式:一次工具调用的首个 delta 携带 id、type、name,后续 delta 只带增量参数。
data: {"id": "chatcmpl-…", "object": "chat.completion.chunk", "created": 1769700000, "model": "your-model", "choices": [{"index": 0, "delta": {"content": "快速"}, "finish_reason": null}]}
data: {"id": "chatcmpl-…", "object": "chat.completion.chunk", "created": 1769700000, "model": "your-model", "choices": [{"index": 0, "delta": {}, "finish_reason": "stop"}], "usage": {"prompt_tokens": 12, "completion_tokens": 48, "total_tokens": 60}}
data: [DONE]
Messages 与 Responses 的事件序列
- Messages:
message_start→content_block_start→content_block_delta(增量文本或工具调用)→content_block_stop→message_delta(携带stop_reason)→message_stop,与 Anthropic 官方事件一一对应 - Responses:
response.created→response.output_item.added→response.output_text.delta→response.output_text.done→response.output_item.done→response.completed,与 OpenAI 官方事件一一对应;这一接口同样可用 WebSocket 传输,事件对象完全相同,见Responses 的 WebSocket 传输一节
OpenAI 与 Anthropic 的官方 SDK 在各自的接入配置里填入 api.model-r.com 后即可直接消费这两种事件流,无需改代码。