Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
- Nejdřív zkontrolujte
error.code. Pokud se jedná o fakturační kód, jako jecredit_balance_exhausted, už to nezkoušejte znovu a informujte uživatele. Opětovné provedení po chybě fakturace neobnoví přístup. - Sledujte
Retry-After, pokud je k dispozici. Pokud chybí, použijte exponenciální backoff s jitterem a omezte počet opakování. - 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. - 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.
- Po
503více ustupte. Zvětšete zpoždění mezi opakovanými pokusy a zkontrolujte stavovou stránku OpenAI. - Ř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.