Perché un router LLM è indispensabile nel 2026

I team di sviluppo non si affidano più a un unico fornitore di intelligenza artificiale. Secondo la survey 2025 di Stack Overflow, l’81 % degli sviluppatori ha usato GPT di OpenAI, il 43 % Claude Sonnet e il 35 % Gemini Flash. Le percentuali superano il cento perché le stesse persone combinano più modelli a seconda del compito. Un router LLM traduce queste scelte in regole codificate, evitando decisioni ad hoc durante la produzione.

Le motivazioni concrete sono:

    • Prezzo: Claude Haiku 5.5 costa 0,10 $ per milione di token in input, mentre Gemini 4 Argon arriva a 2,00 $, con un rapporto di 20 : 1.
    • Disponibilità: errori 429 o 503 non devono bloccare la coda; il fallback verso il modello successivo riduce l’incidente a una riga di log.
    • Listini dinamici: Google aumenterà i prezzi di Argon dal 1 dicembre 2026, e il router legge i listini da file di configurazione per aggiornare le tariffe automaticamente.
    • Dati personali: GDPR richiede che dati sensibili (codice fiscale, IBAN, email) non vengano inviati a fornitori non autorizzati.
    • Alias mutevoli: DeepSeek ha cambiato l’alias deepseek-v4-pro in V4.1 Flash il 14 settembre 2026, senza richiedere modifiche al codice.

Confronto dei quattro modelli supportati

Il router gestisce quattro modelli, ognuno con ID API, data di rilascio e tariffa per milione di token. I dati provengono dalle pagine ufficiali dei fornitori al 2 novembre 2026.

ModelloID APIRilascioInput ($/M token)Output ($/M token)
GPT‑6.1 Terragpt-6.1-terra26 ott 20261,00 (0,05 in cache)5,00
Gemini 4 Argongemini-4-argon13 ott 20262,00 → 4,00 dal 1 dic10,00 → 20,00 dal 1 dic
Claude Haiku 5.5claude-haiku-5-57 ott 20260,10 → 0,50 dopo 100 k token0,50 → 2,50 dopo 100 k token
DeepSeek V4.1 Flashdeepseek-flash (alias)10 set 2026 (checkpoint 1017 17 ott)listino fuori picco al 50 %listino fuori picco al 50 %

Dettagli modello per modello

GPT‑6.1 Terra è definito da OpenAI come modello veloce, adatto a grandi volumi, analisi di immagini e uso del computer. L’API fattura separatamente dagli abbonamenti ChatGPT, evitando errori di quota in fase di test. Il modello precedente, GPT‑5.6 Terra, ha il doppio delle tariffe.

Gemini 4 Argon è disponibile dal 13 ottobre 2026 via Gemini API a pagamento. Il prezzo introduttivo scade il 30 novembre, dopodiché raddoppia. La cache riduce il costo dell’input del 95 %. Google ha poi lanciato Gemini 4 Carbon, gestibile dal router aggiungendo una nuova sezione di configurazione.

Claude Haiku 5.5 è il modello “light” di Anthropic, ideale per riassunti, classificazione e routing. Riduce i costi di circa il 75 % rispetto a Haiku 4.5; il prompt caching può abbattere le spese fino al 90 %.

DeepSeek V4.1 Flash offre comprensione visiva nativa. Le tariffe fuori picco sono la metà di quelle di picco; l’alias deepseek-flash punta sempre all’ultima versione V4.1 Flash (checkpoint 1017).

Struttura del progetto e rotte supportate

Il router è costituito da circa 370 righe di codice Python, con una sola dipendenza di runtime: httpx. Le funzionalità chiave includono:

    • Quattro rotte logiche: default, cheap, bulk, eu_safe.
    • Un circuit breaker per ogni modello, che disattiva temporaneamente un provider dopo un certo numero di errori consecutivi.
    • Un registro dei costi in formato JSONL, con tetto giornaliero configurabile.
    • Un filtro GDPR che rimuove o maschera codice fiscale, IBAN ed email prima di inviare il prompt a provider non autorizzati.
    • Undici test che simulano le chiamate HTTP con MockTransport, consentendo di eseguire la suite senza chiavi API né rete.

Rotte e criteri di selezione

Le rotte vengono scelte in base a criteri di prezzo e di policy:

    • default: utilizza il modello più performante disponibile (di solito GPT‑6.1).
    • cheap: seleziona il modello con il costo di input più basso (Claude Haiku 5.5).
    • bulk: privilegia modelli con alta capacità di throughput e sconti per grandi volumi (Gemini 4 Argon).
    • eu_safe: limita i provider a quelli conformi alle normative GDPR per dati sensibili (Claude Haiku 5.5 e Gemini 4 Argon).

Prerequisiti, ambiente e installazione

Il progetto richiede Python 3.12 (minimo 3.11 per tomllib) e la libreria httpx 0.28.1. I test usano pytest 9.2.0 e non necessitano di plugin aggiuntivi.

