MIGRERINGSGUIDE

Fra direkte API-kald til ét styret endpoint

De fleste teams starter med at kalde OpenAI eller Anthropic direkte fra deres applikationer, med en provider-nøgle i hver services miljø. Det er den rigtige måde at starte på. Denne guide er til, når det holder op med at række: du flytter én applikation ad gangen bag Wäg, uden at omskrive den, og hvert trin kan fortrydes ved at ændre én linje tilbage.

Hvad der ændrer sig

  • Den base-URL, hver applikation sender requests til
  • Den nøgle, den sender: en gateway-nøgle pr. applikation i stedet for provider-nøglen
  • Hvor provider-nøglerne bor: i Wäg, ikke i hver service

Hvad der ikke gør

  • Dit SDK — openai, langchain, llamaindex og resten
  • Dine prompts, request-formater og håndtering af svar
  • Streaming, tool calling, vision og struktureret output
  • De modelnavne, din kode allerede bruger
  • Dine provider-konti og aftaler

Er du ikke sikker på, at du har brug for en gateway endnu? Her forklares det, hvad en gateway gør, og hvornår det stadig er bedre at kalde provideren direkte: Hvad er en AI gateway?

VEJEN

Fem trin, én applikation ad gangen

1 · Kør Wäg og tilføj dine providers

Giv hver provider din eksisterende konto, og navngiv aliasserne efter de modelnavne, din kode allerede sender. Så skal ingen modelreference i nogen applikation ændres.

# 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

Nøgler opløses fra miljøet eller din vault og skrives aldrig ind i filen.

2 · Udsted én gateway-nøgle pr. applikation

Hver applikation får sin egen virtuelle nøgle i stedet for provider-nøglen. Det er det, der gør omkostning pr. applikation, grænser pr. team og tilbagekaldelse af en enkelt service mulig — intet af det kan en fælles provider-nøgle.

3 · Skift base-URL og nøgle

Wäg leverer den OpenAI-kompatible flade — chat completions, Responses API (stateless), embeddings, billeder, lyd, video, OCR, moderations, rerank, filer, batches, realtime og modeller — med ægte SSE-streaming plus /v1/mcp og /v1/a2a til agenter. I applikationen ændres to linjer:

  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
  )

Applikationer bygget på Anthropics eller Geminis egne SDK'er understøttes også: /v1/messages og Geminis /v1beta er førsteklasses request-formater, ikke kun oversættelser af OpenAI-formatet.

4 · Tjek, og flyt så den næste applikation

Send én almindelig, én streaming- og én tool-calling-request, og læs response-headerne: x-waeg-routed-model siger, hvilken model der leverede svaret, x-waeg-route-reason hvorfor (med intelligent routing), og x-waeg-cache om en cache svarede. Requesten ligger allerede i konsollen med sine tokens og sin omkostning.

En fornuftig rækkefølge: interne værktøjer først, så batch- og offline-workloads, så én produktionsservice, så resten.

5 · Tag provider-nøglerne ud af applikationerne

Når alle applikationer går gennem Wäg, så roter provider-nøglerne og slet dem fra applikationsmiljøer, CI-secrets og konfigurationsfiler. Derefter er det kun Wäg, der har dem — det er det meste af sikkerhedsgevinsten, og det trin, teams oftest glemmer.

Sådan ruller du tilbage

Sæt base-URL'en og nøglen tilbage. Wäg holder ingen tilstand, som dine applikationer afhænger af, så frem til trin 5 er det hele proceduren. Tag trin 5 til sidst, når du er sikker — derefter betyder tilbagerulning, at applikationerne igen skal have udstedt provider-nøgler.

BAGEFTER

Hvad du har vundet

  • Omkostning pr. applikation, team og bruger, mens den opstår — ikke rekonstrueret fra en faktura.
  • Budgetter, der stopper forbruget, før provideren kaldes, ikke dashboards, der bliver røde bagefter.
  • Failover til en anden provider eller model, når én er nede.
  • Dataregler — maskér, redigér ud, bloker — på hver prompt, også i applikationer, ingen har rørt.
  • En registrering af hver request: hvem, hvilken model, hvorfor, hvad den kostede, hvilke regler der blev anvendt.
  • Modeller, der tilføjes eller skiftes i konfigurationen, uden at hver applikation skal deployes.
DEN ÆRLIGE DEL

Hvad det koster dig

  • Én service mere at drive. Embedded-tilstand kræver intet eksternt, men er single-node og i hukommelsen, til afprøvning; produktion kører på Postgres og OpenFGA, plus Redis, så snart der er flere replicas.
  • Ét netværkshop mere. Et par millisekunder mod modelkald på hundredvis af millisekunder til sekunder — og cache-hits kommer hurtigere tilbage end noget fra en provider.
  • Nogen skal eje den. Som regel platformteamet, de samme folk, der ejer din øvrige fælles infrastruktur.
FAQ

Spørgsmål der går igen

Skal jeg ændre applikationskode?

To linjer pr. applikation: base-URL'en og nøglen. Hvis dine applikationer læser begge fra miljøet, ikke engang det — så ændrer du miljøet.

Kan vi flytte kun én applikation?

Ja. Applikationer, der stadig kalder provideren direkte, fortsætter med at virke. At flytte én ad gangen er den anbefalede vej.

Virker streaming og tool calling stadig?

Ja. Streaming er ægte server-sent events, og tool calling, vision og struktureret output bevares på tværs af OpenAI-, Anthropic- og Gemini-formater.

Går vores data til bitkaio?

Nej. Wäg kører i din infrastruktur og taler kun med de providers, du konfigurerer. Der er ingen telemetri og ingen phone-home, og licensen er et signeret offline-token uden licensserver.

Hvad skal vi bruge for at køre den?

Til den første applikation én container i embedded-tilstand. Til produktion Postgres og OpenFGA, plus Redis til at holde budgetter og rate limits konsistente på tværs af replicas. En førstepartsoperator til Kubernetes eller et Helm-chart installerer det; databaserne forbliver dine.

Ét endpoint. Alle modeller. Fuld kontrol.

Start med open source

Kør det i jeres egen infrastruktur

Alt, hvad I skal bruge for at drive en control plane i produktion, er Apache-2.0 og bliver ved med at være det — routing, HA, caching, failover, budgetter, policy, MCP, jobs og observability. Self-hosted, ingen konto, ingen phone-home.

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

Endnu ikke et pull, der virker: images er ikke offentlige endnu. Designpartnere får registry-oplysningerne direkte.

Deploy på 5 minutter
Designpartnerskab

Vær med til at forme det som designpartner

Wäg er endnu ikke offentligt tilgængelig. Vi arbejder sammen med en lille gruppe teams, der kører multi-provider AI i produktion og tager governance og suverænitet alvorligt, for at hærde vores control plane på reelle workloads.

  • Alle Enterprise-funktioner inkluderet, uden licensomkostning
  • Praktisk migrering — vi gør det sammen med jer, også fra LiteLLM
  • Direkte adgang til de engineers, der bygger det, og reel indflydelse på, hvad der kommer næst
Ansøg om at deltage