概述
API 使用受速率限制约束。这些限制会约束指定时间段内的请求数、Token 数或其他用量。
429 响应可能表示临时速率限制、预付余额已用尽,或达到支出或用量限制。重试或更改结算设置前,请先查看错误详情。
确定原因
查看错误消息,以及提供的 error.code。结算相关错误的 error.type 仍可能使用范围更广的值 insufficient_quota。
| 错误或代码 | 含义 | 处理方法 |
| 请求数或 Token 数达到速率限制 | 请求超出了适用的速率限制。 | 控制请求节奏,并遵循下方的重试指导。 |
| credit_balance_exhausted | 该组织已无剩余预付额度。 | 在 API 结算设置中添加额度。 |
| organization_usage_limit_exceeded | 该组织已达到 OpenAI 分配的用量限制。 | 申请提高已获批准的用量限制。 |
| organization_spend_limit_exceeded | 该组织已达到强制支出限制。 | 提高或移除限制,或等待每月重置。 |
| project_spend_limit_exceeded | 该项目已达到强制支出限制。 | 提高或移除项目限制,或等待每月重置。 |
重试结算、支出或配额错误不会恢复访问权限。请先处理报告的余额或限制问题。强制支出限制的更改可能需要一段时间才能生效。
更改支出限制需要具备管理相关组织或项目设置的权限。如果您没有访问权限,请联系管理这些设置的人员。
有关购买预付额度的信息,请参阅:设置和管理 API 预付费结算。
有关不同的支出控制方式,请参阅 API 支出限制指南。
检查适用的速率限制
前往您组织的限制页面,查看当前用量层级和限制。
速率限制可在组织和项目层级应用。这些限制并非针对单个用户的额度。限制也因模型而异,部分模型系列共用同一限制。
检查错误指出的是哪项限制。例如,每分钟请求数和每分钟 Token 数是两项独立的限制。其中一项可能达到上限,而另一项仍低于上限。
减少临时速率限制错误
控制请求节奏,避免突发请求
将请求分散到不同时间发送,而不是一次发送大量请求。
速率限制的实际执行周期可能短于显示的时间间隔。例如,每分钟 60 个请求的限制也可能按 1 秒周期执行。因此,即使平均用量看起来低于每分钟限制,短时间突发请求仍可能触发错误。
提示词过长以及不必要地设置过高的输出 Token 上限,也可能导致 Token 速率错误。
延迟后重试
对于临时速率限制错误:
检查响应中是否包含 Retry-After 标头。
如果标头包含有效的延迟时间,请至少等待这么长时间后再重试。
如果标头缺失或无效,请使用带抖动的指数退避:每次尝试失败后延长等待时间,并加入一小段随机延迟。
限制重试次数和重试所用的总时长。
OpenAI 官方 SDK 已会重试符合条件的速率限制错误,并在存在 Retry-After 时遵循其要求。添加其他重试循环前,请将这些重试考虑在内。
失败的请求也会计入每分钟限制。持续重复发送同一请求可能会使问题延续更久。
有关实现指导和示例,请参阅 API 速率限制指南。在应用中使用任何第三方重试库之前,请先进行审查。
检查提示词和输出大小
从提示词中移除不必要的指令、重复的上下文和示例。测试修改后的提示词,确认其仍能生成您需要的结果。
使用您的端点和模型支持的输出 Token 参数:
聊天补全使用 max_completion_tokens。
Responses 使用 max_output_tokens。
避免将上限设置得远高于请求的实际需要。这些参数既包括推理 Token,也包括可见输出,因此使用推理模型时应为两者都预留空间。
查看用量层级
如果减少突发请求并检查 Token 用量后错误仍然存在,请查看限制页面,了解可用于提高限制的方式。
随着 API 支出增加,OpenAI 可以自动将组织提升到更高的用量层级。这通常会提高大多数模型的速率限制。
已获批准的每月用量限制独立于请求和 Token 速率限制。其中一项提高,并不代表另一项也已发生变化。
如果问题仍然存在
升级处理前
请准备好确切的错误消息、所有错误代码、相关请求 ID、错误发生时间及您所在的时区,以及账户中显示的相关限制。记下您已经尝试过的步骤。
联系 OpenAI 支持团队
如果检查报告的限制后仍无法解决问题,请通过帮助中心联系 OpenAI 支持团队。请勿提供 API 密钥或其他身份验证机密信息。
