Przejdź do głównej treści
OrcaRouter pozwala zapisać strategię routingu jako nazwany router. Wywołaj go z kodu jako orcarouter/{name}, a OrcaRouter rozwiąże go do konkretnego modelu w czasie żądania, na podstawie skonfigurowanych reguł. To przydatne, gdy chcesz:
  • Zmienić zachowanie routingu bez redeployu aplikacji (zmień router w panelu; kod pozostaje taki sam).
  • Pozwolić różnym zespołom lub usługom wybrać własną politykę routingu niezależnie od aplikacji, która wywołuje API.
  • Odwoływać się do logiki routingu, która jest zbyt złożona, by wpisać ją inline w extra_body.

Używanie routera

response = client.chat.completions.create(
    model="orcarouter/production-chat",
    messages=[...],
)
Aby dowiedzieć się, do jakiego konkretnego modelu router się rozwinął, odczytaj nagłówki odpowiedzi X-Orca-Router i X-Orca-Resolved-Model — zobacz Nagłówki odpowiedzi. Pole model w samym ciele odpowiedzi odzwierciedla to, co zwrócił upstream (często samą upstreamową nazwę, np. gpt-4o-mini-2024-07-18).

Tworzenie routera

Routery są tworzone w panelu pod Routing. Każdy router ma:
  • Nazwa{name} w orcarouter/{name}. Musi być unikalna w Twoim workspace; małe litery, cyfry, _ oraz - (1-50 znaków). Nazwa orcarouter jest zarezerwowana.
  • Dozwolone modele — jeden lub więcej wzorców glob (oddzielonych przecinkami lub nowymi liniami, case-insensitive), ograniczających które modele ten router może wybrać. Przykłady: openai/* lub openai/*, anthropic/claude-haiku-*. Puste oznacza dopasowanie każdego modelu, do którego konto ma dostęp.
  • Strategia — jak wybrać spośród pasujących modeli. Zobacz Strategie poniżej.
  • Mundane models / Hard models — dodatkowe listy modeli używane tylko przez strategię Adaptive · Gated. Zobacz Adaptive poniżej.
  • Default model — model “siatka bezpieczeństwa” używany, gdy wzorzec nic nie rozwiąże.
  • Włączony — wyłącz router bez jego usuwania.

Strategie

Edytor udostępnia cztery karty strategii. Adaptive łączy dwa sub-tryby backendu, dając łącznie pięć wartości enum, które można zapisać przez API.

Cheapest

Wybiera model z najniższą ceną per token spośród dostępnych kandydatów. Domyślna dla zasianego routera orcarouter/auto. Najlepsza, gdy chcesz najtańszego dostępnego modelu chat na każde żądanie i nie zależy Ci na spójności stylu wyjścia między wywołaniami.

Quality

Wybiera model z najwyższym wskaźnikiem jakości spośród dostępnych kandydatów, niezależnie od ceny. Najlepsza, gdy jakość wyjścia dominuje nad kosztem.

Balanced

Wybiera tanią opcję, która nadal spełnia próg jakości; jeśli nic nie spełnia progu, przechodzi do opcji o najwyższej jakości. Domyślna dla nowych routerów, które tworzysz samodzielnie. Działa bez strojenia per-router.

Adaptive

Kontekstowy bandyta LinUCB per-router, który uczy się z Twojego prawdziwego ruchu produkcyjnego. Waży jakość, koszt, latencję i niezawodność per żądanie, aby wybrać najlepszy model. Nowe routery zachowują się jak Balanced podczas krótkiego okresu cold-start (rozgrzewki per-model), zanim bandyta zacznie sterować wyborami — to oczekiwane, nie bug. Dwa sub-tryby:
  • Standard (enum API: linucb) — bierze pod uwagę każdy model z Dozwolonych dla każdego żądania. Najlepszy, gdy ruch jest mniej więcej jednolity i chcesz, aby router znalazł najlepszą opcję z pełnej listy.
  • Gated (enum API: gated_adaptive) — żądania są najpierw klasyfikowane jako mundane (proste) lub hard (trudne); proste żądania czerpią z mniejszej puli Mundane models, trudne z silniejszej puli Hard models, a żądania średniej trudności z pełnej listy Dozwolonych. Najlepszy, gdy Twój ruch miesza proste i złożone wywołania. Każda pula jest przecinana z Dozwolonymi modelami; puste lub niezachodzące pule po cichu wracają do pełnej listy Dozwolonych, więc żądania nie głodują. Skonfiguruj dwie pule (weak_pool i strong_pool na poziomie API — do 2000 znaków każda) w edytorze, gdy wybierzesz Gated.

Zasiany router: orcarouter/auto

Każde konto OrcaRouter jest przy rejestracji zasiane domyślnym routerem o nazwie auto — zobacz Auto Router. Możesz go używać natychmiast bez żadnej konfiguracji.