报错是这么冒出来的。批量摘要任务跑到第 3000 条开始零星返回 500,原文 The server had an error while processing your request. Sorry about that,响应头里有 x-request-id,重试同一条有时成功有时继续 500,同一时段换模型也一样。
中间走过弯路,把「账户被临时调度到拥塞集群」当成主因,改完现象没变。
把日志和配置对完,能解释这个现象的基本就这几处。长 prompt 命中后端某个分片的已知故障。另一种情况是请求里带了大体积 base64 图片 触发解析异常。
不容易想到的是,SDK 自动重试两次 日志里只剩最后一次。
先把完整响应头和请求体落盘
curl -i https://api.openai.com/v1/chat/completions -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' -d @req.json -o resp.txt
然后记录 request id 与输入长度用于后续比对
python -c "import json;print(len(json.dumps(json.load(open('req.json')))))"
500 单独限次重试 不与 429 共用策略
python retry.py --only 500 --max 3 --backoff 2
缩小单条输入复测判断是否与长度相关
python cut.py --max-chars 4000 --in req.json --out req_small.json
别只看报错消失,验证要多做一步。缩小输入后连续两百条不再出现 500,带 request id 的失败记录可以整理后提交支持。
补一句。500 属于服务端问题 重试要限次,把 x-request-id 一起落盘,否则找支持时只能描述现象。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
