网络诊断 AI 服务报错

Too Many Requests(429)怎么办?AI 服务限流原因与解决

使用 ChatGPT、Claude 或调用 OpenAI、Anthropic、Gemini API 时出现 429 Too Many Requests 怎么办?本文区分账号用量上限、API 速率限制、额度不足和共享出口 IP 被限流四种情况,教你查看响应头判断原因,并给出退避重试与节点固定等解决方法。

Too Many Requests(429)怎么办?AI 服务限流原因与解决

核心结论

429 Too Many Requests 表示请求在一段时间内超出了服务允许的频率或用量。网页端多为账号在当前周期内用量达到上限,等待重置即可;API 端要区分速率限制和额度不足,查看响应头中的剩余额度与重试时间,并在程序中加入退避重试;如果刚打开页面就报 429,可能是共享出口 IP 被限流,应换到更干净的固定节点。

文章目录 8 个章节
  1. 问题现象
  2. 可能原因
  3. 限流是怎么计算的
  4. 快速自查
  5. 逐步排查
  6. 注意事项
  7. 仍然无法解决
  8. 相关问题
  9. 常见问题

问题现象

HTTP 429 状态码的标准含义是“Too Many Requests”,即请求过多。AI 服务中常见的表现形式有:

  • ChatGPT 网页提示请求过多、稍后再试,或显示“Too many requests in 1 hour”一类的提示;
  • Claude 网页提示已达到当前用量上限,并显示额度的重置时间;
  • OpenAI API 返回 429,错误码为 rate_limit_exceeded 或 insufficient_quota;
  • Anthropic API 返回 429,错误类型为 rate_limit_error;
  • Gemini API 返回 429,状态为 RESOURCE_EXHAUSTED;
  • Claude Code、Codex 等工具在执行中提示被限流,自动等待后重试。

429 和“地区不支持”是两类问题:429 说明服务已经接受了你的访问,只是限制了频率或用量;地区问题通常是 403 或明确的地区提示,排查方法见 Region Not Supported 怎么办。

可能原因

原因 判断方法 解决方法
账号在当前周期用量达到上限 网页提示中带有重置时间,或账号设置中显示用量已满 等待重置,或按官方方案调整订阅
API 速率限制(每分钟请求数或 token 数) 响应头中剩余请求数或 token 数为 0 降低并发,加入退避重试,申请更高额度
API 额度或余额不足 错误码为 insufficient_quota 或提示余额不足 在官方控制台检查账单与用量上限
共享出口 IP 被按 IP 限流 刚打开页面就提示,换网络后正常 换更干净的固定节点,避免高度共享的出口
程序或扩展重复发送请求 日志中短时间内有大量重复请求 修复重试逻辑,关闭可疑扩展和多余标签页
频繁切换节点导致会话异常 自动测速分组不停切换出口 为 AI 服务固定节点,关闭自动切换

限流是怎么计算的

AI 服务的限流通常同时存在几个维度:按账号统计的用量上限(例如网页端的对话额度)、按 API 组织或密钥统计的每分钟请求数与 token 数,以及为防止滥用而按来源 IP 做的频率控制。前两种与网络环境无关,换节点没有意义;最后一种与出口 IP 有关,当一个节点 IP 被大量用户同时用来访问同一服务时,更容易触发。

因此排查 429 的第一步,是判断它属于“账号 / API 维度”还是“IP 维度”。

使用方式 最常见的限流维度 处理重点
ChatGPT、Claude 网页或客户端 账号在当前周期内的用量额度 看提示中的重置时间,等待或调整订阅方案
官方 API 直接调用 组织或密钥的每分钟请求数、token 数与总额度 读响应头,控制并发,处理账单
Claude Code、Codex 等编程工具 所登录账号的套餐用量或所用 API 的速率等级 拆分任务,降低并发,查看工具内的用量提示
刚打开页面就报错 来源 IP 的访问频率 固定节点,换更干净的出口

网页端的额度一般按一段时间滚动重置,等待是最直接的办法;API 与编程工具则更多取决于你的请求方式,改善代码或使用习惯往往比换网络有效得多。

快速自查

  1. 看错误提示中是否带有重置时间或额度字样:有的话基本是账号用量问题;
  2. API 用户登录官方控制台,检查用量、余额与速率等级;
  3. 关闭浏览器中与 AI 相关的扩展,只保留一个标签页再试;
  4. 检查客户端是否把 AI 服务放在了“自动选择”或“负载均衡”分组;
  5. 用手机流量或另一个节点访问,对比是否仍然报 429。

