Ce que fait LiteLLM
- Le SDK est une fonction Python,
completion(), qui appelle n'importe quel fournisseur au format OpenAI. Le préfixe du nom du modèle détermine le fournisseur :openai/désigne n'importe quelle API compatible OpenAI. - Le proxy est un serveur que vous hébergez vous-même, sur
http://localhost:4000par défaut. Vos applications l'appellent au format OpenAI ou Anthropic, et il ajoute clés, budgets, journalisation et solutions de repli devant vos fournisseurs.
Configurer le proxy
- Installez-le dans un environnement virtuel. LiteLLM 1.106 nécessite Python 3.10 ou une version ultérieure.
python -m venv .venvsource .venv/bin/activate # Windows: .venv\Scripts\activatepip install "litellm[proxy]"- Écrivez le fichier config.yaml. Voici celui que nous avons testé : DeepSeek V4.1 Flash via le endpoint compatible OpenAI, Claude Sonnet 5.5 via le fournisseur Anthropic de LiteLLM, et un joker qui donne accès à tous les autres modèles sous la forme
zurelay/<model ID>. Les prixmodel_infosont les prix actuels de Zurelay.
model_list: - model_name: deepseek-v4.1-flash litellm_params: model: openai/deepseek-v4.1-flash api_base: https://api.zurelay.com/v1 api_key: os.environ/ZURELAY_API_KEY use_chat_completions_api: true model_info: input_cost_per_token: 0.00000003 output_cost_per_token: 0.00000012 cache_read_input_token_cost: 0.00000000074 - model_name: claude-sonnet-5-5 litellm_params: model: anthropic/claude-sonnet-5-5 api_base: https://api.zurelay.com api_key: os.environ/ZURELAY_API_KEY model_info: input_cost_per_token: 0.00000079 output_cost_per_token: 0.00000395 cache_read_input_token_cost: 0.000000079 - model_name: zurelay/* litellm_params: model: openai/* api_base: https://api.zurelay.com/v1 api_key: os.environ/ZURELAY_API_KEY use_chat_completions_api: truelitellm_settings: use_chat_completions_url_for_anthropic_messages: true check_provider_endpoint: truegeneral_settings: master_key: os.environ/LITELLM_MASTER_KEY- Lancez-le avec votre clé Zurelay et une clé maître de votre choix. Les clients envoient la clé maître ; LiteLLM attend des clés qui commencent par
sk-.
export ZURELAY_API_KEY="zr_live_..."export LITELLM_MASTER_KEY="sk-choose-a-long-random-key"litellm --config config.yaml- Appelez-le comme n'importe quelle API compatible OpenAI, avec le
model_namede la configuration.
curl http://localhost:4000/v1/chat/completions \ -H "Authorization: Bearer $LITELLM_MASTER_KEY" \ -H "Content-Type: application/json" \ -d '{"model": "deepseek-v4.1-flash", "messages": [{"role": "user", "content": "Hello"}]}'Ou utilisez le SDK Python
Sans le proxy, passez l'URL de base et la clé à chaque appel. Pour Claude via le fournisseur anthropic/ de LiteLLM, l'URL de base est https://api.zurelay.com, sans /v1.
import osfrom litellm import completionresponse = completion( model="openai/deepseek-v4.1-flash", api_base="https://api.zurelay.com/v1", api_key=os.environ["ZURELAY_API_KEY"], messages=[{"role": "user", "content": "Hello"}],)print(response.choices[0].message.content)claude = completion( model="anthropic/claude-sonnet-5-5", api_base="https://api.zurelay.com", api_key=os.environ["ZURELAY_API_KEY"], messages=[{"role": "user", "content": "Hello"}],)Claude Code via LiteLLM
Le proxy prend aussi en charge l'API Messages d'Anthropic, ce qui permet à Claude Code de fonctionner avec n'importe quel modèle de la configuration. Pointez Claude Code vers le proxy et indiquez les modèles à utiliser :
export ANTHROPIC_BASE_URL="http://localhost:4000"export ANTHROPIC_AUTH_TOKEN="$LITELLM_MASTER_KEY"export ANTHROPIC_MODEL="deepseek-v4.1-flash"export ANTHROPIC_DEFAULT_OPUS_MODEL="claude-sonnet-5-5"export ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-5-5"export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4.1-flash"claudeSi vous n'utilisez que des modèles Claude, LiteLLM n'est pas nécessaire : Claude Code communique directement avec Zurelay, comme le montre la tarification de Claude Code. Pour un routeur avec une page web plutôt qu'un fichier YAML, consultez Claude Code Router.
Les réglages qui l'ont cassé
- Claude Code a échoué sur DeepSeek avec
Unknown request URL: POST /v1/responses. Pour les modèlesopenai/, LiteLLM convertit les requêtes Anthropic Messages en appels à l'API Responses d'OpenAI, que Zurelay ne prend pas en charge. Après un premier échec, LiteLLM a aussi mis le modèle en période de refroidissement, si bien que les requêtes suivantes ont reçu429 No deployments available for selected model.use_chat_completions_url_for_anthropic_messages: truesouslitellm_settingsles redirige vers Chat Completions à la place. - Les clients de l'API Responses échouaient de la même façon. Une requête envoyée à
/v1/responsesdu proxy, ou àlitellm.responses()dans le SDK, était transmise telle quelle en amont tant queuse_chat_completions_api: truen'était pas défini sur le modèle. - Claude avec /v1 dans l'URL de base a appelé
/v1/v1/messageset a reçu une erreur 404. Le fournisseuranthropic/ajoute/v1/messageslui-même ; les modèlesopenai/ont besoin de/v1. - Le joker listait les mauvais modèles. Avec
openai/*, le/v1/modelsdu proxy affichait la liste intégrée de LiteLLM, soit 216 noms OpenAI (gpt-3.5-turbo,babbage-002), et aucun modèle de Zurelay. Les requêtes avec de vrais identifiants de modèle fonctionnaient quand même.check_provider_endpoint: truelui a fait lister les modèles de Zurelay à la place. - Sous Windows, le proxy plantait au démarrage avec
UnicodeEncodeError: 'charmap' codec can't encode characterslorsque sa sortie était redirigée vers un fichier de log : la bannière contient des caractères absents de la page de code par défaut. Le mode UTF-8 de Python a réglé le problème :PYTHONUTF8=1dans l'environnement, oupython -X utf8.
Suivi des coûts
Le suivi des dépenses de LiteLLM calcule le prix de chaque requête à partir de sa propre liste. Pour les modèles qu'il connaît, il s'agit du tarif public du laboratoire : il a compté notre requête Claude Sonnet 5.5 au tarif d'Anthropic, soit environ 2,5 fois ce que Zurelay a facturé. Pour les modèles qu'il ne connaît pas, comme DeepSeek V4.1 Flash derrière openai/, il n'enregistre aucun coût. Les lignes model_info de la configuration ci-dessus règlent ces deux problèmes : avec elles, le coût renvoyé par LiteLLM dans son en-tête x-litellm-response-cost correspondait à notre facture.
Le coût de notre test
Via le proxy, Claude Code a écrit un petit fichier Python avec DeepSeek V4.1 Flash, puis l'a modifié avec Claude Sonnet 5.5. Les deux modèles ont utilisé correctement les outils de fichiers de Claude Code. Zurelay a facturé :
| Modèle | Tâche | Requêtes | Tokens du prompt (en cache) | Coût |
|---|---|---|---|---|
| DeepSeek V4.1 Flash | Créer hello.py | 3 | 39,725 (25,845) | $0.0005 |
| Claude Sonnet 5.5 | Modifier hello.py | 3 | 51,310 (32,523) | $0.023 |
Chaque requête embarquait les instructions et les définitions d'outils de Claude Code, soit 13 000 à 18 000 tokens, et dès la deuxième requête, l'essentiel était lu depuis le cache. L'estimation de Claude Code lui-même pour la tâche avec Claude était de $0.054, aux prix publics d'Anthropic. Les appels SDK précédents, avec une réponse courte chacun, ont coûté $0.000006 sur DeepSeek et $0.0003 sur Claude Sonnet 5.5.
À savoir
- Le proxy écoute sur toutes les interfaces réseau (
0.0.0.0) sauf si vous passez--host 127.0.0.1. Gardez la clé maître définie, sinon n'importe qui sur votre réseau pourra dépenser votre crédit. - Pour les modèles génériques (wildcard), l'ID réel suit le préfixe :
zurelay/gpt-6.1-terradans une requête devientgpt-6.1-terrachez Zurelay. - Sous Windows, installez dans un dossier au chemin court. Un environnement virtuel placé trop profondément dans un dossier temporaire a échoué avec
ModuleNotFoundError: No module named 'openai.types...'parce que certains chemins de fichiers dépassaient la limite de 260 caractères de Windows.
Les tarifs des modèles que vous placeriez derrière
Pour 1M tokens, le tarif catalogue du laboratoire et celui de Zurelay :
| Modèle | Entrée | Sortie | Sur Zurelay (entrée / sortie) |
|---|---|---|---|
| DeepSeek V4.1 Flash | $0.30 | $1.20 | $0.03 / $0.12 |
| Claude Sonnet 5.5 | $2.00 | $10.00 | $0.79 / $3.95 |
| Claude Opus 5.5 | $4.00 | $20.00 | $1.40 / $7.00 |
| GPT-6.1 Terra | $1.00 | $5.00 | $0.25 / $1.25 |
| Gemini 3.8 Flash | $0.75 | $3.75 | $0.22 / $1.10 |
| Kimi K3.1 Pro | $2.00 | $10.00 | $0.80 / $4.00 |
| GLM-5.3 | $1.40 | $4.40 | $0.38 / $1.21 |
Testé sur 3 novembre 2026 avec LiteLLM 1.106.6 sous Python 3.12 et Claude Code 2.1.317, sous Windows, avec l'API de Zurelay. La configuration rapide est décrite dans LiteLLM dans la documentation. Documentation officielle de LiteLLM : Endpoints compatibles OpenAI et configuration du proxy.