Requests ohne erkannte Session rotieren weiterhin im Round-Robin-Verfahren.
Unterstützte Session-Header, Body-Felder und die automatische Erkennung von
Konversationen beschreibt Session Keeping.
Konfigurieren
Fügen Sie Keys mit nummerierten Umgebungsvariablen hinzu.<PROVIDER>_API_KEY
ist der erste Key; <PROVIDER>_API_KEY_2, _3 usw. fügen die weiteren hinzu.
config.yaml:
api_key und api_keys lassen sich kombinieren; api_key wird zuerst
verwendet.
Um wieder striktes Round Robin pro Request zu erhalten, deaktivieren Sie die
Session-Bindung für diesen Provider:
ANTHROPIC_API_KEY_2, GEMINI_API_KEY_2, GROQ_API_KEY_2 usw. Provider, die
sich auf andere Weise authentifizieren (Vertex AI und Bedrock, die Google- bzw.
AWS-Zugangsdaten verwenden), ignorieren diese Variablen.
Regeln
- Die Nummerierung beginnt bei
2, da<PROVIDER>_API_KEYKey 1 ist.<PROVIDER>_API_KEY_1statt der Form ohne Suffix auszuschreiben, funktioniert ebenfalls. - Lücken sind erlaubt. Werden nur
_API_KEYund_API_KEY_3gesetzt, ergibt das zwei Keys. - Doppelte Keys werden zusammengefasst, sodass ein in zwei Variablen wiederholter Key keinen doppelten Anteil am Traffic erhält.
- Keys werden in der konfigurierten Reihenfolge verwendet: zuerst der Key ohne Suffix, dann aufsteigend nach Nummer.
- Umgebungsvariablen ersetzen die gesamte
api_keys-Liste des Providers ausconfig.yaml, statt mit ihr zusammengeführt zu werden. - Ein Key, der sich nicht auflösen lässt – ein Platzhalter
${UNSET_VAR}–, wird verworfen. Ein Provider, der danach gar keine Keys mehr hat, wird nicht registriert.
Bei aktivierter Session-Bindung verwenden Retries den an die Session
gebundenen Key. Bei deaktivierter Bindung nimmt jeder ausgehende Versuch am
Round Robin teil.
Rotation bei Providern mit Suffix
Umgebungsvariablen mit Suffix registrieren einen separaten Provider desselben Typs. Beide Mechanismen lassen sich kombinieren, und die abschließende Nummer unterscheidet sie:openai-eu mit zwei Keys. Das abschließende _2
bezeichnet einen Key.
openai-region-2 mit einem Key. Hier ist die 2 Teil des
Provider-Suffixes, keine Key-Nummer.
Was die Rotation abdeckt
Jeder Aufruf, den GoModel an den Provider richtet, verwendet dieselbe Auswahlrichtlinie: Chat Completions, Responses, Embeddings, Audio, Bilder, Batches, providernative Passthrough-Routen und Realtime-Sessions. Identifizierte Sessions sind fest gebunden; Traffic ohne Session läuft im Round Robin. Die Rotation gilt pro Gateway-Prozess. Die Zähler liegen im Speicher und werden beim Neustart zurückgesetzt, sodassN Replikate jeweils unabhängig rotieren –
was in Ordnung ist, denn das Ziel ist, Last zu verteilen, nicht sie exakt zu
sequenzieren.
Zwischen Rotation und separaten Providern wählen
Beides ermöglicht mehrere Keys eines Provider-Typs. Die beiden Ansätze lösen unterschiedliche Probleme.
Separate Provider sind weiterhin sinnvoll, wenn Keys auf unterschiedliche
Konten, Regionen, Base-URLs oder Modellkataloge verweisen. Sie sind aber nicht
mehr nötig, nur um Prompt-Caching über mehrere Keys hinweg zu erhalten.