逐步排查

  1. 确认当前出口 IP 与地区。 浏览器与终端分别检查,确保走的是同一个固定节点:

    # Windows PowerShell
    curl.exe -s https://www.cloudflare.com/cdn-cgi/trace
    # macOS / Linux
    curl -s https://www.cloudflare.com/cdn-cgi/trace

    记下 ip= 与 loc=。如果多次执行 IP 在变化,说明出口在自动切换,先固定节点。

  2. 查看 API 响应头中的限流信息。 发送一个最小请求并只输出响应头。下面以 Anthropic API 为例,模型名替换为你实际使用的模型,端口以客户端设置为准:

    '{"model":"MODEL_NAME","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}' | Set-Content -Encoding ascii body.json
    curl.exe -s -D - -o NUL https://api.anthropic.com/v1/messages -x http://127.0.0.1:7897 -H "x-api-key: $env:ANTHROPIC_API_KEY" -H "anthropic-version: 2023-06-01" -H "content-type: application/json" --data "@body.json" | Select-String "HTTP/|ratelimit|retry-after"
    curl -s -D - -o /dev/null https://api.anthropic.com/v1/messages -x http://127.0.0.1:7897 \
      -H "x-api-key: $ANTHROPIC_API_KEY" -H "anthropic-version: 2023-06-01" -H "content-type: application/json" \
      -d '{"model":"MODEL_NAME","max_tokens":1,"messages":[{"role":"user","content":"hi"}]}' | grep -iE "HTTP/|ratelimit|retry-after"

    Anthropic 的响应头以 anthropic-ratelimit- 开头,OpenAI 的以 x-ratelimit- 开头,retry-after 表示建议等待的秒数。字段名称与是否返回以各服务官方文档为准。API 密钥请通过环境变量读取,不要写进脚本或截图。

  3. 区分速率限制与额度不足。 剩余请求数或 token 数为 0,是速率限制,等待重置并降低并发即可;错误信息为额度或余额不足,需要去控制台处理账单,重试不会有任何效果。

  4. 在程序中加入退避重试。 遇到 429 时不要立即重试,而是按 retry-after 或指数退避等待,避免重试本身加剧限流:

    import time, random
    
    def call_with_backoff(send, max_retries=5):
        for attempt in range(max_retries):
            resp = send()
            if resp.status_code != 429:
                return resp
            wait = float(resp.headers.get("retry-after", 2 ** attempt))
            time.sleep(wait + random.uniform(0, 1))
        return resp

    官方 SDK 通常已内置重试机制,可在其配置中调整重试次数,具体以 SDK 文档为准。

  5. 排除 IP 维度的限流。 如果账号与 API 用量都正常,而刚打开页面就报 429,换到另一个同地区、不同 IP 的节点对比。换节点后恢复,说明原节点出口被大量共享或信誉较差,IP 质量的判断方法见 IP 纯净度是什么。

  6. 固定节点,不要频繁切换。 为 AI 服务单独建立手动分组,长期使用同一个稳定出口。频繁切换地区不仅无助于解决 429,还可能引发人机验证,参见人机验证无限循环怎么解决。

注意事项

  • 不要用多个账号轮换或脚本批量请求来绕开限流,这违反大多数 AI 服务的使用条款;
  • AI 编程工具在大型任务中会连续发送大量请求,遇到限流时适当拆分任务、降低并发;
  • 共享 API 密钥给多人使用时,所有人的请求会计入同一个额度,容易意外触发限流。

仍然无法解决

  1. 在官方状态页确认服务是否有故障,例如 status.anthropic.com、status.openai.com;
  2. API 用户按官方流程申请提升速率等级,或联系官方支持说明用量需求;
  3. 如果多个机场节点都频繁触发 IP 维度的限流,可以考虑换用 IP 质量更好的服务,参考 AI 稳定机场推荐。

请遵守当地法律法规与服务条款,合理使用 AI 服务。

相关问题

常见问题

429 错误是账号被封了吗?

不是。429 是限流提示,意思是请求太频繁或本周期用量已满,等待一段时间或降低请求频率后通常会自动恢复。账号被封或受限一般会有明确的账号类提示或 403 错误。

我明明没怎么用,为什么也提示请求过多?

常见原因有两个:一是你使用的出口 IP 被很多人共享,服务按 IP 统计时把其他人的请求也算了进来;二是浏览器扩展、多个标签页或后台脚本在持续发送请求。换一个固定、干净的节点,并关闭相关扩展后再试。

API 返回 429 但提示 insufficient_quota 是什么意思?

这表示账户额度或余额不足,而不是请求太快。需要在官方控制台检查账单、余额和用量上限,重试不会解决问题。

换节点能解决 429 吗?

只有在限流是按 IP 计算、且当前 IP 被大量共享时才有帮助。如果是账号用量或 API 额度达到上限,换节点无效,频繁换节点反而可能触发额外的风控验证。

Claude API 返回 529 和 429 有什么区别?

429 表示你的请求超出了限额;529 表示服务端暂时过载,与你的用量无关。529 等待片刻重试即可,具体含义以官方文档为准。

本文最后更新于 。网络服务与 AI 平台政策变化较快,如发现信息过时,欢迎通过联系我们反馈。