Choisir une passerelle LLM ne revient pas seulement à vérifier si LiteLLM et OpenRouter parlent une API compatible avec OpenAI. La vraie question est de savoir qui exploite la couche de routage. OpenRouter constitue le point de départ le plus simple si votre équipe ne gère pas déjà une infrastructure de passerelle en production. LiteLLM justifie sa complexité supplémentaire lorsque le réseau privé, les règles sur mesure ou un usage soutenu rendent le contrôle suffisamment précieux pour y consacrer des ressources.
Le vrai choix porte sur le mode d’exploitation, pas sur le format d’API
LiteLLM est un logiciel open source qui peut fonctionner comme SDK Python ou comme proxy auto-hébergé. OpenRouter est une API managée et un catalogue de modèles : OpenRouter exploite la passerelle, agrège l’accès aux fournisseurs et vous offre un compte unique pour utiliser les modèles.
Les deux services peuvent exposer une interface compatible avec OpenAI, mais ils répartissent les responsabilités de manière très différente :
| Point de décision | LiteLLM | OpenRouter |
|---|---|---|
| Emplacement de la passerelle | Votre VM, conteneur, VPC ou cluster Kubernetes | L’infrastructure managée d’OpenRouter |
| Comptes fournisseurs | Vous les créez et les gérez | OpenRouter gère la relation ; le BYOK est également disponible |
| Accès aux modèles | Les modèles disponibles chez les fournisseurs que vous configurez | Le catalogue actuel en paiement à l’usage liste plus de 500 modèles et plus de 80 fournisseurs (tarifs) |
| Facturation | Des factures séparées par fournisseur, avec un suivi des dépenses dans LiteLLM | Un solde de crédits et une vue d’activité OpenRouter uniques |
| Responsabilité du routage | Vous définissez le routage, les replis, les budgets et la logique personnalisée | OpenRouter gère le routage entre fournisseurs, avec des préférences au niveau de la requête |
| Principal risque opérationnel | Votre proxy, votre base de données, Redis, les mises à jour et la sécurité | La disponibilité d’OpenRouter, ses décisions de routage et le transit des données chez des tiers |
Cette différence rend aussi possible une architecture combinée : LiteLLM peut fournir la couche interne de gouvernance et de comptabilité, tandis qu’OpenRouter prend en charge l’accès à certains modèles.
Choisissez selon la contrainte qui vous pénalisera en premier
Le bon choix dépend de la première exigence sur laquelle votre équipe ne peut pas transiger.
| Si votre priorité est… | Meilleur choix par défaut | Pourquoi |
|---|---|---|
| Tester de nombreux modèles cette semaine | OpenRouter | Un compte unique et un catalogue actuel de plus de 500 modèles évitent de configurer plusieurs comptes fournisseurs. |
| Exploiter une petite API en production | OpenRouter | La passerelle est managée ; ses frais peuvent coûter moins cher que la maintenance d’un service de production supplémentaire. |
| Garder la passerelle dans votre VPC | LiteLLM | Vous contrôlez le proxy, ses journaux et ses identifiants. Le fournisseur du modèle configuré reçoit toutefois toujours la requête. |
| Imposer des clés, budgets et imputations de dépenses par équipe | LiteLLM Proxy | LiteLLM adossé à une base de données gère les clés virtuelles, les droits d’accès aux modèles, les budgets et le suivi des dépenses. |
| Accéder à un modèle sans ouvrir un nouveau compte fournisseur | OpenRouter | Le catalogue et les relations avec les fournisseurs font partie du service managé. |
| Placer une passerelle devant vLLM, SGLang ou des endpoints privés | LiteLLM | LiteLLM peut router vers des endpoints contrôlés par le client ou compatibles avec OpenAI ; OpenRouter est hébergé. |
| Mettre en place un routage Python personnalisé ou une bascule propre à l’organisation | LiteLLM | La couche de routage vous appartient : vous pouvez la configurer et l’étendre. |
| Associer gouvernance locale et large choix de modèles | Hybride | LiteLLM peut gouverner le trafic interne tandis qu’OpenRouter prend en charge certains accès en amont. |
Suivez l’argent, du prix des tokens à la facture d’ingénierie
LiteLLM et OpenRouter facturent des couches différentes. OpenRouter répercute le prix des modèles sous-jacents sans marge sur l’inférence, puis applique des frais de 5,5 % lors de l’achat de crédits. Le proxy open source de LiteLLM ne facture pas de frais de passerelle par token, mais vous devez financer l’infrastructure et les équipes nécessaires à son exploitation.
| Poste de coût | LiteLLM auto-hébergé | OpenRouter en paiement à l’usage |
|---|---|---|
| Inférence des modèles | Payée directement à chaque fournisseur configuré | Tarification du fournisseur sous-jacent répercutée |
| Frais de passerelle | Pas de frais open source par token pour la passerelle | Frais de 5,5 % à l’achat de crédits ; la page tarifaire n’indique aucun minimum de dépense |
| BYOK | Vos clés fournisseurs et leurs factures | Frais BYOK de 5 % au-delà de l’allocation mensuelle actuelle au tarif catalogue ; la page tarifaire indique $25,000 en paiement à l’usage et $200,000 pour Enterprise |
| Infrastructure de passerelle | Votre calcul, votre base de données, votre réseau, votre supervision, vos sauvegardes et vos astreintes | Gérée par OpenRouter |
| Fonctions Enterprise | LiteLLM Enterprise basé sur l’usage, sur devis uniquement | Forfait Enterprise avec tarification et options d’assistance gérées par l’équipe commerciale |
La page tarifaire d’OpenRouter constitue la source actuelle pour les conditions de facturation. Les frais sont liés à l’achat de crédits, et non à une simple majoration de 5 % du prix des tokens de chaque modèle.
Quand les frais d’OpenRouter restent le poste le moins cher
Si une équipe achète suffisamment de crédits OpenRouter pour couvrir sa facture mensuelle d’inférence :
- Avec une consommation mensuelle de $500, les frais d’achat de crédits de 5,5 % s’élèvent à $27.50.
- À $20,000, le même pourcentage représente $1,100.
- À $50,000, il atteint $2,750.
Ces montants indiquent ce que LiteLLM doit compenser après prise en compte de l’hébergement, du déploiement, des correctifs, des alertes, des sauvegardes et du temps d’ingénierie. À $500 par mois, OpenRouter demande souvent moins d’efforts opérationnels à une équipe qui n’exploite pas déjà une passerelle, sauf si le réseau privé est indispensable. À $20,000, une équipe responsable de sa plateforme a intérêt à chiffrer sérieusement LiteLLM.
Quand l’absence de frais de passerelle de LiteLLM devient réellement avantageuse
LiteLLM devient intéressant financièrement lorsque son coût fixe d’exploitation est déjà absorbé par votre équipe plateforme, ou lorsque les frais proportionnels évités dépassent le coût supplémentaire du proxy.
Le guide de démarrage rapide Docker officiel distingue un proxy simple sans base de données du déploiement avec base de données. Dans le flux Compose, PostgreSQL sert à stocker les modèles, les clés et les journaux de dépenses. Sans base de données, LiteLLM indique que les clés virtuelles, le suivi des dépenses et l’application effective des budgets ne sont pas disponibles ; un max_budget configuré ne constitue donc pas un plafond strict fiable.
Redis marque un autre seuil en production. Les prérequis Redis de LiteLLM recommandent un état Redis partagé dès que le proxy fonctionne avec plusieurs workers ou réplicas. Sans cela, les limites de débit, les budgets, les périodes de refroidissement, les entrées de cache et les observations de routage restent répartis entre les workers. Un test à worker unique coûte peu ; une passerelle de production déployée horizontalement forme un système bien plus conséquent.
Utilisez plutôt cette comparaison que le seul prix des tokens :
LiteLLM total cost = provider bills + infrastructure + operations + security ownership
OpenRouter total cost = provider inference + credit-purchase fee
Il n’existe pas de seuil universel de rentabilité. Les paramètres utiles sont les dépenses mensuelles d’inférence, l’hébergement, les heures d’ingénierie, la couverture d’astreinte et l’éventuelle prime liée à la conformité.
Comparez le plan de contrôle que vous devrez exploiter
| Domaine | LiteLLM | OpenRouter |
|---|---|---|
| Configuration des fournisseurs | Configurez les identifiants propres à chaque fournisseur, les alias de modèles et un endpoint de proxy ; le guide de démarrage rapide utilise le port 4000. | Utilisez une seule clé et un seul endpoint tout en sélectionnant les modèles du catalogue hébergé. |
| Répartition interne | Les clés virtuelles gèrent les autorisations de modèles, les budgets par clé et par équipe, les limites de débit et l’imputation des dépenses. | Un compte, des crédits, des données d’activité et des fonctions d’organisation documentées sur la page tarifaire. |
| Rapports de coûts | Les dépenses peuvent être ventilées par clé, utilisateur, équipe, modèle, fournisseur et tags personnalisés. | L’API expose les champs d’utilisation et de coût, tandis que la vue d’activité centralise l’usage du compte (référence de l’API). |
| Responsabilité | Vous possédez la base de données, le modèle d’identité, les secrets, la configuration des règles et le déploiement. | OpenRouter possède la couche de routage hébergée et l’agrégation des fournisseurs. |
LiteLLM offre davantage de contrôle à une équipe plateforme, mais ne crée pas l’accès aux fournisseurs à votre place. OpenRouter simplifie la découverte des modèles et la facturation centralisée, mais son catalogue hébergé ne remplace pas une relation directe avec les fournisseurs.
La fiabilité révèle les vraies différences entre les deux solutions
Les deux produits peuvent réessayer une requête ou basculer vers une autre cible, mais la responsabilité n’est pas la même. OpenRouter gère le pool de fournisseurs ; LiteLLM vous laisse définir ce pool et doit être exploité comme un composant à part entière de votre stack de fiabilité.
La documentation du routage des fournisseurs d’OpenRouter indique que le comportement par défaut répartit la charge entre les fournisseurs disponibles en tenant compte du prix et des pannes récentes. Vous pouvez demander un ordre de fournisseurs, autoriser ou désactiver les replis, exiger certains paramètres, filtrer selon la politique de traitement des données ou trier selon le prix, le débit ou la latence. Le guide des replis de modèles décrit une liste models ordonnée ; la facturation s’effectue selon le modèle qui traite finalement la requête.
La documentation du routage de LiteLLM décrit la sélection pondérée ou mélangée, le routage tenant compte de l’usage, le routage fondé sur la latence, le routage vers le serveur le moins chargé, le routage selon le coût et les stratégies personnalisées. LiteLLM prend également en charge les priorités de déploiement, les périodes de refroidissement, les nouvelles tentatives et les groupes de repli. Ces réglages sont plus programmables, mais leur fiabilité dépend de votre configuration, de vos contrôles de santé, de l’état partagé et de votre réponse aux incidents.
Latence des agents, cache et dérive des fournisseurs
Un saut réseau supplémentaire peut être négligeable pour une longue réponse en streaming. Il pèse davantage lorsqu’un agent enchaîne des dizaines d’appels courts au modèle, car les délais de passerelle, de réseau et de nouvelle tentative s’additionnent d’un tour à l’autre. Un proxy LiteLLM auto-hébergé peut être installé à proximité de l’application ; OpenRouter ajoute un passage par son service managé avant d’atteindre le fournisseur sélectionné. La documentation générique d’aucun des deux acteurs ne remplace un test dans votre région, avec votre modèle, votre mode de streaming et votre niveau de concurrence.
Le routage peut aussi modifier l’économie du cache. OpenRouter peut sélectionner plusieurs endpoints fournisseurs pour un même modèle, tandis que LiteLLM peut répartir les requêtes entre les déploiements configurés. Si un workflow dépend du cache de prompts côté fournisseur, un changement de route peut modifier la localité du cache et le coût en tokens. Intégrez donc le comportement du cache à vos tests de charge.
Un même identifiant de modèle ne garantit pas non plus un comportement identique. Les implémentations des fournisseurs peuvent différer par les limites de contexte, la prise en charge des appels d’outils, la latence, la quantification, la mise en cache et les paramètres propres au fournisseur. OpenRouter expose des filtres fournisseurs comme require_parameters, tandis que LiteLLM normalise les appels fournisseurs dans une interface commune. Testez les schémas d’outils et les paramètres de modèle exacts utilisés par votre agent.
Les pannes à anticiper
| Panne | Conséquence avec OpenRouter | Conséquence avec LiteLLM |
|---|---|---|
| Le fournisseur amont renvoie une erreur 429 ou 5xx | Le routage managé peut essayer un autre fournisseur ou modèle éligible, selon vos filtres | Votre politique de nouvelle tentative, de refroidissement et de repli doit être configurée et observée |
| Panne de la passerelle | Votre application dépend de la disponibilité d’OpenRouter, sauf si vous disposez d’un autre chemin | Votre équipe possède la disponibilité du proxy, l’équilibrage de charge et le retour arrière |
| État de routage obsolète ou fragmenté | OpenRouter gère le service de routage ; vous inspectez les métadonnées et les erreurs des fournisseurs | Un LiteLLM multi-worker a besoin d’un Redis partagé pour assurer la cohérence des refroidissements, des limites et de l’état de routage |
| Évolution du comportement d’un fournisseur | Un endpoint modèle/fournisseur peut se comporter différemment alors que le nom du modèle reste familier | Votre fournisseur configuré et votre adaptateur peuvent modifier le comportement ; vous êtes responsable des tests de non-régression et des mises à jour |
| État du budget indisponible | Les crédits du compte OpenRouter restent la limite de facturation | Un LiteLLM sans base de données ne peut pas appliquer de manière fiable les contrôles de budget global documentés |
OpenRouter transforme les incidents d’infrastructure en dépendance vis-à-vis d’un fournisseur. LiteLLM les transforme en incidents que votre équipe plateforme peut inspecter et corriger.
Observabilité et confidentialité ne s’arrêtent pas au même endroit
« Auto-hébergé » et « privé » ne sont pas synonymes, pas plus que « managé » ne signifie « enregistre chaque prompt ». La bonne question consiste à déterminer quelle couche stocke le contenu, laquelle conserve les métadonnées et quels fournisseurs reçoivent la requête.
| Frontière | LiteLLM | OpenRouter |
|---|---|---|
| Transit par la passerelle | Contrôlé par le client en mode auto-hébergé | OpenRouter constitue un saut hébergé supplémentaire |
| Enregistrement des prompts/réponses | Contrôlé par votre configuration et vos callbacks | L’enregistrement du contenu est désactivé par défaut ; un enregistrement volontaire est disponible |
| Métadonnées opérationnelles | Les journaux de dépenses et les métadonnées de requête peuvent être stockés dans votre base de données ou envoyés vers des outils d’observabilité | OpenRouter conserve des métadonnées comme les horodatages, le modèle, le nombre de tokens et la latence (collecte des données) |
| Politique du fournisseur | Vous sélectionnez les fournisseurs et devez examiner leurs conditions | OpenRouter expose des filtres de politique comme data_collection et ZDR, mais les politiques varient selon les fournisseurs |
| Traitement régional | Vous choisissez l’emplacement du déploiement ; le traitement ultérieur par les fournisseurs reste à prendre en compte | Le routage régional UE/États-Unis est documenté pour les clients Enterprise (journaux des fournisseurs) |
La documentation Zero Data Retention d’OpenRouter indique que le ZDR peut être imposé à l’échelle du compte, par groupe de modèles, garde-fou ou requête. Elle distingue les endpoints sans conservation des fournisseurs qui n’entraînent pas leurs modèles mais peuvent conserver temporairement les données. Le ZDR s’applique au routage d’inférence ; les outils et plugins activés doivent faire l’objet d’un examen séparé.
LiteLLM vous donne davantage de contrôle sur le réseau, la base de données, l’authentification et les journaux de la passerelle, mais cette responsabilité vous revient entièrement. Sécurisez le proxy, appliquez les correctifs, limitez les routes d’administration, protégez les clés fournisseurs et vérifiez les conditions de conservation et d’entraînement de chaque fournisseur amont.
L’architecture hybride est souvent la réponse la plus pragmatique
Placez LiteLLM devant OpenRouter lorsque vous avez besoin d’un endpoint interne stable et de règles de gouvernance, sans vouloir ouvrir un compte direct pour chaque modèle ou fournisseur. Acheminez directement les données sensibles ou prévisibles vers des fournisseurs approuvés, et envoyez les requêtes exploratoires ou dépendantes du catalogue via OpenRouter.
Voici un exemple de configuration simplifié :
model_list:
- model_name: direct-claude
litellm_params:
model: anthropic/claude-sonnet-latest
api_key: os.environ/ANTHROPIC_API_KEY
- model_name: catalogue-model
litellm_params:
model: openrouter/<provider>/<model>
api_base: https://openrouter.ai/api/v1
api_key: os.environ/OPENROUTER_API_KEY
LiteLLM devient ainsi l’endroit où appliquer les clés internes, les budgets, les tags et les journaux. Cela ne supprime pas les frais d’OpenRouter, le transit hébergé ni la frontière liée aux politiques des fournisseurs pour les requêtes qui passent par cette route. Vous ajoutez également un saut réseau et un domaine de panne supplémentaire : ne faites donc pas transiter automatiquement toutes les requêtes par les deux couches.
Une répartition cohérente consiste à utiliser :
- Des routes directes vers les fournisseurs pour les données sensibles, les modèles de production stables ou les contrats fournisseurs négociés.
- Des routes OpenRouter pour découvrir des modèles, accéder à des fournisseurs moins courants et profiter d’une bascule managée entre fournisseurs.
- Les contrôles LiteLLM pour les clés applicatives, les équipes, les budgets et l’imputation interne des coûts.
- Des tableaux de bord et des alertes distincts pour le trafic direct et le trafic OpenRouter.
Migration : ce qui change, et ce qui ne change pas
Faire passer un client compatible avec OpenAI d’une passerelle à l’autre peut être rapide. En revanche, migrer une charge de production ne se résume pas à modifier l’URL de base.
from openai import OpenAI
import os
client = OpenAI(
base_url=os.environ["LLM_BASE_URL"],
api_key=os.environ["LLM_API_KEY"],
)
OpenRouter utilise généralement https://openrouter.ai/api/v1 (référence de l’API) ; un proxy LiteLLM expose souvent un endpoint privé comme http://localhost:4000 (guide de démarrage rapide du proxy). Les identifiants de modèles, les préfixes fournisseurs, l’authentification et les paramètres facultatifs peuvent néanmoins différer.
Avant de basculer le trafic de production, testez :
- Le streaming et le comportement des timeouts.
- Les appels d’outils avec vos schémas JSON exacts.
- Les sorties structurées et la gestion stricte du JSON.
- Le raisonnement, la mise en cache et les paramètres propres aux fournisseurs.
- Le comportement de repli lorsque le modèle principal renvoie une erreur 429, 5xx ou de validation.
- L’imputation des coûts, car l’événement de facturation peut se produire à une couche différente de celle de la requête applicative.
La compatibilité d’API vous permet de réussir la première intégration. Elle ne garantit pas des sorties, une latence, une sélection de fournisseur ou une sémantique de facturation identiques.
Les questions que les équipes se posent avant de trancher
Peut-on utiliser LiteLLM et OpenRouter ensemble ?
Oui. LiteLLM peut utiliser OpenRouter comme route amont : LiteLLM gère alors les clés internes, les budgets, les journaux ou les règles, tandis qu’OpenRouter fournit l’accès à certains modèles et le routage entre fournisseurs. Le chemin combiné ajoute un saut et conserve les frais d’OpenRouter ainsi que sa frontière de données hébergée pour ce trafic.
Quelle solution coûte le moins cher pour une API en production ?
OpenRouter demande souvent moins d’efforts opérationnels à une petite équipe qui n’exploite pas déjà une infrastructure de passerelle. LiteLLM peut devenir moins cher à un niveau d’usage élevé si votre équipe gère déjà l’infrastructure nécessaire et souhaite éviter les frais proportionnels ; comparez le coût total, pas uniquement celui des tokens.
LiteLLM donne-t-il accès à l’intégralité du catalogue OpenRouter ?
Pas à lui seul. LiteLLM documente la prise en charge de plus de 100 LLM et d’un large éventail de fournisseurs dans son guide de démarrage rapide du proxy, mais il n’accède qu’aux fournisseurs et aux identifiants que vous configurez. Ajouter OpenRouter comme source amont peut élargir le catalogue accessible, mais les requêtes suivent alors la disponibilité des modèles et des fournisseurs d’OpenRouter.
Quelle solution convient le mieux à la confidentialité et à la conformité ?
LiteLLM auto-hébergé vous donne davantage de contrôle sur le déploiement de la passerelle, les journaux, les identifiants et la frontière réseau. OpenRouter propose des contrôles d’enregistrement du contenu, des filtres de politique fournisseur, un routage ZDR et des options régionales UE/États-Unis dans son offre Enterprise, mais reste présent dans le chemin de la requête ; vérifiez le fournisseur exact et l’exigence contractuelle concernée avant de choisir.
Choisissez la frontière que vous pouvez réellement exploiter : comparez les frais proportionnels à vos coûts réels de fonctionnement d’une passerelle, classez les requêtes autorisées à transiter par un intermédiaire hébergé et testez les pannes ainsi que le comportement de routage et d’appels d’outils nécessaires à votre application. Si vous ne pouvez pas prendre en charge la base de données, Redis, les mises à jour et les astreintes de LiteLLM, OpenRouter constitue le choix par défaut le plus réaliste. Si votre plateforme possède déjà ces capacités, LiteLLM ou une architecture hybride peuvent vous rendre le contrôle et réduire les frais récurrents de passerelle.
Pour découvrir davantage d’alternatives à OpenRouter, consultez OpenRouter alternatives ; ce comparatif reste volontairement plus ciblé et se concentre sur le choix du mode d’exploitation de LiteLLM.