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

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

更新日期:7 days 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 函式庫是第三方工具。我們鼓勵所有客戶在驗證其專案所使用的任何外部程式碼時,都應自行進行盡職審查。)

如果實作指數退避後仍出現此錯誤,你可能需要提高你的使用量級別。你可以在帳戶設定的限制部分查看目前的速率限制,以及如何提高信任級別以增加速率限制。

這篇文章對你有幫助嗎?