OpenAI
页面内容为机器翻译。查看英文原文

如何解决 429:“Too Many Requests”错误?

更新于:16 hours ago

速率限制错误(“Too Many Requests”、“Rate limit reached”)是由于达到你所在组织的速率限制而导致的;速率限制是指每分钟可提交的请求和 Token 的最大数量。如果达到该限制,在速率限制重置之前,该组织将无法成功提交请求。错误消息如下所示:

组织 org-exampleorgid123 中 gpt-3.5-turbo 的每分钟 Token 数已达到速率限制。
限制:10000.000000 / 分钟。当前:10020.000000 / 分钟。

我们建议使用指数退避来处理这些错误。指数退避是指在遇到速率限制错误时短暂等待,然后重试未成功的请求。如果请求仍未成功,则延长等待时间并重复这一过程。这一过程会持续进行,直到请求成功或达到最大重试次数。

由于未成功的请求也会计入你的每分钟限制,持续重复发送同一请求并不可行。速率限制可能会应用于更短的时间段——例如,在 60 RPM 限制下每秒 1 个请求——这意味着短时间内的大量请求突增也可能导致速率限制错误。指数退避通过拉开请求间隔来降低这些错误发生的频率,因此效果很好。

在 Python 中,指数退避解决方案可能如下所示:

from openai import OpenAI, RateLimitError
import backoff

client = OpenAI()

@backoff.on_exception(backoff.expo, RateLimitError)
def completions_with_backoff(**kwargs):
response = client.completions.create(**kwargs)
return response

(请注意:backoff 库是第三方工具。我们鼓励所有客户在验证其项目所用的任何外部代码时都进行尽职调查。)

如果实现指数退避后仍出现此错误,你可能需要提高你的使用层级。你可以在账户设置的限制部分查看当前速率限制,并了解如何提高信任层级以提升速率限制。

这篇文章对你有帮助吗?