Pregled
Zemljevid API-ja: vsaka končna točka, kako izgledata zahtevek in napaka, kako se klici plačujejo in kaj je treba vedeti, če prihajate iz SDK-ja OpenAI ali Anthropic.
Končne točke
Vsaka končna točka je pod enim osnovnim URL-jem in se streže prek HTTPS.
https://api.shannon-ai.com | Končni točka (Endpoint) | Format | Za kaj je |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | Pošljite pogovor, prejmite naslednji odgovor. S pretakanjem ali brez. |
POST /v1/messages | Anthropic Messages | Isto, v oblikah zahtevka in odgovora SDK-jev Anthropic. |
POST /v1/responses | OpenAI Responses | Isto, v oblikah Responses. Končna točka ne hrani stanja: z vsakim zahtevkom pošljite pogovor. |
GET /v1/models | Seznam modelov OpenAI | Navede modele s kontekstnim oknom, cenami in zmožnostmi. Ključa ne potrebuje. |
POST /v1/tokenize | Shannon API | Preštejte tokene besedila ali zahtevka za klepet za gostovani model z odprtimi utežmi. Brezplačno. |
POST /v1/messages/count_tokens | Štetje tokenov Anthropic | Preštejte vhodne tokene zahtevka Messages za gostovani model z odprtimi utežmi. Brezplačno. |
Tri končne točke, ki ustvarjajo besedilo, dosegajo iste modele. Izberite tisto, katere format koda že uporablja.
Osnove zahtevkov
| Glava | Opis |
|---|---|
Authorization: Bearer <key> | Vaš API ključ. Obvezen na vsaki končni točki razen GET /v1/models, razen če pošljete x-api-key. |
x-api-key: <key> | Isti ključ v glavi, ki jo pošiljajo SDK-ji Anthropic. Prebere se na vsaki končni točki. |
Content-Type: application/json | Obvezno pri vsakem POST. Brez nje je odgovor 415. |
x-request-id: <your id> | Neobvezno. Vaš lasten id zahtevka; vrne se v glavi odgovora x-request-id. Brez njega ga API ustvari sam, dolg 12 šestnajstiških znakov. |
- Telo vsakega
POSTje en objekt JSON, velik do 32 MiB. - Polje, ki ga API ne pozna, ne povzroči napake in nima učinka. Zahtevek, napisan za drugega ponudnika, zaradi dodatnega polja ne odpove.
- Na znano polje z napačnim tipom JSON ali manjkajoče obvezno polje se odgovori z
422. Na telo, ki ni veljaven JSON, se odgovori z400. modelje eden od id na strani Models & pricing. Velike in male črke niso pomembne.
Odgovor je JSON ali tok dogodkov, ki jih pošilja strežnik (server-sent events), kadar zahtevek nastavi stream na true. Vsaka končna točka odgovarja v svojem formatu. Vsak odgovor ima glavo x-request-id.
Kaj zahtevek mora prestati
Zahtevek se pred zagonom modela preveri v stalnem vrstnem redu. Odgovori prvo preverjanje, ki ne uspe, zato vam 401 o telesu še ne pove ničesar.
| Preverjeno, v tem vrstnem redu | Status ob neuspehu |
|---|---|
| API ključ | 401 |
| Telo: velikost, tip vsebine, JSON, tipi polj | 413 · 415 · 400 · 422 |
| Id modela | 400 |
| Zaščita pred poplavo: 120 zahtevkov na minuto na račun | 429 |
| Stanje: izhodni proračun zahtevka se mora prilegati | 429 |
Oblika napake
Napaka je objekt JSON z error, ki vsebuje type in message. /v1/messages ga ovije tako, kot ga pričakujejo SDK-ji Anthropic; vsaka druga pot uporablja obliko OpenAI.
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Preberite
typeinmessage.codeinparamsta prisotna samo pri nekaterih napakah: obravnavajte ju kot neobvezna.paramje vednonull. - Ko se tok začne, je status že
200. Napaka nato prispe kot okvir napake znotraj toka. - Vsak odgovor z napako vsebuje glavo
x-request-id.
| Stanje | Vrsta | Kdaj |
|---|---|---|
400 | invalid_request_error | Telo ni veljaven JSON, id modela je neznan ali model ne sprejema vrste vhoda, ki ste jo poslali. |
401 | authentication_error | Ključ manjka ali ni veljaven. |
404 | not_found_error | Pot ne obstaja. |
405 | api_error | Pot obstaja, metoda je napačna. |
413 | invalid_request_error | Telo je večje od 32 MiB. |
415 | invalid_request_error | Content-Type ni application/json. |
422 | invalid_request_error | Polje ima napačen tip JSON ali manjka obvezno polje. |
429 | rate_limit_error | Stanje ne pokrije zahtevka, v minuti je prispelo več kot 120 zahtevkov, klici Shannon Coder v oknu so porabljeni ali pa je model zaseden. Sporočilo pove, kaj od tega. |
5xx | api_error | Status 500, 502, 503 ali 504: zahtevek je bil veljaven, vendar nanj ni bilo mogoče odgovoriti. Pošljite ga znova. 500 lahko nosi tip server_error. |
Obračun in stanje
- Na račun je eno stanje, klepet in API pa ga delita: najprej današnja dnevna kvota paketa, nato kupljeni kredit. API nima lastne kvote.
- Zahtevek rezervira svoj izhodni proračun (
max_tokens, privzeto 4,096) in mu je nato obračunano toliko tokenov, kolikor jih je res porabil, po ceni modela. - Vsak odgovor v
usagesporoča števila tokenov. Stran Ključi in poraba prikazuje stanje in strošek vsakega zahtevka. - Vsak zahtevek se obravnava enako. Edina omejitev hitrosti zahtevkov je zaščita pred poplavo: 120 zahtevkov na minuto na račun. Zahtevki, poslani vzporedno, čakajo v vrsti.
Omejitve in stanje Modeli in cene Ključi in poraba
Polja, ki so odvisna od modela
Vsak model sprejme isti zahtevek. Nekaj polj učinkuje samo pri nekaterih modelih; tabela navaja, pri katerih. Strani s končnimi točkami navajajo vsa polja.
| Polje | Opis | Uporabljajo |
|---|---|---|
system | Navodila za model: sporočilo system pri Chat Completions, system pri Messages, instructions pri Responses. | Gostovani modeli z odprtimi utežmi, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | Temperatura vzorčenja. | Gostovani modeli z odprtimi utežmi, shannon-1.6-*, shannon-coder-1 |
top_p | Jedrno vzorčenje (nucleus sampling). | Gostovani modeli z odprtimi utežmi |
seed | Stalno seme za vzorčenje. | Gostovani modeli z odprtimi utežmi |
stop | Do 4 zaporedja za ustavitev. | Gostovani modeli z odprtimi utežmi |
reasoning_effort | Koliko model razmišlja, preden odgovori. reasoning.effort pri Responses, thinking pri Messages. | Gostovani modeli z odprtimi utežmi |
web_search | true modelu dovoli iskanje po spletu za ta zahtevek. Polje tega API-ja, pri Chat Completions in Messages. | Modeli Shannon razen shannon-coder-1 |
max_tokens | Izhodni proračun. Pri vsakem modelu določa znesek, rezerviran z vašega stanja. | Kot omejitev dolžine odgovora: gostovani modeli z odprtimi utežmi, shannon-1.6-*, shannon-coder-1 |
Če prihajate iz SDK-ja OpenAI
- Osnovni URL nastavite na
https://api.shannon-ai.com/v1, ključ pa na svoj ključ Shannon. Klici Chat Completions in Responses nato z SDK delujejo takoj. modelmora biti id Shannon. Na ime modela drugega ponudnika, na primergpt-4o, se odgovori z400inunknown model.- Razmišljanje pride v lastnem polju:
reasoning_contentobcontent, v sporočilu in v delta kosih toka. - Tok vedno nosi
usagev zadnjem kosu, skupaj sfinish_reason. - Klic orodja v toku prispe kot en kos s popolnim nizom
arguments. - Odgovor ima eno izbiro (choice).
- Na poti API-ja OpenAI, ki jih ni v zgornji tabeli, na primer
/v1/embeddings, se odgovori z404.
Če prihajate iz SDK-ja Anthropic
- Osnovni URL nastavite na
https://api.shannon-ai.com, brez/v1, ključ pa na svoj ključ Shannon. SDK ga pošlje kotx-api-key. modelmora biti id Shannon.max_tokensje pri tem API-ju neobvezen. Privzeto je 4,096.- Odgovor vsebuje bloke vsebine tipov
thinking,textintool_use. Prvi blok ni vedno besedilo: bloke izbirajte potype. stop_reasonjeend_turnalitool_use. Tok modela Shannon se lahko konča tudi zmax_tokens.anthropic-versioninanthropic-betasta sprejeta, zato SDK deluje nespremenjen. Zahtevek ju ne potrebuje.- Napake na
/v1/messagesimajo obliko Anthropic:{"type": "error", "error": {…}}.
Orodja za programiranje, ki govorijo te formate, se nastavijo enako: osnovni URL, ključ in id Shannon kot model. Orodja CLI za programiranje