Hopp til innholdet
Oversikt

Oversikt

Kartet over API-et: hvert endepunkt, hvordan en forespørsel og en feil ser ut, hvordan kall betales, og hva du bør vite når du kommer fra en OpenAI- eller Anthropic-SDK.

Endepunkter

Hvert endepunkt ligger under én base-URL og leveres over HTTPS.

Base-URL
https://api.shannon-ai.com
Endepunkt Format Hva den brukes til
POST /v1/chat/completions OpenAI Chat Completions Send en samtale og få neste svar. Med eller uten streaming.
POST /v1/messages Anthropic Messages Det samme, i forespørsels- og svarformene til Anthropic-SDK-er.
POST /v1/responses OpenAI Responses Det samme, i Responses-formene. Endepunktet holder ingen tilstand: send samtalen med hver forespørsel.
GET /v1/models OpenAI-modelliste List modellene med kontekstvindu, priser og funksjoner. Trenger ingen nøkkel.
POST /v1/tokenize Shannon API Tell tokens i en tekst eller i en chat-forespørsel for en hostet åpen vektmodell. Gratis.
POST /v1/messages/count_tokens Anthropic token-telling Tell input-tokens i en Messages-forespørsel for en hostet åpen vektmodell. Gratis.

De tre endepunktene som produserer tekst, når de samme modellene. Velg det som har formatet koden din allerede bruker.

Grunnleggende om forespørsler

Header Beskrivelse
Authorization: Bearer <key> API-nøkkelen din. Påkrevd på alle endepunkter unntatt GET /v1/models, med mindre du sender x-api-key.
x-api-key: <key> Den samme nøkkelen i headeren Anthropic-SDK-er sender. Leses på alle endepunkter.
Content-Type: application/json Påkrevd på hver POST. Uten den er svaret 415.
x-request-id: <your id> Valgfri. Din egen id for forespørselen; den kommer tilbake i svarheaderen x-request-id. Uten den lager API-et en på 12 heksadesimale tegn.
  • Kroppen i hver POST er ett JSON-objekt, opptil 32 MiB.
  • Et felt API-et ikke kjenner, gir ingen feil og har ingen effekt. En forespørsel skrevet for en annen leverandør feiler ikke på grunn av et ekstra felt.
  • Et kjent felt med feil JSON-type, eller et manglende påkrevd felt, besvares med 422. En kropp som ikke er gyldig JSON, besvares med 400.
  • model er en av id-ene på Models & pricing. Store og små bokstaver spiller ingen rolle.

Et svar er JSON, eller en strøm av server-sent events når forespørselen setter stream til true. Hvert endepunkt svarer i sitt eget format. Hvert svar har headeren x-request-id.

Hva en forespørsel må igjennom

En forespørsel sjekkes i fast rekkefølge før en modell kjører. Den første sjekken som feiler, svarer, så en 401 sier ennå ingenting om kroppen.

Feilform

En feil er et JSON-objekt med en error som inneholder type og message. /v1/messages pakker den inn slik Anthropic-SDK-er forventer; alle andre stier bruker OpenAI-formen.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Les type og message. code og param finnes bare på enkelte feil: behandle dem som valgfrie. param er alltid null.
  • Etter at en strøm har startet, er statusen allerede 200. En feil kommer da som en feilramme inne i strømmen.
  • Hvert feilsvar har headeren x-request-id.
Status Type Når
400 invalid_request_error Kroppen er ikke gyldig JSON, modell-id-en er ukjent, eller modellen tar ikke imot en type input du sendte.
401 authentication_error Nøkkelen mangler eller er ugyldig.
404 not_found_error Stien finnes ikke.
405 api_error Stien finnes, men metoden er feil.
413 invalid_request_error Kroppen er større enn 32 MiB.
415 invalid_request_error Content-Type er ikke application/json.
422 invalid_request_error Et felt har feil JSON-type, eller et påkrevd felt mangler.
429 rate_limit_error Saldoen dekker ikke forespørselen, mer enn 120 forespørsler kom inn i løpet av et minutt, Shannon Coder-kallene i vinduet er brukt opp, eller modellen er opptatt. Meldingen sier hvilket.
5xx api_error Status 500, 502, 503 eller 504: forespørselen var gyldig, men kunne ikke besvares. Send den på nytt. En 500 kan ha typen server_error.

