Contexte
En cherchant comment maîtriser les coûts d’appels LLM sur plusieurs projets/équipes, je suis tombé sur LiteLLM : un proxy qui expose une API compatible OpenAI devant n’importe quel fournisseur (Anthropic, DeepSeek, Bedrock, Vertex AI, modèles locaux, etc.).
Ce que j’ai appris
LiteLLM ne se contente pas d’unifier les appels, il ajoute une vraie couche FinOps : budgets par clé/équipe/projet, fallback automatique vers un modèle moins coûteux en cas d’erreur ou de dépassement de budget, et un suivi de conso par tag/utilisateur exposé dans un dashboard intégré.
Détails
Un déploiement minimal via Docker, avec un fichier de config déclarant les modèles disponibles et une stratégie de fallback :
model_list:
- model_name: claude-sonnet
litellm_params:
model: anthropic/claude-sonnet-4-5
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: deepseek-chat
litellm_params:
model: deepseek/deepseek-chat
api_key: os.environ/DEEPSEEK_API_KEY
router_settings:
fallbacks: [{"claude-sonnet": ["deepseek-chat"]}]
litellm_settings:
max_budget: 100
budget_duration: 30d
docker run -p 4000:4000 -v $(pwd)/config.yaml:/app/config.yaml \
ghcr.io/berriai/litellm:main-latest --config /app/config.yaml
Chaque appel passe ensuite par http://localhost:4000 comme s’il s’agissait de l’API OpenAI, avec une clé virtuelle par équipe pour tracer et plafonner la conso. Si Claude est indisponible ou que le budget de l’équipe est dépassé, LiteLLM bascule automatiquement sur DeepSeek, nettement moins cher, sans changer une ligne de code applicatif.
Pourquoi c’est utile
Ça permet de découpler le code applicatif du fournisseur de LLM, d’éviter les mauvaises surprises de facturation (budget + fallback automatique), et de donner de la visibilité par équipe sans devoir bricoler ça soi-même côté billing de chaque provider.
