Apžvalga
API žemėlapis: kiekvienas galinis taškas, kaip atrodo užklausa ir klaida, kaip mokama už kreipinius ir ką žinoti, kai ateinate iš OpenAI ar Anthropic SDK.
Galiniai taškai
Kiekvienas galinis taškas yra po vienu baziniu URL ir aptarnaujamas per HTTPS.
https://api.shannon-ai.com | Galutinis taškas | Formatas | Kam skirta |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | Siųskite pokalbį, gaukite kitą atsakymą. Su srautiniu perdavimu arba be jo. |
POST /v1/messages | Anthropic Messages | Tas pats, Anthropic SDK užklausos ir atsakymo formomis. |
POST /v1/responses | OpenAI Responses | Tas pats, Responses formomis. Galinis taškas būsenos nesaugo: pokalbį siųskite su kiekviena užklausa. |
GET /v1/models | OpenAI modelių sąrašas | Modelių sąrašas su konteksto langu, kainomis ir galimybėmis. Rakto nereikia. |
POST /v1/tokenize | Shannon API | Suskaičiuokite teksto arba pokalbio užklausos tokenus talpinamam atvirų svorių modeliui. Nemokama. |
POST /v1/messages/count_tokens | Anthropic tokenų skaičiavimas | Suskaičiuokite Messages užklausos įvesties tokenus talpinamam atvirų svorių modeliui. Nemokama. |
Trys tekstą kuriantys galiniai taškai pasiekia tuos pačius modelius. Rinkitės tą, kurio formatą jūsų kodas jau naudoja.
Užklausų pagrindai
| Antraštė | Aprašymas |
|---|---|
Authorization: Bearer <key> | Jūsų API raktas. Privalomas kiekviename galiniame taške, išskyrus GET /v1/models, nebent siunčiate x-api-key. |
x-api-key: <key> | Tas pats raktas antraštėje, kurią siunčia Anthropic SDK. Skaitoma kiekviename galiniame taške. |
Content-Type: application/json | Privaloma kiekvienam POST. Be jos atsakymas yra 415. |
x-request-id: <your id> | Neprivaloma. Jūsų paties užklausos id; jis grįžta atsakymo antraštėje x-request-id. Be jo API sukuria 12 šešioliktainių simbolių id. |
- Kiekvieno
POSTturinys yra vienas JSON objektas, iki 32 MiB. - Laukas, kurio API nežino, klaidos nesukelia ir neturi poveikio. Kitam tiekėjui parašyta užklausa dėl papildomo lauko nepavyksta.
- Į žinomą lauką su netinkamu JSON tipu arba trūkstamą privalomą lauką atsakoma
422. Į turinį, kuris nėra tinkamas JSON, atsakoma400. modelyra vienas iš puslapio Modeliai ir kainos id. Didžiosios ir mažosios raidės neturi reikšmės.
Atsakymas yra JSON arba serverio siunčiamų įvykių srautas, kai užklausoje stream nustatyta į true. Kiekvienas galinis taškas atsako savo formatu. Kiekvienas atsakymas turi antraštę x-request-id.
Ką užklausa praeina
Prieš paleidžiant modelį užklausa tikrinama nustatyta tvarka. Atsako pirmoji nepavykusi patikra, todėl 401 dar nieko nesako apie turinį.
| Tikrinama šia tvarka | Būsena nepavykus |
|---|---|
| API raktas | 401 |
| Turinys: dydis, turinio tipas, JSON, laukų tipai | 413 · 415 · 400 · 422 |
| Modelio id | 400 |
| Apsauga nuo užplūdimo: 120 užklausų per minutę vienai paskyrai | 429 |
| Balansas: užklausos išvesties biudžetas turi tilpti | 429 |
Klaidos forma
Klaida yra JSON objektas su error, kuriame yra type ir message. /v1/messages jį apgaubia taip, kaip tikisi Anthropic SDK; visi kiti keliai naudoja OpenAI formą.
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Skaitykite
typeirmessage.codeirparamyra tik kai kuriose klaidose: laikykite juos neprivalomais.paramvisada yranull. - Kai srautas jau prasidėjo, būsena jau yra
200. Tada nesėkmė ateina kaip klaidos kadras sraute. - Kiekviename klaidos atsakyme yra antraštė
x-request-id.
| Būsena | Tipas | Kada |
|---|---|---|
400 | invalid_request_error | Turinys nėra tinkamas JSON, modelio id nežinomas arba modelis nepriima jūsų išsiųsto įvesties tipo. |
401 | authentication_error | Rakto nėra arba jis netinkamas. |
404 | not_found_error | Tokio kelio nėra. |
405 | api_error | Kelias yra, metodas netinkamas. |
413 | invalid_request_error | Turinys didesnis nei 32 MiB. |
415 | invalid_request_error | Content-Type nėra application/json. |
422 | invalid_request_error | Laukas turi netinkamą JSON tipą arba trūksta privalomo lauko. |
429 | rate_limit_error | Balansas nepadengia užklausos, per minutę atvyko daugiau nei 120 užklausų, lango Shannon Coder kreipiniai išnaudoti arba modelis užimtas. Pranešime nurodoma, kuris atvejis. |
5xx | api_error | Būsena 500, 502, 503 arba 504: užklausa buvo tinkama, bet atsakyti į ją nepavyko. Siųskite dar kartą. 500 gali turėti tipą server_error. |
Apmokėjimas ir balansas
- Kiekviena paskyra turi vieną balansą, kurį dalijasi pokalbis ir API: pirmiausia šiandienos plano limitas, paskui nupirktas kreditas. API savo kvotos neturi.
- Užklausa rezervuoja savo išvesties biudžetą (
max_tokens, numatytasis 4,096), o paskui apmokestinama už tikrai panaudotus tokenus pagal modelio kainą. - Kiekvienas atsakymas
usagepateikia savo tokenų skaičių. Puslapyje Raktai ir naudojimas matyti balansas ir tai, kiek kainavo kiekviena užklausa. - Kiekviena užklausa aptarnaujama vienodai. Vienintelė užklausų dažnio riba yra apsauga nuo užplūdimo: 120 užklausų per minutę vienai paskyrai. Lygiagrečiai siunčiamos užklausos laukia eilėje.
Ribos ir balansas Modeliai ir kainos Raktai ir naudojimas
Laukai, priklausantys nuo modelio
Kiekvienas modelis priima tą pačią užklausą. Keli laukai veikia tik kai kuriuose modeliuose; lentelėje nurodyta, kuriuose. Visi laukai išvardyti galinių taškų puslapiuose.
| Laukas | Aprašymas | Taiko |
|---|---|---|
system | Nurodymai modeliui: system pranešimas kelyje Chat Completions, system kelyje Messages, instructions kelyje Responses. | Talpinami atvirų svorių modeliai, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | Atrankos temperatūra. | Talpinami atvirų svorių modeliai, shannon-1.6-*, shannon-coder-1 |
top_p | Branduolio atranka. | Talpinami atvirų svorių modeliai |
seed | Fiksuota atrankos sėkla. | Talpinami atvirų svorių modeliai |
stop | Iki 4 sustojimo sekų. | Talpinami atvirų svorių modeliai |
reasoning_effort | Kiek modelis mąsto prieš atsakydamas. reasoning.effort kelyje Responses, thinking kelyje Messages. | Talpinami atvirų svorių modeliai |
web_search | true leidžia modeliui šiai užklausai ieškoti internete. Šio API laukas, kelyje Chat Completions ir Messages. | Shannon modeliai, išskyrus shannon-coder-1 |
max_tokens | Išvesties biudžetas. Kiekviename modelyje jis nustato iš jūsų balanso rezervuojamą sumą. | Kaip atsakymo ilgio riba: talpinami atvirų svorių modeliai, shannon-1.6-*, shannon-coder-1 |
Jei ateinate iš OpenAI SDK
- Bazinį URL nustatykite į
https://api.shannon-ai.com/v1, o raktą – į savo Shannon raktą. Tada Chat Completions ir Responses kreipiniai su SDK veikia tokie, kokie yra. modelturi būti Shannon id. Kito tiekėjo modelio pavadinimas, pavyzdžiui,gpt-4o, atsakomas400irunknown model.- Mąstymas ateina savo lauke:
reasoning_contentšaliacontent, pranešime ir srauto delta. - Srautas visada pateikia
usagepaskutiniame gabale, kartu sufinish_reason. - Įrankio kreipinys sraute ateina vienu gabalu su visa
argumentseilute. - Atsakyme yra vienas pasirinkimas.
- OpenAI API keliai, kurių nėra aukščiau esančioje lentelėje, pavyzdžiui,
/v1/embeddings, atsakomi404.
Jei ateinate iš Anthropic SDK
- Bazinį URL nustatykite į
https://api.shannon-ai.com, be/v1, o raktą – į savo Shannon raktą. SDK siunčia jį kaipx-api-key. modelturi būti Shannon id.max_tokensšiame API neprivalomas. Numatytoji reikšmė yra 4,096.- Atsakyme yra turinio blokų tipų
thinking,textirtool_use. Pirmasis blokas ne visada yra tekstas: blokus rinkitės pagaltype. stop_reasonyraend_turnarbatool_use. Shannon modelio srautas gali baigtis ir sumax_tokens.anthropic-versioniranthropic-betapriimami, todėl SDK veikia nepakeistas. Užklausai jų nereikia.- Klaidos kelyje
/v1/messagesturi Anthropic formą:{"type": "error", "error": {…}}.
Programavimo įrankiai, kalbantys šiais formatais, nustatomi taip pat: bazinis URL, raktas ir Shannon id kaip modelis. CLI programavimo įrankiai