Requisiti di sistema:

    • Sistema operativo: Linux, macOS o WSL.
    • Shell con supporto per variabili d’ambiente.
    • Quattro chiavi API, una per ogni provider (OpenAI, Google AI Studio, Anthropic, DeepSeek).

Passo 1 – Creare l’ambiente virtuale

Apri il terminale e crea una cartella di progetto:

mkdir router-llm && cd router-llm

python3 -m venv .venv

source .venv/bin/activate

Con l’ambiente attivo, installa la dipendenza unica:

pip install httpx==0.28.1

Passo 2 – Configurare le chiavi e i listini

Crea un file config.toml con la struttura seguente:

[providers]

openai = { apikey = "$OPENAIAPI_KEY", model = "gpt-6.1-terra" }

google = { apikey = "$GOOGLEAPI_KEY", model = "gemini-4-argon" }

anthropic = { apikey = "$ANTHROPICAPI_KEY", model = "claude-haiku-5-5" }

deepseek = { apikey = "$DEEPSEEKAPI_KEY", model = "deepseek-flash" }

[pricing]

gpt6_input = 1.0

gpt6_output = 5.0

gemini_input = { before = "2026-11-30", price = 2.0, after = 4.0 }

gemini_output = { before = "2026-11-30", price = 10.0, after = 20.0 }

claude_input = { tier1 = 0.10, tier2 = 0.50 }

claude_output = { tier1 = 0.50, tier2 = 2.50 }

deepseek_factor = 0.5

[limits]

dailybudgetusd = 100.0

circuitbreakerthreshold = 5

Le variabili d’ambiente devono contenere le chiavi API corrispondenti.

Implementazione del router

Il file principale router.py contiene le classi Provider, Router e CostTracker. Di seguito una panoramica dei componenti essenziali.

Provider

Ogni provider è istanziato con:

    • URL endpoint (es. https://api.openai.com/v1/chat/completions).
    • Header di autorizzazione.
    • Funzione send_prompt(prompt, model, cache) che gestisce il fallback su errori 429/503.

Router

Il router legge la configurazione, seleziona il provider in base alla rotta e al costo corrente, e applica il filtro GDPR. Il metodo route(prompt, route_name) restituisce la risposta del modello oppure lancia un’eccezione se tutte le opzioni falliscono.

CostTracker

Il tracker scrive una riga JSONL per ogni chiamata, includendo:

    • Timestamp.
    • Provider usato.
    • Numero di token in input e output.
    • Costo calcolato.
    • Eventuali errori.

Se il totale giornaliero supera dailybudgetusd, il router disattiva temporaneamente le rotte più costose.

Testing senza rete

Undici test coprono scenari di:

    • Scelta della rotta più economica.
    • Gestione del circuit breaker dopo 5 errori consecutivi.
    • Filtraggio GDPR di codice fiscale, IBAN e email.
    • Fallback da un provider all’altro in caso di 503.
    • Registrazione corretta dei costi e rispetto del tetto giornaliero.

I test usano httpx.MockTransport per simulare risposte HTTP, quindi non è necessario alcun token API reale.

Gestione dei costi in produzione

Il confronto tra Mistral Large 4, GPT‑6.1 e DeepSeek V4.1 Flash dimostra come le differenze di listino incidano significativamente sul budget di un servizio con 10 milioni di token al giorno. Con il router, è possibile impostare una soglia di 100 USD al giorno; una volta superata, il router passa automaticamente a cheap (Claude Haiku 5.5) o a un modello gratuito, mantenendo l’operatività.

Esempio di report giornaliero

{

"date": "2026-11-02",

"totalinputtokens": 12345678,

"totaloutputtokens": 8765432,

"costs": {

"gpt-6.1": 45.67,

"gemini-argon": 30.12,

"claude-haiku": 12.34,

"deepseek-flash": 5.00

},

"total_usd": 92.13,

"budget_exceeded": false

}

Questo report può essere inviato a un sistema di monitoraggio o a Slack per avvisi in tempo reale.

Conclusioni e prossimi passi

Un router LLM in Python, pur essendo costituito da poche centinaia di righe, risolve problemi di costo, disponibilità, conformità e flessibilità**. Per team che gestiscono solo quattro provider, la leggerezza del progetto è un vantaggio rispetto a librerie più ingombranti come LiteLLM.

I prossimi sviluppi possibili includono:

    • Supporto a nuovi provider (es. Cohere, Mistral) tramite file di configurazione.
    • Implementazione di un algoritmo di routing basato su LLM “meta‑prompt” per scegliere dinamicamente il modello più adatto al contesto.
    • Integrazione con sistemi di billing aziendali per chiudere il loop tra consumo reale e fatturazione.
    • Estensione del filtro GDPR con riconoscimento di altre categorie di dati sensibili (numero di carta di credito, dati biometrici).

Con la rapidità con cui i listini cambiano e gli alias dei modelli si evolvono, un router configurabile è lo strumento più efficace per mantenere il controllo tecnico e finanziario delle applicazioni LLM.