Snilld

Nu kan LangChain og OpenAI SDK køre mod SageMaker med kun et URL-ændring

AWS gør SageMaker AI-endpoints OpenAI-kompatible med en ny /openai/v1-sti, streaming og tidsbegrænsede bearer-tokens. For mange teams betyder det i praksis, at I kan pege jeres eksisterende OpenAI-klient mod eget SageMaker-endpoint og køre på jeres egne GPU-instanser. Lille kodeændring, stor forskel i drift, sikkerhed og omkostninger.

21. maj 2026 Peter Munkholm

AWS har lanceret OpenAI-kompatibel API-support på Amazon SageMaker AI realtids-endpoints. Det omfatter en /openai/v1-sti, streaming og tidsbegrænsede bearer-tokens, plus et GitHub-notebook med deployment og kald. Ifølge AWS’ blog kan klienter som OpenAI SDK, LangChain og Strands Agents pege på et SageMaker-endpoint ved primært at skifte base-URL. Ingen SigV4 i klienten.

Kernen er enkel: routing sker på endpoint-navn i URL’en, og platformen returnerer svar uændret fra containeren. Jeres infrastruktur taler OpenAI-protokol – uden en ekstra proxy i midten.

Hvorfor det er relevant nu

Bruger I allerede OpenAI SDK, LangChain eller Strands, kan I ofte genbruge klientkoden. Skift base-URL, udsted et bearer-token, kør. Det sænker time-to-production og reducerer lock-in, fordi I kan teste og drifte i egen konto uden at omskrive app-logik.

Snilld: Vi flyttede et lille LangChain-agentflow hos en kunde på under en time. Det meste handlede om en stram security group, ikke kode.

Makrofoto af en hanske ved en RFID-læser med cyan kantlys og indigo baggrund, symboliserer fysisk adgang og token-udstedelse.

Hvad AWS konkret har tændt for

SageMaker AI eksponerer /openai/v1 på realtids-endpoints, accepterer Chat Completions-requests og understøtter streaming. AWS beskriver, at routing sker via endpoint-navn i URL’en, og at svar returneres uændret fra containeren – inkl. streaming-format. Konsekvensen er klar: containeren skal levere OpenAI-kompatibelt output, som klienten forventer. Se AWS-bloggens afsnit “Overview”.

AWS angiver også, at OpenAI-kompatible endpoints er slået til for alle SageMaker AI-endpoints og inference components, der bruger de almindelige SageMaker AI-API’er og SDK’er.

Autentifikation med tidsbegrænsede tokens

Klienterne bruger tidsbegrænsede bearer-tokens i Authorization-headeren. Ifølge AWS-bloggens afsnit “Authentication with bearer tokens” genererer SageMaker Python SDK tokens, der kan være gyldige i op til 12 timer, baseret på jeres eksisterende AWS-legitimationsoplysninger. Notebooket viser generate_token-kaldet eksplicit.

from sagemaker.core.token_generator import generate_token
from datetime import timedelta

# Notebooket demonstrerer samme mønster
token = generate_token(region="eu-west-1", expiry=timedelta(minutes=5))

Det fjerner friktionen for frameworks, der ikke taler SigV4. Men tokens udløber, og læk giver kortvarig adgang. Hold TTL kort i produktion og automatisér rotation via secrets-store eller CI/CD.

Banner

Implementeringen i praksis

I skal bruge: en AWS-konto med rettigheder til at oprette SageMaker AI-endpoints, SageMaker Python SDK, OpenAI Python SDK, en model i S3 (AWS nævner fx Qwen3-4B) og relevante IAM-roller. AWS’ GitHub-notebook viser deployment og invoke-flow trin for trin.

Et typisk flow i fem trin: 1) Upload modelartefakter til S3 og beskriv container/inference-spec. 2) Opret endpoint – eller brug inference components for flere modeller bag ét endpoint. 3) Generér bearer-token via sagemaker.core.token_generator.generate_token. 4) Sæt OpenAI-klientens base_url til jeres regions /openai/v1-sti med endpoint-navn. 5) Send en Chat Completions-request og slå streaming til, hvis appen bruger det. Notebooket demonstrerer både deployment og kald.

