Siirry sisältöön
Yleiskatsaus

Yleiskatsaus

API:n kartta: jokainen päätepiste, miltä pyyntö ja virhe näyttävät, miten kutsuista maksetaan ja mitä on hyvä tietää, kun tulet OpenAI- tai Anthropic-SDK:sta.

Päätepisteet

Jokainen päätepiste sijaitsee yhden perus-URL:n alla ja sitä palvellaan HTTPS:n yli.

Perus-URL
https://api.shannon-ai.com
Päätepiste Muoto Mihin se on tarkoitettu
POST /v1/chat/completions OpenAI Chat Completions Lähetä keskustelu, saat seuraavan vastauksen. Striimauksella tai ilman.
POST /v1/messages Anthropic Messages Sama, Anthropic-SDK:iden pyyntö- ja vastausmuodoissa.
POST /v1/responses OpenAI Responses Sama, Responses-muodoissa. Päätepiste ei säilytä tilaa: lähetä keskustelu jokaisen pyynnön mukana.
GET /v1/models OpenAI-mallilista Listaa mallit kontekstikokoineen, hintoineen ja ominaisuuksineen. Ei tarvitse avainta.
POST /v1/tokenize Shannon API Laske tekstin tai chat-pyynnön tokenit hostatulle avoimen painon mallille. Ilmainen.
POST /v1/messages/count_tokens Anthropic-tokenlaskenta Laske Messages-pyynnön syötetokenit hostatulle avoimen painon mallille. Ilmainen.

Kolme tekstiä tuottavaa päätepistettä tavoittavat samat mallit. Valitse se, jonka muotoa koodisi jo käyttää.

Pyyntöjen perusteet

Otsake Kuvaus
Authorization: Bearer <key> API-avaimesi. Pakollinen jokaisessa päätepisteessä paitsi GET /v1/models, ellet lähetä x-api-key.
x-api-key: <key> Sama avain otsakkeessa, jonka Anthropic-SDK:t lähettävät. Luetaan jokaisessa päätepisteessä.
Content-Type: application/json Pakollinen jokaisessa POST-pyynnössä. Ilman sitä vastaus on 415.
x-request-id: <your id> Valinnainen. Oma id pyynnölle; se palaa vastauksen otsakkeessa x-request-id. Ilman sitä API luo 12 heksadesimaalimerkin id:n.
  • Jokaisen POST-pyynnön runko on yksi JSON-objekti, enintään 32 MiB.
  • Kenttä, jota API ei tunne, ei aiheuta virhettä eikä vaikuta mihinkään. Toiselle palveluntarjoajalle kirjoitettu pyyntö ei epäonnistu ylimääräisen kentän vuoksi.
  • Tunnettuun kenttään, jonka JSON-tyyppi on väärä, tai puuttuvaan pakolliseen kenttään vastataan 422:lla. Runkoon, joka ei ole kelvollista JSONia, vastataan 400:lla.
  • model on jokin Models & pricing -sivun id:istä. Isoilla ja pienillä kirjaimilla ei ole väliä.

Vastaus on JSON tai server-sent events -striimi, kun pyyntö asettaa stream-arvoksi true. Jokainen päätepiste vastaa omassa muodossaan. Jokaisessa vastauksessa on otsake x-request-id.

Mitä pyyntö läpäisee

Pyyntö tarkistetaan kiinteässä järjestyksessä ennen kuin malli suoritetaan. Ensimmäinen epäonnistuva tarkistus vastaa, joten 401 ei vielä kerro mitään rungosta.

Virheen muoto

Virhe on JSON-objekti, jossa on error, joka sisältää kentät type ja message. /v1/messages käärii sen niin kuin Anthropic-SDK:t odottavat; kaikki muut polut käyttävät OpenAI-muotoa.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Lue type ja message. code ja param ovat mukana vain joissakin virheissä: pidä niitä valinnaisina. param on aina null.
  • Kun striimi on alkanut, tila on jo 200. Virhe saapuu silloin virhekehyksenä striimin sisällä.
  • Jokaisessa virhevastauksessa on otsake x-request-id.
Tila Tyyppi Milloin
400 invalid_request_error Runko ei ole kelvollista JSONia, mallin id on tuntematon tai malli ei ota lähettämääsi syötetyyppiä.
401 authentication_error Avain puuttuu tai ei kelpaa.
404 not_found_error Polkua ei ole.
405 api_error Polku on olemassa, mutta metodi on väärä.
413 invalid_request_error Runko on suurempi kuin 32 MiB.
415 invalid_request_error Content-Type ei ole application/json.
422 invalid_request_error Kentän JSON-tyyppi on väärä tai pakollinen kenttä puuttuu.
429 rate_limit_error Saldo ei riitä pyyntöön, minuutissa saapui yli 120 pyyntöä, jakson Shannon Coder -kutsut on käytetty tai malli on kiireinen. Viesti kertoo, mistä on kyse.
5xx api_error Tila 500, 502, 503 tai 504: pyyntö oli kelvollinen, mutta siihen ei voitu vastata. Lähetä se uudelleen. 500 voi sisältää tyypin server_error.

