Wiederholungen & Backoff
Was Sie wiederholen, was Sie beheben, und wie Sie Backoff einsetzen.
Kontinent übernimmt das Failover auf Anbieterebene für Sie, aber Ihr Client braucht trotzdem eine vernünftige Retry-Strategie für die Fehler, die bei ihm ankommen.
Nach Statuscode entscheiden
Wiederholbar
429 rate_limit_exceeded, 429 upstream_rate_limited, 500, 502 upstream_error, 503 no_provider_available, 503 transcriptions_busy. Nutzen Sie exponentiellen Backoff mit Jitter.
So nicht wiederholbar
400, 401, 403, 404, 429 spend_limit_exceeded. Beheben Sie zuerst die Anfrage, den Schlüssel oder das Limit.
401 invalid_api_key: der Schlüssel ist falsch oder widerrufen. Ein erneuter Versuch mit demselben Schlüssel hilft nicht.402 insufficient_credits: erst nach einer Aufladung wiederholbar.403 segment_not_permitted: wählen Sie ein Modell eines anderen Anbieters, statt es erneut zu versuchen.429 rate_limit_exceeded: das RPM-Fenster Ihres Schlüssels ist voll. Warten Sie mindestens das 60-s-Fenster ab.429 upstream_rate_limited: der Anbieter hat gedrosselt, nicht Sie. Mit Backoff erneut versuchen.429 spend_limit_exceeded: ein Ausgabelimit ist aufgebraucht. Ein erneuter Versuch hilft erst, wenn das Zeitfenster neu beginnt oder das Limit erhöht wird.
Die vollständige Fehler-Taxonomie finden Sie mit allen Codes.
Streaming braucht eine andere Regel
Failover zwischen Anbietern passiert nur vor dem ersten Byte eines Streams. Sobald Tokens eintreffen, kommt ein Anbieterfehler als abschließender Fehler-Chunk (finish_reason: "error", danach kein data: [DONE]), nicht als HTTP-Fehler. Behandeln Sie einen Stream, der ohne data: [DONE] endet, als wiederholbaren Fehler auf Ihrer Seite, und denken Sie daran, dass die bis dahin generierten Tokens bereits abgerechnet sind. Siehe Streaming.
Eine vernünftige Grundeinstellung
Trägt eine Antwort Retry-After, warten Sie mindestens so lange: 60 Sekunden bei 429 rate_limit_exceeded. Sonst funktioniert exponentieller Backoff mit Jitter gut, beginnend bei etwa 200 bis 500 ms und gedeckelt auf wenige Sekunden, für 429 upstream_rate_limited und vorübergehende 5xx-Fehler. Stoppen Sie nach einer kleinen, festen Anzahl von Versuchen und melden Sie den Fehler; versuchen Sie es nicht unbegrenzt weiter.