MIGRERINGSGUIDE

Från direkta API-anrop till en styrd endpoint

De flesta team börjar med att anropa OpenAI eller Anthropic direkt från sina applikationer, med en leverantörsnyckel i varje tjänsts miljö. Det är rätt sätt att börja. Den här guiden är till för när det slutar räcka: ni flyttar en applikation i taget bakom Wäg, utan att skriva om den, och varje steg går att ångra genom att ändra tillbaka en rad.

Vad som förändras

  • Bas-URL:en varje applikation skickar requests till
  • Nyckeln den skickar: en gateway-nyckel per applikation i stället för leverantörsnyckeln
  • Var leverantörsnycklarna bor: i Wäg, inte i varje tjänst

Vad som inte gör det

  • Ert SDK — openai, langchain, llamaindex och resten
  • Era prompter, request-former och svarshantering
  • Streaming, verktygsanrop, vision och strukturerad utdata
  • Modellnamnen er kod redan använder
  • Era leverantörskonton och avtal

Osäker på om ni behöver en gateway än? Den här sidan förklarar vad en gateway gör, och när det fortfarande är bättre att anropa leverantören direkt: Vad är en AI-gateway?

VÄGEN

Fem steg, en applikation i taget

1 · Kör Wäg och lägg till era leverantörer

Ge varje leverantör ert befintliga konto och döp aliasen efter de modellnamn er kod redan skickar. Då behöver ingen modellreferens i någon applikation ändras.

# 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

Nycklar hämtas från miljön eller ert valv och skrivs aldrig in i filen.

2 · Utfärda en gateway-nyckel per applikation

Varje applikation får en egen virtuell nyckel i stället för leverantörsnyckeln. Det är vad som gör kostnad per applikation, gränser per team och återkallning av en enskild tjänst möjliga — inget av det klarar en delad leverantörsnyckel.

3 · Byt bas-URL och nyckel

Wäg exponerar den OpenAI-kompatibla ytan — chat completions, Responses API (tillståndslös), embeddings, bilder, ljud, video, OCR, moderering, rerank, filer, batchar, realtid och modeller — med äkta SSE-streaming, plus /v1/mcp och /v1/a2a för agenter. I applikationen ändras två rader:

  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 byggda på Anthropics eller Geminis egna SDK:er stöds också: /v1/messages och Geminis /v1beta är förstklassiga request-former, inte bara översättningar av OpenAI-formen.

4 · Kontrollera, flytta sedan nästa applikation

Skicka en vanlig request, en streaming-request och en med verktygsanrop, och läs svarshuvudena: x-waeg-routed-model anger vilken modell som svarade, x-waeg-route-reason varför (med intelligent routing), och x-waeg-cache om en cache besvarade den. Requesten finns redan i konsolen med sina tokens och sin kostnad.

En rimlig ordning: interna verktyg först, sedan batch- och offlinearbetslaster, sedan en produktionstjänst, sedan resten.

5 · Ta bort leverantörsnycklarna ur applikationerna

När varje applikation går via Wäg roterar ni leverantörsnycklarna och tar bort dem ur applikationsmiljöer, CI-hemligheter och konfigurationsfiler. Därefter är det bara Wäg som håller dem — vilket är det mesta av säkerhetsvinsten, och steget som team oftast glömmer.

Så rullar ni tillbaka

Ändra tillbaka bas-URL:en och nyckeln. Wäg håller inget tillstånd som era applikationer är beroende av, så fram till steg 5 är det hela proceduren. Gör steg 5 sist, när ni är säkra — efter det innebär en tillbakarullning att ni åter måste dela ut leverantörsnycklar till applikationerna.

EFTERÅT

Vad ni vann

  • Kostnad per applikation, team och användare medan den uppstår — inte rekonstruerad från en faktura.
  • Budgetar som stoppar utgifterna innan leverantören anropas, inte dashboards som blir röda efteråt.
  • Failover till en annan leverantör eller modell när en ligger nere.
  • Dataregler — maskera, redigera, blockera — som gäller varje prompt, även i applikationer som ingen rörde.
  • En post över varje request: vem, vilken modell, varför, vad den kostade, vilka regler som gällde.
  • Modeller som läggs till eller byts i konfigurationen, utan att varje applikation driftsätts på nytt.
DEN ÄRLIGA DELEN

Vad det kostar er

  • Ännu en tjänst att drifta. Inbäddat läge behöver ingenting externt men körs på en nod och i minnet, för tester; produktion körs på Postgres och OpenFGA, plus Redis när det finns flera repliker.
  • Ännu ett nätverkshopp. Några millisekunder mot modellanrop på hundratals millisekunder till sekunder — och cacheträffar kommer tillbaka snabbare än från någon leverantör.
  • Någon måste äga den. Oftast plattformsteamet, samma personer som äger er övriga delade infrastruktur.
FAQ

Frågor som brukar dyka upp

Måste jag ändra applikationskoden?

Två rader per applikation: bas-URL:en och nyckeln. Om dina applikationer läser båda från miljön behövs inte ens det — du ändrar miljön.

Kan vi flytta bara en applikation?

Ja. Applikationer som fortfarande anropar leverantören direkt fortsätter fungera. Att flytta en i taget är den rekommenderade vägen.

Fungerar streaming och verktygsanrop fortfarande?

Ja. Streaming är äkta server-sent events, och verktygsanrop, vision och strukturerad utdata bevaras över request-formerna från OpenAI, Anthropic och Gemini.

Går vår data till bitkaio?

Nej. Wäg körs i er infrastruktur och pratar bara med de leverantörer ni konfigurerar. Det finns ingen telemetri och ingen phone-home, och licensen är en signerad offlinetoken utan licensserver.

Vad behöver vi för att köra den?

För en första applikation, en container i inbäddat läge. För produktion, Postgres och OpenFGA, plus Redis för att hålla budgetar och frekvensgränser konsekventa mellan repliker. En egen Kubernetes-operator eller ett Helm-chart installerar det; databaserna förblir era.

En endpoint. Alla modeller. Full kontroll.

Börja med open source

Kör den i er egen infrastruktur

Allt ni behöver för att köra en control plane i produktion är Apache-2.0 och förblir det — routing, HA, cache, failover, budgetar, policy, MCP, jobb och observability. Self-hosted, inget konto, ingen phone-home.

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

Ingen fungerande pull: avbilderna är inte publika än. Designpartner får registeruppgifterna privat.

Driftsätt på 5 minuter
Designpartnerskap

Forma den som design partner

Wäg är ännu inte publikt släppt. Vi arbetar med en liten grupp team som kör AI från flera leverantörer i produktion och tar styrning och suveränitet på allvar, för att härda control plane:n mot verkliga arbetslaster.

  • Alla Enterprise-funktioner ingår, utan licenskostnad
  • Praktisk migrering — vi gör den tillsammans med er, även från LiteLLM
  • En direktlinje till ingenjörerna som bygger den, och verkligt inflytande över vad som kommer härnäst
Ansök till programmet