Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die OpenAI-API gibt 429 mit „Rate limit reached“ zurück, wenn Ihre Organisation mehr Anforderungen oder mehr Token pro Minute gesendet hat, als ihre Grenzwerte zulassen. Grenzwerte gelten für Ihre Organisation, nicht für jeden Benutzer. Diese Fehler sind temporär. Wenn Sie warten und die Anforderung erneut senden, ist sie in der Regel erfolgreich. Einige andere 429 Fehler von OpenAI betreffen die Abrechnung, und diese verschwinden nicht, wenn Sie warten. Weitere Informationen finden Sie unter Fehlercodes.
Wie OpenAIs Ratenlimit-Fehler aussehen
| Status | Fehler | Was dies bedeutet | Erneut versuchen? |
|---|---|---|---|
429 |
rate_limit_exceeded, Anfragen pro Minute (RPM) |
Sie haben in einer Minute zu viele Anfragen gesendet. | Ja, nach Retry-After |
429 |
rate_limit_exceeded, Token pro Minute (TPM) |
Ihre Anfragen haben innerhalb einer Minute zu viele Token verbraucht. Die Meldung zeigt Ihr Limit, die Anzahl der von Ihnen verwendeten Token und wie viele von der Anfrage angefordert wurden. | Ja, nach Retry-After. Kleinere Anfragen helfen. |
429 |
slow_down (Typ rate_limit_error) |
Ihre Anfragen sind zu schnell gewachsen, auch wenn Sie sich innerhalb Ihrer RPM- und TPM-Grenzwerte befinden. | Ja, mit einem niedrigeren Satz |
503 |
server_is_overloaded (Typ service_unavailable_error) |
Die Server von OpenAI sind ausgelastet. | Ja, mit längeren Verzögerungen jedes Mal |
429 |
credit_balance_exhausted, Ausgabenlimit- oder Verwendungsgrenzwertfehler (Typ insufficient_quota) |
Ihr Guthaben ist aufgebraucht oder ein Limit wurde überschritten. | Nein Siehe OpenAI insufficient_quota und credit_balance_exhausted. |
Die meisten dieser Fehler haben denselben 429-Status, sodass Sie sie nicht allein nach Status unterscheiden können. Lesen Sie error.code im Antworttext.
Umgang mit OpenAI-Rate-Limit-Fehlern
- Überprüfen Sie
error.codezuerst. Wenn es sich um einen Abrechnungscode wiecredit_balance_exhaustedhandelt, versuchen Sie es nicht erneut und informieren Sie den Benutzer. Beim Wiederholen eines fehlgeschlagenen Abrechnungsvorgangs wird der Zugriff nicht wiederhergestellt. - Folgen Sie
Retry-After, wenn es vorhanden ist. Wenn sie fehlt, verwenden Sie exponentielle Backoffs mit Jitter, und beschränken Sie die Anzahl der Wiederholungen. - Nach
slow_downlangsamer werden. Reduzieren Sie Ihre Anforderungsrate, und erhöhen Sie sie dann schrittweise. Die Faustregel von OpenAI über 1M-Eingabe-TPM besteht darin, den Datenverkehr um maximal 50% alle 15 Minuten zu erhöhen. - Senden Sie weniger Token nach einem TPM-Fehler. Kürzere Eingabeaufforderungen und Antworten ermöglichen mehr Anfragen pro Minute.
- Nach einem
503weiter zurückgehen. Erhöhen Sie die Verzögerung zwischen Wiederholungen, und überprüfen Sie die OpenAI-Statusseite. - Teilen Sie dem Benutzer mit, was passiert. „Belegt, erneuter Versuch in 5 Sekunden“ schlägt einen Spinner, der nie endet.
Das OpenAI-Python SDK versucht bei Verbindungsfehlern und Antworten 408, 409, 429 und 5xx standardmäßig 2 Mal erneut, mit einem kurzen exponentiellen Backoff. Sie können sie mit max_retries ändern. Wenn die Wiederholungsversuche ausgeschöpft sind, löst das SDK RateLimitError für ein 429 und InternalServerError für ein 503 aus, daher sollte Ihr Code dennoch darauf vorbereitet sein:
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
So testen Sie, ob Ihre App mit OpenAI-Ratenbegrenzungen umgeht
Sie stoßen bei der Entwicklung selten an ein OpenAI-Ratenlimit. Sie sind der einzige Benutzer, und Ihre Prompts sind kurz. Die Art und Weise, wie Sie die Behandlung von Ratenbeschränkungen testen, entscheidet also, ob Sie die Fehler finden, bevor Ihre Benutzer dies tun.
| Approach | Was Sie finden | Was Ihnen fehlt |
|---|---|---|
| Warten auf Produktion | Tatsächliche Ausfälle | Alles, bis ein Benutzer es auslöst |
| Mocke die API in deinen Tests, oder lass deinen Coding-Agenten den Mock schreiben | Ob Ihre Wiederholungsverzweigung ausgeführt wird | OpenAIs tatsächliche Fehlertexte und -codes sowie die Wiederholungsrichtlinie Ihres SDK. Ihre App benötigt außerdem einen reinen Testschalter, um den Mock zu erreichen. |
| Rufen Sie die echte API auf, bis sie Sie drosselt | Tatsächliches Verhalten | Sie können keinen bestimmten Fehler bei Bedarf auslösen, und jede Anfrage kostet Tokens |
| Fangen Sie den tatsächlichen Datenverkehr Ihrer App ab und geben Sie OpenAI-Fehler bei Bedarf zurück | Echte URLs, Ihr reales SDK, Ihre Wiederholungsrichtlinie und OpenAIs eigenes Fehlerformat | Nichts in Ihrer App ändert sich, sodass Ihre App Ihren Code nicht isoliert testet. Bewahren Sie sich das für Ihre Unit-Tests auf. |
Probieren Sie sie mit Ihrer App aus
Dev Proxy fängt die Anfragen Ihrer App an api.openai.com ab und gibt OpenAI-Fehler zurück, während Ihre App weiterhin die tatsächlichen URLs aufruft. Die openai-throttling Voreinstellung schlägt bei den meisten Anfragen mit einer zufälligen Auswahl aus TPM- und RPM-rate_limit_exceeded, slow_down, credit_balance_exhausted und 503server_is_overloaded-Fehlern im eigenen Format von OpenAI fehl. Die 429 Antworten bei der Ratenbegrenzung umfassen einen Retry-After Header, und wenn Ihre App vor Ablauf dieser Zeit erneut versucht, meldet Dev Proxy dies.
Laden Sie die Voreinstellung herunter, und starten Sie Dev Proxy damit:
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Führen Sie dann Ihre App wie gewohnt aus, und beobachten Sie, was sie tut. Zum Installieren von Dev Proxy siehe Einrichten von Dev Proxy.
Informationen zum Testen, wie sich Ihre App verhält, wenn sie das Token-Limit pro Minute erreicht, basierend auf den von Ihren Anfragen verwendeten Prompt- und Completion-Token, finden Sie unter Tokenlimits für Sprachmodelle testen.
Nächste Schritte
Siehe auch
- OpenAI insufficient_quota und credit_balance_exhausted: Warum die Wiederholung nicht hilft
- 429 Zu viele Anfragen: Was dies bedeutet und wie man damit umgeht
- Die Retry-After Kopfzeile: wie lange gewartet werden soll, bevor Sie den Vorgang wiederholen
- Fehler mit OpenAI-APIs simulieren
- LanguageModelRateLimitingPlugin