Modeller
List opp modellene API-nøkkelen din kan kalle, les egenskapene deres, og adresser en modell, et leverandørendepunkt eller en router.
List opp hva nøkkelen din kan kalle
curl https://api.stav.ai/v1/models \
-H "Authorization: Bearer $STAV_API_KEY"
for m in client.models.list():
print(m.id)
Listen inneholder:
autoførst – Smart Router, som bruker standardrouteren i arbeidsområdet ditt- alle modeller arbeidsområdet ditt kan bruke og der inferensleverandøren er tilgjengelig akkurat nå
- routerne i arbeidsområdet ditt, som
@workspace/router-oppføringer (owned_by: "stav")
Dette er «hva denne nøkkelen kan kalle nå», ikke hele katalogen. Krever inference:models.
Les én modell
curl https://api.stav.ai/v1/models/anthropic/claude-sonnet-4-5 \
-H "Authorization: Bearer $STAV_API_KEY"
{
"id": "anthropic/claude-sonnet-4-5",
"object": "model",
"owned_by": "anthropic",
"context_length": 200000,
"max_completion_tokens": 64000,
"top_provider": { "context_length": 200000, "max_completion_tokens": 64000 },
"stav_category": "llm",
"stav_context_window": 200000,
"stav_supports_thinking": true,
"stav_capabilities": {
Feltene med stav_* er utvidelser; OpenAI SDK gjør dem tilgjengelige via model_extra.
context_length, max_completion_tokens og top_provider bruker OpenRouters navn, slik at kode skrevet for OpenRouter leser dem uendret.
| Felt | Betydning |
|---|---|
context_length | Det minste kontekstvinduet, i token, på tvers av leverandørendepunktene nøkkelen din kan rutes til. Det gjelder uansett hvor forespørselen sendes. Bare for chat-modeller |
max_completion_tokens | Det minste antallet token for maks utdata på tvers av disse endepunktene. Bare for chat-modeller |
top_provider | context_length og max_completion_tokens for endepunktet Stav prøver først |
stav_category | Modellkategori, f.eks. LLM eller embedding |
stav_context_window | Modellens eget kontekstvindu. Foretrekk context_length |
stav_supports_thinking | Støtter reasoning_effort / extended thinking |
stav_capabilities | Egenskapsflagg du kan sjekke før du sender |
stav_surfaces | Hvilke av chat, messages, responses, embeddings, transcriptions som betjener denne modellen. En modell uten flate er ikke listet |
stav_native_dialect | Trådformat for modellens egen leverandør |
stav_max_upload_mb | På transcriptions-flaten: den største filen /v1/audio/transcriptions tar imot for denne modellen, i MB. null ellers |
Bruk dem som en forhåndssjekk:
info = client.models.retrieve("anthropic/claude-sonnet-4-5")
caps = info.model_extra.get("stav_capabilities") or {}
if not caps.get("vision"):
raise RuntimeError("this pipeline needs a vision model")
GET /v1/models/{id} tar imot alt du kan sende som model: den kanoniske creator/model-ID-en, et enkelt navn med nøyaktig ett treff (nb-whisper-large), eller en router (@your-workspace/router). Svaret inneholder alltid den kanoniske ID-en. Et låst endepunkt (creator/model/provider) er ikke en modell – finn det under modellens /endpoints.
Se alle leverandørendepunkter
Ulike inferensleverandører betjener den samme modellen med ulike grenser og presisjon. List dem opp:
curl https://api.stav.ai/v1/models/openai/gpt-oss-120b/endpoints \
-H "Authorization: Bearer $STAV_API_KEY"
{
"data": {
"id": "openai/gpt-oss-120b",
"name": "gpt-oss-120b",
"endpoints": [
{
"id": "openai/gpt-oss-120b/groq",
"provider_name": "Groq",
"tag": "groq",
"context_length": 131072,
"max_completion_tokens": 65536,
"quantization": null,
"pricing": { "currency": "EUR",
- Tallene i dette eksempelet er illustrative. Kall endepunktet for gjeldende verdier.
- Listen viser bare endepunktene API-nøkkelen din har tilgang til. Arbeidsområdets policy gjelder: suverenitetsgulv, beregningsregion, ZDR og blokkerte leverandører.
- Rekkefølgen er den rekkefølgen Stav prøver dem i.
- Send en oppføringens
idsommodelfor å låse det endepunktet. pricinger hva en forespørsel på det endepunktet koster, per token, i arbeidsområdets valuta. Det er den samme prisen fakturering bruker.stav_conditional_rates: truebetyr at endepunktet også har betingede priser som avhenger av forespørselen, for eksempel lang kontekst.- Strukturen samsvarer med OpenRouters
/api/v1/models/{author}/{slug}/endpoints. - En router fungerer her også, og det samme gjør
auto:GET /v1/models/@your-workspace/router/endpointslister alle endepunkter for alle modeller routeren kan velge, under routerens egne regler (ZDR, region, gulv) i tillegg til arbeidsområdets – beste modell først. Hver oppføring harmodel_idsom navngir modellen, ogdata.stav_routerertrue. Modellene kommer 100 per side:?page=2, ogdata.stav_total_modelser hele utvalget.
Modell-ID-er
| Form | Eksempel | Betydning |
|---|---|---|
auto | auto | Smart Router, standardrouteren for arbeidsområdet |
| Router | @acme/eu-only | En navngitt router arbeidsområdet ditt har opprettet |
| Modell | zai-org/glm-5-2 | Denne modellen; Stav velger leverandørendepunktet |
| Leverandørendepunkt | zai-org/glm-5-2/fireworks-ai | Denne modellen hos denne inferensleverandøren |
| Bare navn | claude-sonnet-4-5 | Løses til en creator/model-ID |
creator/model
Kanonisk form. Kopier den fra /v1/models eller katalogen. Når en modell har mer enn ett leverandørendepunkt, velger Stav blant dem policyen til arbeidsområdet ditt tillater.
creator/model/provider
Låser ett leverandørendepunkt. En lås innsnevrer valget; den overstyrer aldri policyen til arbeidsområdet ditt.
- Ingen endepunkt med den slugen →
endpoint_not_found - Endepunktet finnes, men policyen din utelukker det (eller det er ikke aktivt) →
endpoint_not_admissible
Noen endepunkter har en betjeningsvariant etter kolon, f.eks. zai-org/glm-5-2/fireworks-ai:fast. Varianten gjelder bare for et låst endepunkt.
Bare navn og aliaser
Et navn uten skråstrek løses i denne rekkefølgen:
- et registrert alias – gamle slugs fra før
creator/model-navngivingen, og ID-er som inferensleverandøren selv bruker - den ene aktive modellen hvis ID slutter på
/<name>
Hvis to modeller deler det siste segmentet, treffer det bare navnet ingenting. Bruk creator/model i kode du skal beholde.
Ukjent modell
{
"error": {
"message": "The model 'openai/gpt-4o-turbo' does not exist or you do not have access to it.",
"type": "invalid_request_error",
"param": "model",
"code": "model_not_found"
}
}
Meldingen dekker begge tilfeller med hensikt: Stav bekrefter ikke at en modell du ikke har tilgang til, finnes.
Bla gjennom hele katalogen
Den offentlige katalogen krever ingen nøkkel:
curl "https://api.stav.ai/v1/public/models?page_size=20"
curl "https://api.stav.ai/v1/public/providers"
I arbeidsområdet ditt viser Koble til → Modeller og Koble til → Inferensleverandører den samme katalogen med priser, suverenitet og endepunkter. Bruk /v1/models for «hva kan denne nøkkelen kalle»; bruk katalogen til alt annet.
Filtrer etter type
Hver modell har en type – døren den betjenes på: chat, embedding eller transcription. Katalogen åpner på Chat; send category= for å bytte, og filtrer på typens egne fakta med capability=:
# embedding-modeller med minst 1024 dimensjoner som støtter norsk
curl "https://api.stav.ai/v1/public/models?category=embedding&capability=embedding_dimensions:>=1024,languages:no"
# transcription-modeller med ordtidsstempler, priset til maks €0,01 per lydminutt
curl "https://api.stav.ai/v1/public/models?category=transcription&capability=stt_timestamps_word&max_price=0.01&price_unit=audio_minutes"
Et capability-uttrykk er en slug (vision_input), slug:>=N for et tall, eller slug:code for en liste; en ukjent slug, eller en verdi faktumet ikke tar, avvises med navn (422). Hvert element har price_from og price_unit i typens egen enhet (tokens_in, request eller audio_minutes), og type_counts viser hvor mange modeller av hver type som treffer de øvrige filtrene. GET /v1/public/model-types lister typene med filtrene, enhetene og benchmarksettene deres.
Låse eller rute?
- Lås en modell når du reproduserer en evaluering eller en kontrakt navngir modellen.
- Lås et endepunkt når du trenger én bestemt inferensleverandør.
- Bruk en router for det meste av produksjonstrafikken: reserve ved feil, avveininger mellom forbruk og svartid, og et suverenitetsgulv satt én gang for arbeidsområdet. Endre routeren, ikke koden din.