Preskoči na sadržaj
Pregled

Pregled

Karta API-ja: svaki endpoint, kako izgledaju zahtjev i greška, kako se pozivi plaćaju i što trebate znati ako dolazite iz OpenAI ili Anthropic SDK-a.

Endpointi

Svaki endpoint nalazi se pod jednim base URL-om i poslužuje se preko HTTPS-a.

Base URL
https://api.shannon-ai.com
Endpoint Format Za što služi
POST /v1/chat/completions OpenAI Chat Completions Pošaljite razgovor, dobijte sljedeći odgovor. Sa streamingom ili bez njega.
POST /v1/messages Anthropic Messages Isto, u oblicima zahtjeva i odgovora Anthropic SDK-ova.
POST /v1/responses OpenAI Responses Isto, u oblicima Responses. Endpoint ne čuva stanje: šaljite razgovor sa svakim zahtjevom.
GET /v1/models OpenAI popis modela Popis modela s kontekstnim prozorom, cijenama i mogućnostima. Ne treba ključ.
POST /v1/tokenize Shannon API Brojite tokene teksta ili chat zahtjeva za hostirani open-weight model. Besplatno.
POST /v1/messages/count_tokens Anthropic brojanje tokena Brojite ulazne tokene zahtjeva Messages za hostirani open-weight model. Besplatno.

Tri endpointa koja proizvode tekst dosežu iste modele. Odaberite onaj čiji format vaš kod već koristi.

Osnove zahtjeva

Zaglavlje Opis
Authorization: Bearer <key> Vaš API ključ. Obavezan na svakom endpointu osim GET /v1/models, osim ako šaljete x-api-key.
x-api-key: <key> Isti ključ u zaglavlju koje šalju Anthropic SDK-ovi. Čita se na svakom endpointu.
Content-Type: application/json Obavezno na svakom POST zahtjevu. Bez njega je odgovor 415.
x-request-id: <your id> Neobavezno. Vaš vlastiti id zahtjeva; vraća se u zaglavlju odgovora x-request-id. Bez njega API stvara id od 12 heksadecimalnih znakova.
  • Tijelo svakog POST zahtjeva je jedan JSON objekt, do 32 MiB.
  • Polje koje API ne poznaje ne uzrokuje grešku i nema učinka. Zahtjev napisan za drugog pružatelja ne uspijeva zbog dodatnog polja.
  • Na poznato polje s pogrešnim JSON tipom ili na izostavljeno obavezno polje odgovara se s 422. Na tijelo koje nije valjani JSON odgovara se s 400.
  • model je jedan od id-ova na stranici Modeli i cijene. Velika i mala slova nisu važna.

Odgovor je JSON ili stream server-sent događaja kada zahtjev postavi stream na true. Svaki endpoint odgovara u svom formatu. Svaki odgovor ima zaglavlje x-request-id.

Što zahtjev prolazi

Zahtjev se provjerava fiksnim redoslijedom prije nego se pokrene model. Odgovara prva provjera koja ne uspije, pa vam 401 još ništa ne govori o tijelu.

Oblik greške

Greška je JSON objekt s poljem error koje sadrži type i message. /v1/messages ga umata onako kako Anthropic SDK-ovi očekuju; svaka druga putanja koristi OpenAI oblik.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Čitajte type i message. code i param prisutni su samo kod nekih grešaka: tretirajte ih kao neobavezne. param je uvijek null.
  • Nakon što stream počne, status je već 200. Greška tada stiže kao okvir greške unutar streama.
  • Svaki odgovor s greškom nosi zaglavlje x-request-id.
Status Tip Kada
400 invalid_request_error Tijelo nije valjani JSON, id modela je nepoznat ili model ne prima vrstu ulaza koju ste poslali.
401 authentication_error Ključ nedostaje ili nije valjan.
404 not_found_error Putanja ne postoji.
405 api_error Putanja postoji, ali metoda je pogrešna.
413 invalid_request_error Tijelo je veće od 32 MiB.
415 invalid_request_error Content-Type nije application/json.
422 invalid_request_error Polje ima pogrešan JSON tip ili obavezno polje nedostaje.
429 rate_limit_error Stanje ne pokriva zahtjev, u minuti je stiglo više od 120 zahtjeva, Shannon Coder pozivi prozora su potrošeni ili je model zauzet. Poruka kaže što je od toga.
5xx api_error Status 500, 502, 503 ili 504: zahtjev je bio valjan, ali nije mogao biti odgovoren. Pošaljite ga ponovno. 500 može nositi tip server_error.

