Skip to content

流式输出与超时 ​

推荐开启流式 ​

长输出、思考模型、Agent 类任务请务必使用流式("stream": true)。

原因:非流式请求要等模型全部生成完才返回,期间连接上没有任何数据。网络链路上的代理(包括 CDN)通常在约 100 秒无数据时断开连接,表现为 524 或连接被重置——而此时上游可能已经在生成并计费了。

场景建议
普通对话、短回答流式 / 非流式均可
思考模型(Opus、Fable、GPT 高推理强度等)✅ 流式
长文生成、代码生成✅ 流式
Claude Code、Codex 等工具工具默认就是流式,无需设置

开启方式 ​

python
stream = client.chat.completions.create(
    model="gpt-5.6",
    messages=[{"role": "user", "content": "写一篇 2000 字的文章"}],
    stream=True,
    stream_options={"include_usage": True},  # 最后一个分片返回 usage
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
python
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=8192,
    messages=[{"role": "user", "content": "写一篇 2000 字的文章"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

超时设置建议 ​

设置推荐值说明
连接超时10 秒建立连接的时间
读取超时(流式)300 秒两个分片之间的最长间隔;思考模型首字可能较慢
总超时(流式)不限或 30 分钟长任务可能持续很久
总超时(非流式)≤ 90 秒超过请改用流式
python
from openai import OpenAI
import httpx

client = OpenAI(
    api_key="sk-xxxx",
    base_url="https://aimoniker.top/v1",
    timeout=httpx.Timeout(connect=10, read=300, write=30, pool=10),
    max_retries=2,
)

首字慢 ≠ 卡死

思考模型需要先思考再输出,首字时间可能长达几十秒。在 使用日志 中,"首字"时间与总耗时接近时,通常是上游没有真正流式返回,可以换个分组试试。

遇到问题?加入 QQ 交流群 1013908099