Vai al contenuto principale
OrcaRouter ti permette di salvare una strategia di routing come router con nome. Chiamalo dal tuo codice come orcarouter/{name} e OrcaRouter lo risolve a un modello concreto al momento della richiesta, in base alle regole che hai configurato. Questo è utile quando vuoi:
  • Cambiare il comportamento di routing senza ridistribuire l’app (cambia il router nella dashboard; il tuo codice rimane lo stesso).
  • Lasciare che team o servizi diversi scelgano la propria policy di routing indipendentemente dall’applicazione che chiama l’API.
  • Fare riferimento a una logica di routing troppo complessa per essere inline in extra_body.

Usare un router

response = client.chat.completions.create(
    model="orcarouter/production-chat",
    messages=[...],
)
Per scoprire a quale modello concreto un router si è risolto, leggi gli header di risposta X-Orca-Router e X-Orca-Resolved-Model — vedi Header di risposta. Il campo model nel corpo della risposta stesso riflette ciò che l’upstream ha restituito (spesso il nome upstream puro, es. gpt-4o-mini-2024-07-18).

Creare un router

I router vengono creati nella dashboard sotto Routing. Ogni router ha:
  • Nome — il {name} in orcarouter/{name}. Deve essere unico all’interno del tuo workspace; lettere minuscole, cifre, _ e - (1-50 caratteri). Il nome orcarouter è riservato.
  • Modelli consentiti — uno o più pattern glob (separati da virgole o da nuove righe, case-insensitive) che limitano quali modelli questo router può scegliere. Esempi: openai/* o openai/*, anthropic/claude-haiku-*. Vuoto corrisponde a ogni modello a cui il tuo account ha accesso.
  • Strategia — come scegliere tra i modelli corrispondenti. Vedi Strategie sotto.
  • Mundane models / Hard models — liste di modelli aggiuntive usate solo dalla strategia Adaptive · Gated. Vedi Adaptive sotto.
  • Modello predefinito — un modello di rete di sicurezza usato se il pattern non risolve nulla.
  • Abilitato — disabilita il router senza eliminarlo.

Strategie

L’editor espone quattro schede di strategia. Adaptive raggruppa due sotto-modalità di backend, per un totale di cinque valori enum che puoi persistere tramite l’API.

Cheapest

Sceglie il modello con il prezzo per token più basso tra i candidati attivi. Predefinito per il router seed orcarouter/auto. Migliore quando vuoi il modello di chat attivo più economico ad ogni richiesta e non ti importa della coerenza dello stile di output tra le chiamate.

Quality

Sceglie il modello con il punteggio di qualità più alto tra i candidati attivi, indipendentemente dal prezzo. Migliore quando la qualità dell’output domina sul costo.

Balanced

Sceglie un’opzione a basso costo che soddisfi comunque una soglia di qualità; se nulla soddisfa la soglia, ricade sull’opzione di qualità più alta. Predefinito per i nuovi router che crei tu stesso. Funziona senza tuning per router.

Adaptive

Un bandit contestuale LinUCB per router che apprende dal tuo traffico di produzione reale. Pesa qualità, costo, latenza e affidabilità per richiesta per scegliere il modello migliore. I nuovi router si comportano come Balanced durante un breve periodo di cold-start (un warm-up per modello) prima che il bandit inizi a guidare le scelte — questo è atteso, non un bug. Due sotto-modalità:
  • Standard (enum API: linucb) — considera ogni modello consentito per ogni richiesta. Migliore quando il traffico è circa uniforme e vuoi che il router trovi l’opzione migliore nell’intera lista.
  • Gated (enum API: gated_adaptive) — le richieste vengono prima classificate come ordinarie o difficili; le richieste ordinarie attingono da un pool più piccolo di Mundane models, le richieste difficili da un pool più potente di Hard models e le richieste di media difficoltà dall’intera lista dei modelli consentiti. Migliore quando il tuo traffico mescola chiamate semplici e complesse. Ogni pool è intersecato con i modelli consentiti; pool vuoti o non sovrapposti ricadono silenziosamente sull’intera lista dei modelli consentiti, in modo che le richieste non vengano mai lasciate senza modello. Configura i due pool (weak_pool e strong_pool a livello API — fino a 2000 caratteri ciascuno) nell’editor quando scegli Gated.

Router seed: orcarouter/auto

Ogni account OrcaRouter viene seedato con un router predefinito chiamato auto alla registrazione — vedi Auto router. Puoi usarlo immediatamente senza alcuna configurazione.