环境: openai sdk 并发 5
RPM 设的 60
报错全文:
// OpenAI
Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-4o in organization org-xxx on requests per min (RPM): Limit 500, Used 500.', 'type': 'requests', 'code': 'rate_limit_exceeded'}}
// Anthropic
{"type":"error","error":{"type":"rate_limit_error","message":"Number of request tokens has exceeded your per-minute rate limit"}}
// 中转站常见(new-api / one-api 系)
当前分组上游负载已饱和,请稍后再试
查了下资料,说最常见原因是「客户端并发太高 / 没有退避重试」,但我这个场景……求大佬指点。
afeng
2026 年10 月 30 日 22:21
2
这个我们在报错百科里做过完整排查,直接给结论:
429 是限速,不是你的 Key 有问题。 直连官方时它代表"你请求太快";走中转站时,多数情况是中转站那个分组的并发上限到了,跟你无关。
判断方法:等 60 秒再发一次同样的请求。好了就是限速,没好才需要往下查。
修法(节选自百科,完整版见正文链接):
场景 A:你在直连官方
加指数退避重试。不要立刻重试,第一次等 1 秒,之后 2、4、8 秒。
把并发降到 1-3,逐步加。
查一下你的 RPM / TPM 配额,是不是真的打满了。
import time, random
def with_retry(fn, max_attempts=5):
for i in range(max_attempts):
try:
return fn()
except Exception as e:
if "429" not in str(e) or i == max_attempts - 1:
raise
wait = min(2 ** i, 30) + random.random()
time.sleep(wait)
场景 B:你用中转站
换分组:很多中转站同一个模型有多个分组,价格不同、限流也不同。
换站点:我们的中转站实测 里有各家 429 的实际发生率。
如果只有某个模型 429,说明是这个模型的渠道限流,不是你的问题。
完整排查文档(含全部概率排序和责任判定):429 Too Many Requests:请求太频繁怎么解决 · 报错百科 · docai.cc
按这个改完基本就通了。还报错的话把你改后的完整报错贴上来,我再看。