Requesty bez wykrytej sesji nadal rotują w trybie round robin. Obsługiwane nagłówki sesji,
pola body i automatyczne wykrywanie rozmów opisuje strona
Utrzymywanie sesji.
Konfiguracja
Dodawaj klucze za pomocą numerowanych zmiennych środowiskowych.<PROVIDER>_API_KEY to pierwszy
klucz; <PROVIDER>_API_KEY_2, _3 i kolejne dodają pozostałe.
config.yaml:
api_key i api_keys można łączyć; api_key jest używany jako pierwszy.
Aby przywrócić ścisły round robin per request, wyłącz tę opcję dla danego providera:
ANTHROPIC_API_KEY_2,
GEMINI_API_KEY_2, GROQ_API_KEY_2 i tak dalej. Providerzy uwierzytelniający się
w inny sposób (Vertex AI i Bedrock, które używają danych uwierzytelniających Google i AWS) ignorują
te zmienne.
Zasady
- Numeracja zaczyna się od
2, ponieważ<PROVIDER>_API_KEYto klucz 1. Zapisanie<PROVIDER>_API_KEY_1zamiast formy bez sufiksu również działa. - Luki są dozwolone. Ustawienie tylko
_API_KEYi_API_KEY_3daje dwa klucze. - Zduplikowane klucze są scalane, więc klucz powtórzony w dwóch zmiennych nie dostaje podwójnego udziału w ruchu.
- Klucze są używane w skonfigurowanej kolejności: najpierw klucz bez sufiksu, potem rosnąco według numeru.
- Zmienne środowiskowe zastępują całą listę
api_keysprovidera zconfig.yaml, zamiast się z nią scalać. - Klucz, którego nie da się rozwiązać — placeholder
${UNSET_VAR}— jest pomijany. Provider, któremu nie zostanie żaden klucz, nie jest rejestrowany.
Przy włączonym przyklejaniu sesji ponowienia używają klucza przypiętego do sesji. Przy
wyłączonym przyklejaniu każda próba wychodząca uczestniczy w round robin.
Rotacja u providerów z sufiksem
Zmienne środowiskowe z sufiksem rejestrują osobnego providera tego samego typu. Oba mechanizmy można łączyć, a rozróżnia je końcowy numer:openai-eu z dwoma kluczami. Końcowe _2 oznacza klucz.
openai-region-2 z jednym kluczem. Tutaj 2 jest częścią
sufiksu providera, a nie numerem klucza.
Co obejmuje rotacja
Każde wywołanie, które GoModel wykonuje do providera, używa tej samej polityki wyboru: chat completions, responses, embeddingi, audio, obrazy, batche, natywne dla providera trasy passthrough i sesje realtime. Zidentyfikowane sesje są przyklejone; ruch bez sesji jest rozdzielany w trybie round robin. Rotacja działa per proces gatewaya. Liczniki są przechowywane w pamięci i resetują się przy restarcie, więcN replik rotuje niezależnie od siebie — co nie stanowi problemu, ponieważ celem jest
rozłożenie obciążenia, a nie dokładne ustalenie kolejności.
Wybór między rotacją a osobnymi providerami
Oba podejścia pozwalają używać kilku kluczy jednego typu providera. Rozwiązują różne problemy.
Osobni providerzy nadal są przydatni, gdy klucze wskazują różne konta,
regiony, bazowe URL-e lub katalogi modeli. Nie są już jednak potrzebni wyłącznie po to, by
zachować prompt caching przy kilku kluczach.