Mid-frame operations-scene: teknikere (torso/hænder) ved en vægmonteret systems-map og et åbent kabinet med anonym token-issuer, indigo og cyan tones.

Hvad “as is” svar betyder i praksis

Når platformen returnerer containerens svar uændret, får I fuld kontrol – og ansvaret med den. Streaming skal være OpenAI-kompatible server-sent events. Feltnavne og JSON-struktur skal være præcise. Test med de klientbiblioteker, I faktisk bruger (OpenAI SDK, LangChain), ikke kun curl.

IAM-tilladelser i minimum

AWS fremhæver disse handlinger som påkrævede for kald via bearer-tokens:

  • sagemaker:CallWithBearerToken
  • sagemaker:InvokeEndpoint

Minimalt policy-eksempel, klar til copy-paste:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "sagemaker:CallWithBearerToken",
        "sagemaker:InvokeEndpoint"
      ],
      "Resource": "arn:aws:sagemaker:REGION:ACCOUNT_ID:endpoint/ENDPOINT_NAME"
    }
  ]
}

Udvid som nødvendigt til token-issuer og deployment-roller, men start småt og eksplicit.

En konkret mini-migration

Snilld: Reproducerbar kernenedslag for et LangChain-chatflow:

# 1) Generér kortlivet token
from sagemaker.core.token_generator import generate_token
from datetime import timedelta
token = generate_token(region="eu-west-1", expiry=timedelta(minutes=5))

# 2) Peg OpenAI-klienten på SageMaker
from openai import OpenAI
client = OpenAI(
    base_url="https://eu-west-1.sagemaker.aws/openai/v1",
    api_key=token
)

# 3) Kør Chat Completions (med streaming hvis ønsket)
with client.chat.completions.stream(model="ENDPOINT_NAME", messages=[{"role":"user","content":"Hej"}]) as stream:
    for event in stream:  # SSE-chunks
        pass

Det meste af tidsforbruget gik på netværk og skalering, ikke kode.

Editorial foto af et anonymt arkiv- eller model-custody-rum med cyan markeret retrieval-path og indigo stemning, symboliserer modelkatalog og governance.

Drift, latency og omkostning

Når inference kører på egne GPU-instanser, skifter ansvaret. Latens kan falde, når data og brugere er i samme region (og evt. samme VPC). Til gengæld ejer I autoscaling, warm pools og cold starts. I betaler for instanser, ikke pr. token. Mulighed og risiko i samme pakke.

Start med få målepunkter: p95/p99-latens, stabilitet på SSE-streams over 1–2 minutter, og pris pr. 1.000 svar for både kold og varm drift. Aktivér SageMaker endpoint-metrics (invocations, model-latens, fejlrate) og korrelér med applikationslogs for at finde flaskehalse.

Faldgruber vi ser i felten

Netværk: private VPC-endpoints kræver egress/NAT/VPC endpoints eller en proxy for at nå /openai/v1 udefra. Vi oplevede en firewall, der klippede SSE efter 30 sekunder. Det lignede model-problem, men var netværk.

Banner

SigV4 er ude af klienten, men ikke af jeres platform. IAM-politikkerne skal være stramme, og kortlivede tokens skal logges og roteres. En lille issuer-service i platformlaget sparer tid senere.

Kompatibilitet er fin, men test features

AWS dokumenterer Chat Completions. Hvis I bruger udvidelser, så smoke-test dem:

  • Function calling/tool-calls med længere kontekster
  • Lange streaming-sessioner og afbrudshåndtering
  • Eventuelle ikke-chat endpoints i jeres kode

Brug notebooket som skelet: byt model og prompts, sæt stream=True, og log event-rækkefølgen i klienten.

Multi-model og governance