Upravljanje greškama

Naplata i stanje

  • Postoji jedno stanje po računu, a chat i API ga dijele: prvo današnji dopušteni iznos plana, zatim kupljeni kredit. API nema vlastitu kvotu.
  • Zahtjev rezervira svoj izlazni proračun (max_tokens, zadano 4,096), a zatim se naplaćuje za tokene koje je stvarno iskoristio, po cijeni modela.
  • Svaki odgovor prijavljuje svoje brojeve tokena u usage. Stranica Ključevi i upotreba prikazuje stanje i koliko je koštao svaki zahtjev.
  • Svaki zahtjev se poslužuje jednako. Jedino ograničenje učestalosti zahtjeva je flood protection: 120 zahtjeva u minuti po računu. Zahtjevi poslani paralelno čekaju u redu.

Ograničenja i stanje Modeli i cijene Ključevi i upotreba

Polja koja ovise o modelu

Svaki model prima isti zahtjev. Nekoliko polja djeluje samo na nekim modelima; tablica navodi na kojima. Stranice endpointa navode svako polje.

Polje Opis Primjenjuju
system Upute za model: poruka system na Chat Completions, system na Messages, instructions na Responses. Hostirani open-weight modeli, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Temperatura uzorkovanja. Hostirani open-weight modeli, shannon-1.6-*, shannon-coder-1
top_p Nucleus uzorkovanje. Hostirani open-weight modeli
seed Fiksni seed za uzorkovanje. Hostirani open-weight modeli
stop Do 4 stop sekvence. Hostirani open-weight modeli
reasoning_effort Koliko model razmišlja prije nego odgovori. reasoning.effort na Responses, thinking na Messages. Hostirani open-weight modeli
web_search true dopušta modelu da za ovaj zahtjev pretražuje web. Polje ovog API-ja, na Chat Completions i Messages. Shannon modeli osim shannon-coder-1
max_tokens Izlazni proračun. Na svakom modelu određuje iznos rezerviran sa vašeg stanja. Kao ograničenje duljine odgovora: hostirani open-weight modeli, shannon-1.6-*, shannon-coder-1

Chat Completions

Dolazite iz OpenAI SDK-a

  • Postavite base URL na https://api.shannon-ai.com/v1, a ključ na svoj Shannon ključ. Pozivi Chat Completions i Responses tada rade sa SDK-om bez izmjena.
  • model mora biti Shannon id. Na naziv modela drugog pružatelja, poput gpt-4o, odgovara se s 400 i unknown model.
  • Razmišljanje dolazi u zasebnom polju: reasoning_content pokraj content, u poruci i u delta zapisima streama.
  • Stream uvijek nosi usage u svom zadnjem chunku, zajedno s finish_reason.
  • Poziv alata u streamu stiže kao jedan chunk s potpunim nizom arguments.
  • Odgovor ima jedan izbor.
  • Na putanje OpenAI API-ja kojih nema u gornjoj tablici, poput /v1/embeddings, odgovara se s 404.

Dolazite iz Anthropic SDK-a

  • Postavite base URL na https://api.shannon-ai.com, bez /v1, a ključ na svoj Shannon ključ. SDK ga šalje kao x-api-key.
  • model mora biti Shannon id.
  • max_tokens je na ovom API-ju neobavezan. Zadana vrijednost je 4,096.
  • Odgovor sadrži blokove sadržaja tipa thinking, text i tool_use. Prvi blok nije uvijek tekst: blokove birajte prema type.
  • stop_reason je end_turn ili tool_use. Stream Shannon modela može završiti i s max_tokens.
  • anthropic-version i anthropic-beta se prihvaćaju, pa SDK radi nepromijenjen. Zahtjev ih ne treba.
  • Greške na /v1/messages imaju Anthropic oblik: {"type": "error", "error": {…}}.

Alati za programiranje koji govore ove formate postavljaju se na isti način: base URL, ključ i Shannon id kao model. CLI alati za kodiranje