Oorsig
Die kaart van die API: elke eindpunt, hoe 'n versoek en 'n fout lyk, hoe oproepe betaal word, en wat om te weet wanneer jy van 'n OpenAI- of Anthropic-SDK af kom.
Eindpunte
Elke eindpunt woon onder een basis-URL en word oor HTTPS bedien.
https://api.shannon-ai.com | Eindpunt | Formaat | Waarvoor dit dien |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | Stuur 'n gesprek, kry die volgende antwoord. Met of sonder stroming. |
POST /v1/messages | Anthropic Messages | Dieselfde, in die versoek- en antwoordvorme van Anthropic-SDK's. |
POST /v1/responses | OpenAI Responses | Dieselfde, in die Responses-vorme. Die eindpunt hou geen toestand nie: stuur die gesprek met elke versoek. |
GET /v1/models | OpenAI-modellys | Lys die modelle met konteksvenster, pryse en vermoëns. Het geen sleutel nodig nie. |
POST /v1/tokenize | Shannon API | Tel die tokens van 'n teks of van 'n klets-versoek vir 'n gehuisveste oopgewig-model. Gratis. |
POST /v1/messages/count_tokens | Anthropic-tokentelling | Tel die insettokens van 'n Messages-versoek vir 'n gehuisveste oopgewig-model. Gratis. |
Die drie eindpunte wat teks lewer, bereik dieselfde modelle. Kies die een waarvan die formaat jou kode reeds gebruik.
Versoekbeginsels
| Header | Beskrywing |
|---|---|
Authorization: Bearer <key> | Jou API-sleutel. Vereis op elke eindpunt behalwe GET /v1/models, tensy jy x-api-key stuur. |
x-api-key: <key> | Dieselfde sleutel in die header wat Anthropic-SDK's stuur. Gelees op elke eindpunt. |
Content-Type: application/json | Vereis op elke POST. Daarsonder is die antwoord 415. |
x-request-id: <your id> | Opsioneel. Jou eie id vir die versoek; dit kom terug in die antwoord-header x-request-id. Daarsonder skep die API een van 12 heksadesimale karakters. |
- Die liggaam van elke
POSTis een JSON-objek, tot 32 MiB. - 'n Veld wat die API nie ken nie, veroorsaak geen fout nie en het geen effek nie. 'n Versoek wat vir 'n ander verskaffer geskryf is, misluk nie weens 'n ekstra veld nie.
- 'n Bekende veld met die verkeerde JSON-tipe, of 'n ontbrekende vereiste veld, word met
422beantwoord. 'n Liggaam wat nie geldige JSON is nie, word met400beantwoord. modelis een van die id's op Modelle en pryse. Hoof- en kleinletters maak nie saak nie.
'n Antwoord is JSON, of 'n stroom van bediener-gestuurde gebeure wanneer die versoek stream op true stel. Elke eindpunt antwoord in sy eie formaat. Elke antwoord het die header x-request-id.
Wat 'n versoek deurloop
'n Versoek word in 'n vaste volgorde nagegaan voordat 'n model loop. Die eerste toets wat misluk, antwoord, so 'n 401 sê jou nog niks oor die liggaam nie.
| Nagegaan, in hierdie volgorde | Status wanneer dit misluk |
|---|---|
| API-sleutel | 401 |
| Liggaam: grootte, inhoudtipe, JSON, veldtipes | 413 · 415 · 400 · 422 |
| Model-id | 400 |
| Vloedbeskerming: 120 versoeke per minuut per rekening | 429 |
| Balans: die uitvoerbegroting van die versoek moet inpas | 429 |
Foutvorm
'n Fout is 'n JSON-objek met 'n error wat type en message hou. /v1/messages draai dit soos Anthropic-SDK's verwag; elke ander pad gebruik die OpenAI-vorm.
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Lees
typeenmessage.codeenparamis net by sommige foute teenwoordig: behandel hulle as opsioneel.paramis altydnull. - Nadat 'n stroom begin het, is die status reeds
200. 'n Mislukking kom dan as 'n foutraam binne die stroom aan. - Elke foutantwoord dra die header
x-request-id.
| Status | Tipe | Wanneer |
|---|---|---|
400 | invalid_request_error | Die liggaam is nie geldige JSON nie, die model-id is onbekend, of die model neem nie 'n soort inset wat jy gestuur het nie. |
401 | authentication_error | Die sleutel ontbreek of is nie geldig nie. |
404 | not_found_error | Die pad bestaan nie. |
405 | api_error | Die pad bestaan, die metode is verkeerd. |
413 | invalid_request_error | Die liggaam is groter as 32 MiB. |
415 | invalid_request_error | Content-Type is nie application/json nie. |
422 | invalid_request_error | 'n Veld het die verkeerde JSON-tipe of 'n vereiste veld ontbreek. |
429 | rate_limit_error | Die balans dek nie die versoek nie, meer as 120 versoeke het in 'n minuut aangekom, die Shannon Coder-oproepe van die venster is opgebruik, of die model is besig. Die boodskap sê watter. |
5xx | api_error | Status 500, 502, 503 of 504: die versoek was geldig en kon nie beantwoord word nie. Stuur dit weer. 'n 500 kan die tipe server_error dra. |
Fakturering en balans
- Daar is een balans per rekening, en klets en API deel dit: eers vandag se plan-toelaat, dan aangekoopte krediet. Die API het nie 'n kwota van sy eie nie.
- 'n Versoek reserveer sy uitvoerbegroting (
max_tokens, verstek 4,096) en word dan gehef vir die tokens wat dit werklik gebruik het, teen die prys van die model. - Elke antwoord meld sy tokengetalle in
usage. Die bladsy Sleutels en gebruik wys die balans en wat elke versoek gekos het. - Elke versoek word gelyk bedien. Die enigste perk op versoektempo is vloedbeskerming: 120 versoeke per minuut per rekening. Versoeke wat parallel gestuur word, wag in 'n tou.
Perke en balans Modelle en pryse Sleutels en gebruik
Velde wat van die model afhang
Elke model neem dieselfde versoek. 'n Paar velde het net op sommige modelle effek; die tabel noem waar. Die eindpuntbladsye lys elke veld.
| Veld | Beskrywing | Toegepas deur |
|---|---|---|
system | Instruksies vir die model: 'n system-boodskap op Chat Completions, system op Messages, instructions op Responses. | Gehuisveste oopgewig-modelle, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | Steekproef-temperatuur. | Gehuisveste oopgewig-modelle, shannon-1.6-*, shannon-coder-1 |
top_p | Nucleus-steekproefneming. | Gehuisveste oopgewig-modelle |
seed | 'n Vaste saad vir steekproefneming. | Gehuisveste oopgewig-modelle |
stop | Tot 4 stopreekse. | Gehuisveste oopgewig-modelle |
reasoning_effort | Hoeveel die model redeneer voordat dit antwoord. reasoning.effort op Responses, thinking op Messages. | Gehuisveste oopgewig-modelle |
web_search | true laat die model die web vir hierdie versoek deursoek. 'n Veld van hierdie API, op Chat Completions en Messages. | Shannon-modelle behalwe shannon-coder-1 |
max_tokens | Die uitvoerbegroting. Op elke model stel dit die bedrag wat van jou balans gereserveer word. | As die perk op die lengte van die antwoord: gehuisveste oopgewig-modelle, shannon-1.6-*, shannon-coder-1 |
As jy van 'n OpenAI-SDK af kom
- Stel die basis-URL op
https://api.shannon-ai.com/v1en die sleutel op jou Shannon-sleutel. Chat Completions- en Responses-oproepe werk dan met die SDK soos dit is. modelmoet 'n Shannon-id wees. 'n Modelnaam van 'n ander verskaffer, soosgpt-4o, word met400enunknown modelbeantwoord.- Redenering kom in 'n veld van sy eie:
reasoning_contentlangscontent, in die boodskap en in die stroom-deltas. - 'n Stroom dra altyd
usagein sy laaste chunk, saam metfinish_reason. - 'n Gereedskapoproep in 'n stroom kom as een chunk met die volledige
arguments-string aan. - 'n Antwoord het een keuse.
- Paaie van die OpenAI API wat nie in die tabel hierbo is nie, soos
/v1/embeddings, word met404beantwoord.
As jy van 'n Anthropic-SDK af kom
- Stel die basis-URL op
https://api.shannon-ai.com, sonder/v1, en die sleutel op jou Shannon-sleutel. Die SDK stuur dit asx-api-key. modelmoet 'n Shannon-id wees.max_tokensis opsioneel op hierdie API. Die verstek is 4,096.- 'n Antwoord hou inhoudblokke van tipe
thinking,textentool_use. Die eerste blok is nie altyd die teks nie: kies blokke volgenstype. stop_reasonisend_turnoftool_use. 'n Stroom van 'n Shannon-model kan ook metmax_tokenseindig.anthropic-versionenanthropic-betaword aanvaar, so die SDK werk ongewysig. 'n Versoek het hulle nie nodig nie.- Foute op
/v1/messageshet die Anthropic-vorm:{"type": "error", "error": {…}}.
Koderingsgereedskap wat hierdie formate praat, word op dieselfde manier opgestel: basis-URL, sleutel, en 'n Shannon-id as die model. CLI-koderingsgereedskap