OpenAI
此頁面由機器翻譯。查看原始英文文章

如何解決 429:「請求過多」錯誤?

更新日期:7 days ago

速率限制錯誤(「要求過多」、「已達速率限制」)是因為達到貴組織的速率限制而產生,這是每分鐘可提交的請求和 Token 數量上限。如果達到限制,該組織在速率限制重設之前將無法成功提交請求。錯誤訊息如下所示:

gpt-3.5-turbo 在組織 org-exampleorgid123 中已達到每分鐘 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 程式庫是第三方工具。我們鼓勵所有客戶在驗證其專案所用的任何外部程式碼時,都應進行盡職審查。)

如果實作指數退避後仍然出現此錯誤,您可能需要提高您的使用層級。您可以在帳戶設定的限制區段中查看目前的速率限制,以及如何提高信任層級以提升速率限制。

這篇文章有幫助嗎?