How to route several models without rewriting the application
Context & constraints
Plusieurs fournisseurs de modèles, des besoins de coût et de latence différents selon les usages, et une sécurité qui exige un point de contrôle unique sur les appels sortants.
Options considered
- Un SDK par fournisseur dans l'application : rapide au début, insoutenable au troisième modèle
- Une gateway interne : un contrat d'API unique, du routage, des quotas, de l'observabilité
- Une passerelle du marché : fonctionnelle, mais un fournisseur de plus à faire homologuer
The decision
Gateway interne, contrat d'API unique, routage par usage
RationaleLe point de contrôle était une exigence de sécurité de toute façon ; autant en faire le point d'abstraction.
Accepted consequenceUn composant interne à maintenir, superviser et documenter.
What broke
Les différences de comportement en streaming entre fournisseurs. Le contrat commun a dû être défini sur le plus contraint, pas sur le plus riche — sinon chaque nouveau modèle devient une exception dans le code applicatif.
The outcome
- Changement de modèle sans modification applicative
- Quotas et repli automatique par usage
What I would do differently
Journaliser dès le premier jour le coût par requête et par usage. Rétrofitter cette mesure oblige à rejouer l'historique.
Extended universe
Related questions
Comment tu orchestres plusieurs services LLM derrière une seule gateway ?
Un contrat d'API unique côté application, et derrière : routage par usage, quotas, repli automatique, observabilité du coût. La difficulté réelle n'est pas le routage, ce sont les différences de comportement en streaming entre fournisseurs. Le contrat commun se définit sur le plus contraint, sinon chaque nouveau modèle devient une exception dans le code applicatif. Le bénéfice : changer de fournisseur ne touche pas l'application.
SourcesAPI Gateway LLMAlstom