Feilhåndtering

Fakturering og saldo

  • Det finnes én saldo per konto, og chat og API deler den: først dagens plan-kvote, deretter kjøpt kreditt. API-et har ingen egen kvote.
  • En forespørsel reserverer utdatabudsjettet sitt (max_tokens, standard 4,096) og belastes deretter for tokens-ene den faktisk brukte, til modellens pris.
  • Hvert svar rapporterer tokenantallene sine i usage. Siden Keys & usage viser saldoen og hva hver forespørsel kostet.
  • Hver forespørsel behandles likt. Den eneste grensen for forespørselsrate er flood protection: 120 forespørsler per minutt per konto. Forespørsler som sendes parallelt, venter i kø.

Grenser og saldo Modeller og priser Nøkler og bruk

Felt som avhenger av modellen

Alle modeller tar imot den samme forespørselen. Noen få felt har bare effekt på enkelte modeller; tabellen oppgir hvilke. Endepunktsidene lister hvert felt.

Felt Beskrivelse Brukes av
system Instruksjoner til modellen: en system-melding på Chat Completions, system på Messages, instructions på Responses. Hostede åpne vektmodeller, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Samplingtemperatur. Hostede åpne vektmodeller, shannon-1.6-*, shannon-coder-1
top_p Nucleus-sampling. Hostede åpne vektmodeller
seed Et fast seed for sampling. Hostede åpne vektmodeller
stop Opptil 4 stoppsekvenser. Hostede åpne vektmodeller
reasoning_effort Hvor mye modellen resonnerer før den svarer. reasoning.effort på Responses, thinking på Messages. Hostede åpne vektmodeller
web_search true lar modellen søke på nettet for denne forespørselen. Et felt i dette API-et, på Chat Completions og Messages. Shannon-modeller unntatt shannon-coder-1
max_tokens Utdatabudsjettet. På alle modeller bestemmer det beløpet som reserveres fra saldoen din. Som grense for lengden på svaret: hostede åpne vektmodeller, shannon-1.6-*, shannon-coder-1

Chat Completions

Hvis du kommer fra en OpenAI-SDK

  • Sett base-URL-en til https://api.shannon-ai.com/v1 og nøkkelen til Shannon-nøkkelen din. Kall til Chat Completions og Responses fungerer da med SDK-en som den er.
  • model må være en Shannon-id. Et modellnavn fra en annen leverandør, som gpt-4o, besvares med 400 og unknown model.
  • Resonnering kommer i et eget felt: reasoning_content ved siden av content, i meldingen og i strømdeltaene.
  • En strøm har alltid usage i den siste chunken, sammen med finish_reason.
  • Et verktøykall i en strøm kommer som én chunk med hele arguments-strengen.
  • Et svar har ett valg.
  • Stier i OpenAI-API-et som ikke står i tabellen over, som /v1/embeddings, besvares med 404.

Hvis du kommer fra en Anthropic-SDK

  • Sett base-URL-en til https://api.shannon-ai.com, uten /v1, og nøkkelen til Shannon-nøkkelen din. SDK-en sender den som x-api-key.
  • model må være en Shannon-id.
  • max_tokens er valgfri i dette API-et. Standardverdien er 4,096.
  • Et svar inneholder innholdsblokker av typene thinking, text og tool_use. Den første blokken er ikke alltid teksten: velg blokker etter type.
  • stop_reason er end_turn eller tool_use. En strøm fra en Shannon-modell kan også ende med max_tokens.
  • anthropic-version og anthropic-beta godtas, så SDK-en fungerer uendret. En forespørsel trenger dem ikke.
  • Feil på /v1/messages har Anthropic-formen: {"type": "error", "error": {…}}.

Kodeverktøy som snakker disse formatene, settes opp på samme måte: base-URL, nøkkel og en Shannon-id som modell. CLI-verktøy for koding