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.
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, vastataan400:lla. modelon 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.
| Tarkistetaan tässä järjestyksessä | Tila epäonnistuessa |
|---|---|
| API-avain | 401 |
| Runko: koko, sisältötyyppi, JSON, kenttätyypit | 413 · 415 · 400 · 422 |
| Mallin id | 400 |
| Tulvasuoja: 120 pyyntöä minuutissa tiliä kohti | 429 |
| Saldo: pyynnön tulostebudjetin on mahduttava | 429 |
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"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Lue
typejamessage.codejaparamovat mukana vain joissakin virheissä: pidä niitä valinnaisina.paramon ainanull. - 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. |
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 |
Tulet OpenAI-SDK:sta
- Aseta perus-URL:ksi
https://api.shannon-ai.com/v1ja avaimeksi Shannon-avaimesi. Chat Completions- ja Responses-kutsut toimivat silloin SDK:n kanssa sellaisenaan. model-arvon on oltava Shannon-id. Toisen palveluntarjoajan mallin nimeen, kutengpt-4o, vastataan400:lla ja viestilläunknown model.- Päättely tulee omassa kentässään:
reasoning_contentkentäncontentvieressä, viestissä ja striimin deltoissa. - Striimin viimeisessä chunkissa on aina
usageyhdessä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, vastataan404:llä.
Tulet Anthropic-SDK:sta
- Aseta perus-URL:ksi
https://api.shannon-ai.com, ilman/v1, ja avaimeksi Shannon-avaimesi. SDK lähettää sen otsakkeenax-api-key. model-arvon on oltava Shannon-id.max_tokenson tässä API:ssa valinnainen. Sen oletus on 4,096.- Vastaus sisältää sisältölohkoja tyypeistä
thinking,textjatool_use. Ensimmäinen lohko ei aina ole teksti: valitse lohkot kentäntypemukaan. stop_reasononend_turntaitool_use. Shannon-mallin striimi voi päättyä myös arvoonmax_tokens.anthropic-versionjaanthropic-betahyväksytään, joten SDK toimii muuttumattomana. Pyyntö ei tarvitse niitä.- Päätepisteen
/v1/messagesvirheillä 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