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-proinV4.1 Flashil 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.
| Modello | ID API | Rilascio | Input ($/M token) | Output ($/M token) |
|---|---|---|---|---|
| GPT‑6.1 Terra | gpt-6.1-terra | 26 ott 2026 | 1,00 (0,05 in cache) | 5,00 |
| Gemini 4 Argon | gemini-4-argon | 13 ott 2026 | 2,00 → 4,00 dal 1 dic | 10,00 → 20,00 dal 1 dic |
| Claude Haiku 5.5 | claude-haiku-5-5 | 7 ott 2026 | 0,10 → 0,50 dopo 100 k token | 0,50 → 2,50 dopo 100 k token |
| DeepSeek V4.1 Flash | deepseek-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.
