GUIDE DE MIGRATION

Des appels d'API directs à un seul point d'accès gouverné

La plupart des équipes commencent par appeler OpenAI ou Anthropic directement depuis leurs applications, avec une clé fournisseur dans l'environnement de chaque service. C'est la bonne façon de démarrer. Ce guide s'adresse au moment où cela ne suffit plus : vous placez chaque application derrière Wäg, une à la fois, sans la réécrire, et chaque étape s'annule en remettant une ligne comme avant.

Ce qui change

  • L'URL de base vers laquelle chaque application envoie ses requêtes
  • La clé qu'elle envoie : une clé de passerelle par application au lieu de la clé fournisseur
  • L'endroit où vivent les clés fournisseur : dans Wäg, pas dans chaque service

Ce qui ne change pas

  • Votre SDK — openai, langchain, llamaindex et les autres
  • Vos prompts, vos formats de requête et le traitement des réponses
  • Le streaming, l'appel d'outils, la vision et les sorties structurées
  • Les noms de modèles que votre code utilise déjà
  • Vos comptes et contrats fournisseurs

Pas sûr d'avoir déjà besoin d'une passerelle ? Cette page explique ce qu'elle fait, et quand appeler directement le fournisseur reste le meilleur choix : Qu'est-ce qu'une passerelle IA ?

LE PARCOURS

Cinq étapes, une application à la fois

1 · Lancez Wäg et ajoutez vos fournisseurs

Reliez chaque fournisseur à votre compte existant et nommez les alias d'après les noms de modèles que votre code envoie déjà. Ainsi, aucune référence de modèle ne change dans aucune application.

# waeg.yaml — aliases named after the models your code already asks for
providers:
  openai:
    provider: openai
    api_key_env: OPENAI_API_KEY
  anthropic:
    provider: anthropic
    api_key_env: ANTHROPIC_API_KEY

models:
  - name: gpt-4o
    deployments:
      - provider: openai
        model_id: gpt-4o

  - name: claude-haiku-4-5
    deployments:
      - provider: anthropic
        model_id: claude-haiku-4-5

Les clés sont résolues depuis l'environnement ou votre coffre, jamais écrites dans le fichier.

2 · Émettez une clé de passerelle par application

Chaque application reçoit sa propre clé virtuelle à la place de la clé fournisseur. C'est ce qui permet le coût par application, les limites par équipe et la révocation d'un seul service — ce qu'une clé fournisseur partagée ne permet pas.

3 · Changez l'URL de base et la clé

Wäg expose la surface compatible OpenAI — chat completions, l'API Responses (sans état), embeddings, images, audio, vidéo, OCR, modération, rerank, fichiers, lots, temps réel et modèles — avec un vrai streaming SSE, plus /v1/mcp et /v1/a2a pour les agents. Dans l'application, deux lignes changent :

  client = OpenAI(
-     api_key=os.environ["OPENAI_API_KEY"],
+     base_url=os.environ["WAEG_BASE_URL"],   # e.g. https://waeg.internal/v1
+     api_key=os.environ["WAEG_KEY"],         # this application's gateway key
  )

Les applications construites sur les SDK propres à Anthropic ou à Gemini sont prises en charge aussi : /v1/messages et /v1beta de Gemini sont des formats de requête de premier ordre, pas seulement des traductions du format OpenAI.

4 · Vérifiez, puis passez à l'application suivante

Envoyez une requête normale, une en streaming et une avec appel d'outils, puis lisez les en-têtes de réponse : x-waeg-routed-model indique quel modèle a répondu, x-waeg-route-reason pourquoi (avec le routage intelligent), x-waeg-cache si un cache a répondu. La requête est déjà dans la console avec ses tokens et son coût.

Un ordre raisonnable : d'abord les outils internes, puis les charges batch et hors ligne, puis un service de production, puis tout le reste.

5 · Retirez les clés fournisseur des applications

Quand toutes les applications passent par Wäg, faites tourner les clés fournisseur et supprimez-les des environnements applicatifs, des secrets de CI et des fichiers de configuration. Désormais, seul Wäg les détient — c'est l'essentiel du gain de sécurité, et l'étape que les équipes oublient le plus souvent.

Comment revenir en arrière

