先确认到底是哪一种超时
连接超时发生在可用响应建立之前;流式空闲超时发生在响应已经开始、但长时间没有新字节时;总时限即使持续收到分片也会终止请求。只调高其中一个值,无法修复另外两个。
- 记录请求开始、响应头到达、首个事件到达和最后事件到达的时间。
- 同时保存端点、协议、模型、档位、状态码和尝试序号。
- 不要把所有传输失败都压成“网络错误”,不同阶段对应的处理方法不同。
收到部分文本,不等于请求已经完成
OpenAI Responses 成功完成时会发送 response.completed;Anthropic Messages 的正常 SSE 序列以 message_stop 结束。在这些事件之前收到的文本增量可用于展示和诊断,但不能证明请求完整结束。
连接提前关闭时,可以保留部分文本排查问题,但评测尝试必须记为失败。把截断答案当成完整答案评分,会在不知情的情况下奖励传输故障。
流式事件无法突破代理的绝对时限
持续事件可以避免空闲连接被误判为断开,却不能延长客户端、反向代理、边缘平台或供应商设置的绝对请求上限。如果多次请求总在接近相同的总时长结束,应逐层检查链路,而不是只改模型超时。
重试传输失败,但不要制造无限运行
每次重试都是新的模型请求,可能生成不同答案,也可能产生新的费用,即使第一次响应没有完整到达客户端。应限制重试次数,限流时使用退避,并把每次尝试分开保存。
评测必须在运行前固定答案选择与重试策略,不能只对低分答案持续重试,否则不同模型不再使用同一比较标准。