DeepSeek API 返回 429:原因分析与 5 种解决方案
一分钟解决如果 DeepSeek API 返回 429 错误:✅ 看error.message—rate_limit_exceeded是限流、insufficient_balance是没钱✅ 加指数退避重试(不是固定间隔 sleep)✅ 加请求队列,控制并发不超过 2 个/秒✅ 配一个Claude Haiku或GPT-4o-mini做 Fallback✅ 去 platform.deepseek.com 看余额和配额80% 的情况前两行就能解决。问题现象调用 DeepSeek API 时,HTTP 状态码返回429 Too Many Requests,响应体类似:{"error":{"message":"Rate limit exceeded. Please try again later.","type":"rate_limit_exceeded","code":"rate_limit_exceeded"}}具体表现:连续几条请求正常,突然开始返回 429刷新页面、重启应用后短暂恢复,几秒后又 429高峰期(北京时间 14:00-18:00)频率明显更高免费账号比付费账号出现频率高 3-5 倍我在志趣社区接入 DeepSeek 后,前 48 小时就遇到了42 次 429 错误,平均每 200-300 次请求触发一次。原因分析DeepSeek 的 429 有三种子类型:子类型含义典型场景rate_limit_exceeded请求频率超限循环里连续调 API、并发太高insufficient_balance账户没钱了免费额度用完或余额为 0quota_exceeded日/月配额耗尽免费账号一天有总 Token 上限DeepSeek 限流规格(截至 2026 年 6 月):账户类型RPM(每分钟请求)TPM(每分钟 Token)日 Token 上限免费/试用550,000100 万Tier 1 付费50500,0001000 万Tier 2+ 付费5001,000,000无免费账户的 5 RPM 限制——意味着两次请求之间至少隔 12 秒。如果你在for循环里逐条处理,第二次请求就会触发 429。另一个常见原因:DeepSeek 的 429 会连锁触发。一旦被限流过一次,后续 30-60 秒内的所有请求都可能被拒绝,即使你降低了频率。这是它的「惩罚窗口」机制。解决方案方案一:查看响应头获取剩余配额DeepSeek 的 429 响应会带上限流相关的 Header:curl-vhttps://api.deepseek.com/v1/chat/completions\-H"Authorization: Bearer sk-xxx"\-H"Content-Type: application/json"\-d'{...}'21|grep-iratelimit关键 Header:ratelimit-limit: 5 # 你的 RPM 上限 ratelimit-remaining: 0 # 当前窗口还剩几次(0=马上被限流) ratelimit-reset: 34 # 多少秒后窗口重置利用这些信息做预判:当ratelimit-remaining = 1时,主动等ratelimit-reset秒再发下一次请求,而不是等到 429 再被动重试。方案二:指数退避重试(Node.js 实现)❌ 错误做法:// 固定间隔重试 3 次——不好for(leti=0;i3;i++)