Anthropic SDK-migrering
Pek Anthropic SDK eller Claude Code mot Stav. Claude-modeller proxies til Anthropic uendret; alle andre katalogmodeller oversettes, med resonnering bevart.
Stav tilbyr Anthropic Messages API på POST /v1/messages, pluss POST /v1/messages/count_tokens.
Endre to linjer
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["STAV_API_KEY"], # sk_stav_live_...
base_url="https://api.stav.ai", # ingen /v1 — SDK-en legger det til
)
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.STAV_API_KEY,
baseURL: "https://api.stav.ai",
});
En base-URL som slutter på /v1 sender forespørsler til /v1/v1/messages, som gir 404.
Stav godtar nøkkelen som x-api-key (det SDK-en sender) eller Authorization: Bearer.
Modellnavn
Bruk anthropic/claude-sonnet-4-5 eller bare claude-sonnet-4-5. Daterte snapshots (claude-sonnet-4-5-20250929) og -latest-navn løses også opp. auto, en Router (@acme/eu-only) og alle andre katalogmodeller fungerer også.
To veier, ett endepunkt
Claude-modeller – proxies til Anthropic. Forespørselen sendes til Anthropics API slik den er: thinking, cache_control, serververktøy, beta-funksjoner og nye felt fungerer alle. Dette gjelder når du navngir en Claude-modell, og når auto eller en Router velger én.
Alle andre modeller – oversettes til chat completions og sendes videre som /v1/chat/completions.
| Funksjon | På en ikke-Claude-modell |
|---|---|
tools med input_schema, tool_choice, tool_result | Bevares |
| Bilder | Bevares; med auto eller en Router vurderes bare modeller med bildestøtte |
thinking | Oversettes til et reasoning_effort-nivå |
cache_control | Droppes, navngitt i X-Stav-Dropped-Params |
Serververktøy (web_search_20250305, bash_20250124, …) | Droppes, hver type navngitt i X-Stav-Dropped-Params (og tool_choice hvis den pekte på ett) |
Å droppe cache_control koster penger, ikke korrekthet, så kallet lykkes likevel. Hvis arbeidsmengden din er avhengig av prompt-cachen, bruk en Claude-modell og følg med på den headeren.
En Claude-modell er ikke suveren. Den kjører hos Anthropic. For EU-basert inferens, bruk en ikke-Claude-modell eller en Router med et suverenitetsgulv. Se Suverenitet.
Utvidet tenkning
msg = client.messages.create(
model="anthropic/claude-sonnet-4-5",
max_tokens=8192,
thinking={"type": "enabled", "budget_tokens": 4096},
messages=[{"role": "user", "content": "Plan a Postgres 14 → 17 migration."}],
)
for block in msg.content:
if block.type == "thinking":
print("[reasoning]", block.thinking)
For Claude-modeller validerer Anthropic budget_tokens (minst 1024, under max_tokens), og Stav returnerer feilen som den er. Se Resonnering.
Prompt-bufring
msg = client.messages.create(
model="anthropic/claude-sonnet-4-5",
max_tokens=1024,
system=[{
"type": "text",
"text": LONG_SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"},
}],
messages=messages,
)
print(msg.usage.cache_read_input_tokens)
Telle tokens
count = client.messages.count_tokens(
model="anthropic/claude-sonnet-4-5",
system=LONG_SYSTEM_PROMPT,
tools=TOOLS,
messages=messages,
)
print(count.input_tokens)
Faktureres ikke. For Claude-modeller utfører Anthropic tellingen. For andre modeller er det et lokalt estimat fra modellens tokenizer.
Tilganger
En nøkkel uten tilganger kan kalle alt. En nøkkel med tilganger trenger inference:messages for begge endepunkter.
Claude Code
export ANTHROPIC_BASE_URL="https://api.stav.ai"
export ANTHROPIC_AUTH_TOKEN="sk_stav_live_..."
Claude Code sender deretter hvert steg til /v1/messages på Stav, og det belastes lommeboken din. Med en Claude-modell fungerer alt som før. Med en ikke-Claude-modell fungerer verktøy, strømming og tenkning; cache_control fjernes som beskrevet ovenfor.
Sjekkliste for migrering
- Opprett en
sk_stav_test_-nøkkel. - Sett
base_urltilhttps://api.stav.ai– uten/v1. - Kjør testene dine mot en Claude-modell. De skal bestå uten endringer.
- Prøv en ikke-Claude-modell eller
auto, og sjekkX-Stav-Dropped-Params. - Sett et suverenitetsgulv for arbeidsområdet.
- Rull ut med en
sk_stav_live_-nøkkel.
Ikke tilgjengelig
- Files API, Message Batches API og Models API på Anthropic-stien. Bruk
GET /v1/modelsmed en OpenAI-stil klient for å liste modeller. - Serververktøy og datamaskinbruk på ikke-Claude-modeller.