MIGRATIEGIDS

Van directe API-calls naar één bestuurd endpoint

De meeste teams beginnen met het rechtstreeks aanroepen van OpenAI of Anthropic vanuit hun applicaties, met een providerkey in de omgeving van elke service. Dat is de juiste manier om te beginnen. Deze gids is voor het moment dat dat niet meer volstaat: u verplaatst elke applicatie één voor één achter Wäg, zonder haar te herschrijven, en elke stap is ongedaan te maken door één regel terug te zetten.

Wat verandert

  • De base-URL waar elke applicatie haar requests naartoe stuurt
  • De key die ze meestuurt: een gatewaykey per applicatie in plaats van de providerkey
  • Waar de providerkeys staan: in Wäg, niet in elke service

Wat niet

  • Uw SDK — openai, langchain, llamaindex en de rest
  • Uw prompts, requestvormen en responseafhandeling
  • Streaming, tool calling, vision en gestructureerde output
  • De modelnamen die uw code al gebruikt
  • Uw provideraccounts en -contracten

Weet u nog niet zeker of u al een gateway nodig hebt? Dit legt uit wat een gateway doet, en wanneer rechtstreeks de provider aanroepen nog steeds de betere keuze is: Wat is een AI gateway?

HET PAD

Vijf stappen, één applicatie tegelijk

1 · Draai Wäg en voeg uw providers toe

Koppel elke provider aan uw bestaande account en noem de aliassen naar de modelnamen die uw code al verstuurt. Dan hoeft geen enkele modelverwijzing in een applicatie te veranderen.

# 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

Keys worden opgehaald uit de omgeving of uw vault en nooit in het bestand geschreven.

2 · Geef elke applicatie één gatewaykey

Elke applicatie krijgt een eigen virtuele key in plaats van de providerkey. Dat maakt kosten per applicatie, limieten per team en het intrekken van één enkele service mogelijk — niets daarvan kan met een gedeelde providerkey.

3 · Wijzig de base-URL en de key

Wäg biedt het OpenAI-compatibele oppervlak — chat completions, de Responses API (stateless), embeddings, images, audio, video, OCR, moderations, rerank, files, batches, realtime en models — met echte SSE-streaming, plus /v1/mcp en /v1/a2a voor agents. In de applicatie veranderen twee regels:

  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
  )

Applicaties op basis van de eigen SDK's van Anthropic of Gemini worden ook ondersteund: /v1/messages en /v1beta van Gemini zijn volwaardige requestvormen, niet alleen vertalingen van de OpenAI-vorm.

4 · Controleer, en verplaats dan de volgende applicatie

Stuur één gewoon request, één streaming-request en één tool-calling-request, en lees de responseheaders: x-waeg-routed-model meldt welk model het afhandelde, x-waeg-route-reason waarom (bij intelligente routing), en x-waeg-cache of een cache antwoordde. Het request staat al in de console, met tokens en kosten.

Een verstandige volgorde: eerst interne tools, dan batch- en offline-workloads, dan één productieservice, dan de rest.

5 · Haal de providerkeys uit de applicaties

Als elke applicatie via Wäg loopt, roteert u de providerkeys en verwijdert u ze uit applicatieomgevingen, CI-secrets en configbestanden. Vanaf dan heeft alleen Wäg ze — wat het grootste deel van de beveiligingswinst is, en de stap die teams het vaakst vergeten.

Hoe u terugrolt

Zet de base-URL en de key terug. Wäg houdt geen status vast waar uw applicaties van afhangen, dus tot en met stap 5 is dat de hele procedure. Doe stap 5 als laatste, wanneer u zeker bent — daarna betekent terugrollen dat u opnieuw providerkeys aan applicaties uitgeeft.

DAARNA

Wat u erbij hebt gewonnen

  • Kosten per applicatie, team en gebruiker, zodra ze ontstaan — niet achteraf gereconstrueerd uit een factuur.
  • Budgetten die uitgaven stoppen voordat de provider wordt aangeroepen, geen dashboards die achteraf rood kleuren.
  • Failover naar een andere provider of een ander model als er een uitvalt.
  • Dataregels — maskeren, redigeren, blokkeren — op elke prompt, ook in applicaties die niemand heeft aangeraakt.
  • Een vastlegging van elk request: wie, welk model, waarom, wat het kostte, welke regels golden.
  • Modellen die u in de configuratie toevoegt of wisselt, zonder elke applicatie opnieuw te deployen.
HET EERLIJKE DEEL

Wat het u kost

  • Eén service extra om te draaien. Embedded mode heeft niets externs nodig, maar is single-node en in-memory, voor proeven; productie draait op Postgres en OpenFGA, plus Redis zodra er meerdere replica's zijn.
  • Eén netwerk-hop extra. Een paar milliseconden naast modelcalls van honderden milliseconden tot seconden — en cachetreffers komen sneller terug dan van welke provider ook.
  • Iemand moet er eigenaar van zijn. Meestal het platformteam, dezelfde mensen die uw andere gedeelde infrastructuur beheren.
FAQ

Vragen die opkomen

Moet ik applicatiecode aanpassen?

Twee regels per applicatie: de base-URL en de key. Lezen uw applicaties beide uit de omgeving, dan zelfs dat niet — dan past u de omgeving aan.

Kunnen we maar één applicatie verplaatsen?

Ja. Applicaties die de provider nog rechtstreeks aanroepen, blijven werken. Eén voor één verplaatsen is het aanbevolen pad.

Werken streaming en tool calling nog?

Ja. Streaming is echte server-sent events, en tool calling, vision en gestructureerde output blijven behouden over de OpenAI-, Anthropic- en Gemini-requestvormen.

Gaat onze data naar bitkaio?

Nee. Wäg draait in uw eigen infrastructuur en praat alleen met de providers die u configureert. Er is geen telemetrie en geen phone-home, en de licentie is een ondertekend offline token zonder licentieserver.

Wat hebben we nodig om het te draaien?

Voor een eerste applicatie één container in embedded mode. Voor productie Postgres en OpenFGA, plus Redis om budgetten en rate limits consistent te houden over replica's. Een first-party Kubernetes-operator of een Helm-chart installeert het; de databases blijven van u.

Één endpoint. Elk model. Volledige controle.

Begin met de open source

Draai het in uw eigen infrastructuur

Alles wat u nodig hebt om een control plane in productie te draaien staat onder Apache-2.0 en blijft dat ook — routing, HA, caching, failover, budgetten, policy, MCP, jobs en observability. Self-hosted, zonder account, zonder phone-home.

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

Geen werkende pull: de images zijn nog niet openbaar. Ontwerppartners krijgen de registrygegevens vertrouwelijk.

Implementeer in 5 minuten
Ontwerppartnerschap

Bepaal mee als design partner

Wäg is nog niet publiek beschikbaar. We werken met een kleine groep teams die multi-provider AI in productie draaien en governance en soevereiniteit serieus nemen, om de control plane te harden op echte workloads.

  • Alle Enterprise-functies inbegrepen, zonder licentiekosten
  • Migratie die we samen met u doen — ook vanaf LiteLLM
  • Een directe lijn naar de engineers die het bouwen, en echte invloed op wat er als volgende komt
Aanmelden voor het programma