Chyby OpenAI „Byl dosažen limit požadavků“: co znamenají a jak je zpracovat

Rozhraní OPENAI API vrací 429 s hláškou "Rate limit reached", když vaše organizace odešle více požadavků nebo více tokenů za minutu, než umožňují její limity. Omezení platí pro vaši organizaci, ne pro každého uživatele. Tyto chyby jsou dočasné. Pokud počkáte a odešlete požadavek znovu, obvykle proběhne úspěšně. Některé další 429 chyby z OpenAI se týkají fakturace a ty nezmizí ani po čekání. Další informace naleznete v tématu Kódy chyb.

Jak vypadají chyby limitu požadavků OpenAI

Status Error Co to znamená Zkuste to znovu?
429 rate_limit_exceeded, požadavky za minutu (RPM) Za minutu jste odeslali příliš mnoho požadavků. Ano, po Retry-After
429 rate_limit_exceeded, tokeny za minutu (TPM) Ve vašich požadavcích bylo během jedné minuty použito příliš mnoho tokenů. Ve zprávě se zobrazí váš limit, kolik tokenů jste použili a kolik jich požadavek vyžádal. Ano, po Retry-After. Menší požadavky pomáhají.
429 slow_down (typ rate_limit_error) Vaše návštěvnost se příliš rychle zvýšila, i když se nacházíte v limitech RPM a TPM. Ano, s nižší sazbou
503 server_is_overloaded (typ service_unavailable_error) Servery OpenAI jsou zaneprázdněné. Ano, pokaždé s delším zpožděním
429 credit_balance_exhausted, chyby limitu útraty nebo limitu využití (typ insufficient_quota) Nemáte kredity nebo jste překročili limit. No. Viz OpenAI insufficient_quota and credit_balance_exhausted.

Většina těchto chyb sdílí 429 stav, takže je nemůžete od sebe oddělovat jenom podle stavu. Přečtěte si error.code v těle odpovědi.

Jak řešit chyby překročení limitu požadavků OpenAI

  1. Nejdřív zkontrolujte error.code . Pokud se jedná o fakturační kód, jako je credit_balance_exhausted, už to nezkoušejte znovu a informujte uživatele. Opětovné provedení po chybě fakturace neobnoví přístup.
  2. Sledujte Retry-After, pokud je k dispozici. Pokud chybí, použijte exponenciální backoff s jitterem a omezte počet opakování.
  3. Zpomalte po slow_down. Snižte míru požadavků a pak ji postupně zvyšujte. Orientační pravidlo OpenAI nad 1M vstupní TPM je zvyšovat provoz maximálně o 50 % každých 15 minut.
  4. Po chybě TPM odešlete méně tokenů. Kratší výzvy a odpovědi umožňují, aby se více požadavků vešlo do každé minuty.
  5. Po 503 více ustupte. Zvětšete zpoždění mezi opakovanými pokusy a zkontrolujte stavovou stránku OpenAI.
  6. Řekněte uživateli, co se děje. „Probíhá zpracování, opakování za 5 sekund“ je lepší než spinner, který nikdy nekončí.

OpenAI Python SDK ve výchozím nastavení zopakuje chyby připojení a odpovědi 408, 409, 429 a 5xx 2krát, s krátkou exponenciální prodlevou. Můžete ho změnit pomocí max_retries. Když dojdou opakované pokusy, sada SDK vyvolá RateLimitError pro 429 a InternalServerError pro 503, takže váš kód stále potřebuje plán:

import openai
from openai import OpenAI

client = OpenAI(max_retries=3)

BILLING_CODES = {
    "credit_balance_exhausted",
    "organization_spend_limit_exceeded",
    "project_spend_limit_exceeded",
    "organization_usage_limit_exceeded",
}


def summarize(text: str) -> str | None:
    try:
        response = client.responses.create(model="gpt-4.1", input=text)
        return response.output_text
    except openai.RateLimitError as error:
        if error.code in BILLING_CODES:
            raise  # Retrying won't help: alert and tell the user
        return None  # Still throttled after retries: show "busy, try again"
    except openai.InternalServerError:
        return None

Jak otestovat, že aplikace zpracovává limity počtu požadavků OpenAI

Při vývoji zřídka dosáhnete limitu počtu požadavků OpenAI. Jste jediným uživatelem a výzvy jsou krátké. Způsob, jakým testujete zpracování omezení četnosti, tedy určuje, zda chyby zjistíte dříve, než je odhalí vaši uživatelé.

Approach Co najdete Co vám chybí
Počkejte na produkční prostředí Skutečná selhání Všechno, dokud ho uživatel nenarazí
Mockujte API ve svých testech nebo nechte svého programovacího agenta napsat mock Jestli se vaše větev opakování spustí Skutečná těla a kódy chyb OpenAI a politika opakování vaší sady SDK. Vaše aplikace také potřebuje testovací přepínač pro přístup k mocku.
Volání skutečného rozhraní API, dokud vás neomezuje Skutečné chování Nemůžete aktivovat konkrétní chybu na vyžádání a všechny tokeny nákladů na požadavky
Zachyťte skutečný provoz vaší aplikace a vraťte chyby OpenAI na vyžádání Skutečné adresy URL, skutečná sada SDK a zásady opakování pokusů a vlastní formát chyby OpenAI V aplikaci se nic nemění, takže netestuje váš kód izolovaně. Na to si nechte unit testy.

Vyzkoušejte si ji v aplikaci

Dev Proxy zachycuje požadavky api.openai.com vaší aplikace na chyby OpenAI a vrací chyby OpenAI, zatímco vaše aplikace pořád volá skutečné adresy URL. Předvolba openai-throttling selže u většiny požadavků s náhodným výběrem z chyb TPM a RPM rate_limit_exceeded, slow_down chyb, credit_balance_exhausted chyb a 503server_is_overloaded chyb ve vlastním formátu OpenAI. 429 Odpovědi na omezení rychlosti zahrnují hlavičku Retry-After a pokud se vaše aplikace před uplynutím této doby pokusí o opakování požadavku, Dev Proxy to nahlásí.

Stáhněte si předvolbu a spusťte dev Proxy:

devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"

Pak aplikaci spusťte obvyklým způsobem a sledujte, co to dělá. Informace o instalaci Dev Proxy najdete v tématu Nastavení Dev Proxy.

Pokud chcete otestovat, jak se vaše aplikace chová, když dosáhne limitu tokenů za minutu na základě tokenů vstupu a výstupu, které vaše požadavky používají, viz Testování limitů tokenů jazykového modelu.

Další kroky

Viz také