深色模式
流式输出与超时
推荐开启流式
长输出、思考模型、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,
)首字慢 ≠ 卡死
思考模型需要先思考再输出,首字时间可能长达几十秒。在 使用日志 中,"首字"时间与总耗时接近时,通常是上游没有真正流式返回,可以换个分组试试。