Remettez l'URL de base et la clé d'origine. Wäg ne détient aucun état dont dépendent vos applications : jusqu'à l'étape 5, c'est toute la procédure. Gardez l'étape 5 pour la fin, quand vous êtes sûr — ensuite, revenir en arrière suppose de redistribuer des clés fournisseur aux applications.

ENSUITE

Ce que vous avez gagné

  • Le coût par application, équipe et utilisateur, en temps réel — et non reconstitué à partir d'une facture.
  • Des budgets qui arrêtent la dépense avant l'appel au fournisseur, et non des tableaux de bord qui passent au rouge après coup.
  • Un repli vers un autre fournisseur ou modèle quand l'un est indisponible.
  • Des règles sur les données — masquer, caviarder, bloquer — appliquées à chaque prompt, y compris dans les applications que personne n'a touchées.
  • Une trace de chaque requête : qui, quel modèle, pourquoi, combien elle a coûté, quelles règles se sont appliquées.
  • Des modèles ajoutés ou remplacés par la configuration, sans redéployer chaque application.
LA PARTIE HONNÊTE

Ce que cela vous coûte

  • Un service de plus à exploiter. Le mode embarqué ne demande rien d'externe mais est mononœud et en mémoire, pour les essais ; la production tourne sur Postgres et OpenFGA, plus Redis dès qu'il y a plusieurs réplicas.
  • Un saut réseau de plus. Quelques millisecondes face à des appels de modèles de plusieurs centaines de millisecondes à plusieurs secondes — et un succès de cache revient plus vite que n'importe quel fournisseur.
  • Quelqu'un doit en être responsable. En général l'équipe plateforme, les mêmes personnes que pour vos autres infrastructures partagées.
FAQ

Questions fréquentes

Dois-je modifier le code applicatif ?

Deux lignes par application : l'URL de base et la clé. Si vos applications lisent les deux depuis l'environnement, même pas — vous modifiez l'environnement.

Peut-on ne migrer qu'une seule application ?

Oui. Les applications qui appellent encore directement le fournisseur continuent de fonctionner. Migrer une application à la fois est la démarche recommandée.

Le streaming et l'appel d'outils fonctionnent-ils toujours ?

Oui. Le streaming repose sur de vrais Server-Sent Events, et l'appel d'outils, la vision et les sorties structurées sont préservés sur les formats de requête OpenAI, Anthropic et Gemini.

Nos données vont-elles chez bitkaio ?

Non. Wäg tourne dans votre infrastructure et ne parle qu'aux fournisseurs que vous configurez. Aucune télémétrie, aucun appel vers l'extérieur, et la licence est un jeton signé hors ligne, sans serveur de licences.

Que faut-il pour l'exploiter ?

Pour une première application, un conteneur en mode embarqué. En production, Postgres et OpenFGA, plus Redis pour garder budgets et limites de débit cohérents entre réplicas. Un opérateur Kubernetes maison ou un chart Helm l'installe ; les bases de données restent les vôtres.

Un point d'entrée. Tous les modèles. Un contrôle total.

Commencer par l'open source

Exploitez-le dans votre propre infrastructure

Tout ce qu'il faut pour exploiter une control plane en production est sous Apache-2.0 et le restera — routage, haute disponibilité, cache, bascule, budgets, politique, MCP, tâches et observabilité. Auto-hébergé, sans compte, sans appel vers l'extérieur.

$ docker run -p 4000:4000 <registry>/waeg-gateway:<version>

Ce n'est pas un pull qui fonctionne : les images ne sont pas encore publiques. Les partenaires de conception reçoivent les informations du registre en privé.

Déployer en 5 minutes
Partenariat de conception

Façonnez-le en tant que partenaire de conception

Wäg n'est pas encore disponible publiquement. Nous travaillons avec un petit groupe d'équipes qui exploitent de l'IA multi-fournisseurs en production et prennent au sérieux la gouvernance et la souveraineté, afin de durcir la control plane sur des charges réelles.

  • Toutes les capacités Enterprise incluses, sans coût de licence
  • Migration accompagnée — nous la faisons avec vous, y compris depuis LiteLLM
  • Un lien direct avec les ingénieurs et une influence réelle sur la suite
Postuler au programme