ModelRouterModelRouter

流式输出

逐段读取模型回答,减少等待首段内容的时间。

Python 完整示例

先按 SDK 文档 安装依赖,并设置 API_KEY 和 MODEL 环境变量。

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["API_KEY"],
    base_url="https://modelrouter.club/v1",
)
stream = client.chat.completions.create(
    model=os.environ["MODEL"],
    messages=[{"role": "user", "content": "你好"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices:
        text = chunk.choices[0].delta.content
        if text:
            print(text, end="", flush=True)
print()

与普通响应的区别

普通请求从 message.content 读取完整回答;流式请求从每一段的 delta.content 拼接回答。某些片段只有角色、结束标记或用量,不包含文本,应跳过空内容。

直接使用 HTTP

响应使用 SSE 分段传输,不能把整个响应当成一个 JSON 对象解析。使用 cURL 时添加 -N 禁用输出缓冲,并在请求体中设置 "stream": true。

中途断开

已经收到 HTTP 成功状态不代表流已正常结束。客户端应处理网络中断和错误事件。重新请求可能产生新的用量,不要无限自动重试。