Virheiden käsittely

Laskutus ja saldo

  • Tiliä kohti on yksi saldo, jota chat ja API jakavat: ensin tämän päivän kiintiö, sitten ostettu saldo. API:lla ei ole omaa kiintiötä.
  • Pyyntö varaa tulostebudjettinsa (max_tokens, oletus 4,096) ja sen jälkeen siitä veloitetaan todella käytetyt tokenit mallin hinnalla.
  • Jokainen vastaus ilmoittaa tokenmääränsä kentässä usage. Keys & usage -sivu näyttää saldon ja sen, mitä kukin pyyntö maksoi.
  • Jokaista pyyntöä palvellaan yhtä lailla. Ainoa pyyntötahdin raja on tulvasuoja: 120 pyyntöä minuutissa tiliä kohti. Rinnakkain lähetetyt pyynnöt odottavat jonossa.

Rajat ja saldo Mallit ja hinnoittelu Avaimet ja käyttö

Mallista riippuvat kentät

Jokainen malli ottaa saman pyynnön. Muutama kenttä vaikuttaa vain joillakin malleilla; taulukko nimeää, millä. Päätepistesivut listaavat jokaisen kentän.

Kenttä Kuvaus Käyttävät mallit
system Ohjeet mallille: system-viesti Chat Completionsissa, system Messagesissa, instructions Responsesissa. Hostatut avoimen painon mallit, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Otannan lämpötila. Hostatut avoimen painon mallit, shannon-1.6-*, shannon-coder-1
top_p Nucleus-otanta. Hostatut avoimen painon mallit
seed Kiinteä siemen otantaan. Hostatut avoimen painon mallit
stop Enintään 4 pysäytyssekvenssiä. Hostatut avoimen painon mallit
reasoning_effort Kuinka paljon malli päättelee ennen vastaamista. reasoning.effort Responsesissa, thinking Messagesissa. Hostatut avoimen painon mallit
web_search true sallii mallin hakea verkosta tälle pyynnölle. Tämän API:n oma kenttä, Chat Completionsissa ja Messagesissa. Shannon-mallit paitsi shannon-coder-1
max_tokens Tulostebudjetti. Jokaisella mallilla se määrää saldostasi varattavan määrän. Vastauksen pituuden rajana: hostatut avoimen painon mallit, shannon-1.6-*, shannon-coder-1

Chat Completions

Tulet OpenAI-SDK:sta

  • Aseta perus-URL:ksi https://api.shannon-ai.com/v1 ja avaimeksi Shannon-avaimesi. Chat Completions- ja Responses-kutsut toimivat silloin SDK:n kanssa sellaisenaan.
  • model-arvon on oltava Shannon-id. Toisen palveluntarjoajan mallin nimeen, kuten gpt-4o, vastataan 400:lla ja viestillä unknown model.
  • Päättely tulee omassa kentässään: reasoning_content kentän content vieressä, viestissä ja striimin deltoissa.
  • Striimin viimeisessä chunkissa on aina usage yhdessä finish_reason-kentän kanssa.
  • Työkalukutsu striimissä saapuu yhtenä chunkina, jossa on koko arguments-merkkijono.
  • Vastauksessa on yksi choice.
  • OpenAI API:n polkuihin, joita ei ole yllä olevassa taulukossa, kuten /v1/embeddings, vastataan 404:llä.

Tulet Anthropic-SDK:sta

  • Aseta perus-URL:ksi https://api.shannon-ai.com, ilman /v1, ja avaimeksi Shannon-avaimesi. SDK lähettää sen otsakkeena x-api-key.
  • model-arvon on oltava Shannon-id.
  • max_tokens on tässä API:ssa valinnainen. Sen oletus on 4,096.
  • Vastaus sisältää sisältölohkoja tyypeistä thinking, text ja tool_use. Ensimmäinen lohko ei aina ole teksti: valitse lohkot kentän type mukaan.
  • stop_reason on end_turn tai tool_use. Shannon-mallin striimi voi päättyä myös arvoon max_tokens.
  • anthropic-version ja anthropic-beta hyväksytään, joten SDK toimii muuttumattomana. Pyyntö ei tarvitse niitä.
  • Päätepisteen /v1/messages virheillä on Anthropicin muoto: {"type": "error", "error": {…}}.

Koodaustyökalut, jotka puhuvat näitä muotoja, asetetaan samalla tavalla: perus-URL, avain ja Shannon-id mallina. CLI-koodaustyökalut