Inference components giver flere modeller bag ét endpoint. Stærkt – men kræver styring: hvem må pege på hvilke komponenter, hvordan versionsstyrer I, og hvordan ruller I tilbage ved kvalitetsfald. Ellers ender I med en sen Slack-tråd og en uheldig routing.

To korte cases

Snilld: Case 1 – Et e-handels-team med et agentisk returflow i LangChain. De ville styre omkostning og holde data i egen VPC. Vi pegede agenten mod et SageMaker-endpoint på g5.xlarge og beholdt streaming. Integrationen var minimal. Det rigtige arbejde lå i autoscaling og at holde GPU’en varm. Billigere om natten, dyrere i spidsen – mere kontrol.

Snilld: Case 2 – En B2B-virksomhed med en finetunet Mistral til supportmakroer. De havde allerede en gateway, der talte OpenAI-protokol. Med bearer-tokens kom SageMaker på som ekstra backend uden SigV4-tilpasninger. Compliance sagde ja til “egen konto, audit-logs, kortvarige tokens” – med alarmer på fejlkald og lange svartider.

Hvad ledelser bør gøre

Kort og målbart:

  • PoC 2 uger – Ejer: Eng lead. Scope: ét chatflow med streaming. Mål: p95 < 800 ms ved varm drift, <2% SSE-afbrydelser.
  • Cost baseline 30 dage – Ejer: FinOps/MLOps. Scope: 2 instanstyper. Mål: pris pr. 1.000 svar (kold/varm) og break-even mod nuværende løsning.
  • Governance-light – Ejer: Platform. Scope: modelkatalog, RBAC til endpoints, simpel rollback-proces. Mål: audit-log på 100% af kald.

Snilld anbefaler en FDE-lignende indsats første uge: én ingeniør tæt på jeres CI/CD, der får token-issuer, routing og observability på plads. Det flytter nålen hurtigere end tre statusmøder.

Tjekliste til teamet

  • Deploy et test-endpoint via AWS’ GitHub-notebook.
  • Sæt en token-issuer op med kort TTL, rotation og audit-logs.
  • Kør latency- og stabilitetstests inkl. SSE i 1–2 minutter.
  • Mål pris pr. 1.000 svar ved realistisk trafik (kold/varm drift).
  • Aktivér endpoint-metrics, korrelations-id’er og fejlkoder i klienten.
  • Etabler en enkel modelregistry med versionsnavne og adgangsroller.

Huller vi holder øje med

Vi mangler åbne benchmarks for latency/throughput på tværs af instanstyper og agent-workloads. AWS beskriver ikke en fuld opskrift på token-rotation/TTL under høj load. Vi vil også have klarhed over SigV4-kanttilfælde i administrative kald. Og tredjeparts-kompatibilitet er bred, men test nichefunktioner før I lover leverance.

Hvis streaming hakker, kig først på VPC-egress eller L7-proxy. Vi har hørt det som en knitren i højttaleren, men set det i firewall-reglerne.

Konklusion

AWS har leveret noget brugbart: en OpenAI-kompatibel sti på SageMaker AI, streaming og tidsbegrænsede tokens. For mange teams er vejen til produktion kort, uden at rive kodebasen op. Gevinsten i fleksibilitet og kontrol er reel – men kræver disciplin i drift og sikkerhed.

Vores råd: prøv det på et smalt flow, mål det hele, og få token-issuer og observability på plads tidligt. Forskellen mærker man først, når man sidder med det.

Kilder

  • AWS blogindlæg: Announcing OpenAI-compatible API support for Amazon SageMaker AI endpoints – funktionalitet, /openai/v1, streaming, bearer-tokens (inkl. “Authentication with bearer tokens”), routing og dækning af endpoints og inference components.
  • GitHub-notebook: sagemaker-inference-openai-api.ipynb – deployment og invocation, inkl. generate_token-eksempel.
  • Snilld-manualbrief – vurderinger af time-to-production, vendor lock-in og praktiske implementeringsområder.

    Gør brugeroplevelsen bedre.
    Hvilket firma arbejder du for?