Preskoči na sadržaj
Pregled

Pregled

Mapa API-ja: svaki endpoint, kako izgledaju zahtev i greška, kako se pozivi plaćaju i šta treba znati kada dolazite iz OpenAI ili Anthropic SDK-a.

Endpointi

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

Osnovni URL
https://api.shannon-ai.com
Endpoint Format Čemu služi
POST /v1/chat/completions OpenAI Chat Completions Pošaljite razgovor, dobijte sledeći odgovor. Sa streamingom ili bez.
POST /v1/messages Anthropic Messages Isto, u oblicima zahteva i odgovora Anthropic SDK-ova.
POST /v1/responses OpenAI Responses Isto, u Responses oblicima. Endpoint ne čuva stanje: šaljite razgovor uz svaki zahtev.
GET /v1/models OpenAI lista modela Navedite modele sa kontekstnim prozorom, cenama i mogućnostima. Ne traži ključ.
POST /v1/tokenize Shannon API Izbrojte tokene teksta ili čet zahteva za hostovani open-weight model. Besplatno.
POST /v1/messages/count_tokens Anthropic brojanje tokena Izbrojte ulazne tokene Messages zahteva za hostovani open-weight model. Besplatno.

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

Osnove zahteva

Zaglavlje Opis
Authorization: Bearer <key> Vaš API ključ. Obavezan na svakom endpointu osim GET /v1/models, osim ako ne š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. Bez njega je odgovor 415.
x-request-id: <your id> Opciono. Vaš sopstveni id zahteva; vraća se u zaglavlju odgovora x-request-id. Bez njega API pravi jedan od 12 heksadecimalnih znakova.
  • Telo svakog POST je jedan JSON objekat, do 32 MiB.
  • Polje koje API ne poznaje ne izaziva grešku i nema efekta. Zahtev napisan za drugog provajdera ne ruši se zbog viška polja.
  • Na poznato polje sa pogrešnim JSON tipom, ili obavezno polje koje nedostaje, odgovara se sa 422. Na telo koje nije važeći JSON odgovara se sa 400.
  • model je jedan od id-jeva na stranici Modeli i cene. Velika i mala slova nisu važna.

Odgovor je JSON, ili stream server-sent events kada zahtev postavi stream na true. Svaki endpoint odgovara u svom formatu. Svaki odgovor ima zaglavlje x-request-id.

Šta zahtev prolazi

Zahtev se proverava fiksnim redom pre nego što model počne. Odgovara prva provera koja ne uspe, pa vam 401 još ništa ne govori o telu.

Oblik greške

Greška je JSON objekat sa error koji sadrži type i message. /v1/messages ga pakuje 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 na nekim greškama: tretirajte ih kao opcione. param je uvek null.
  • Nakon što stream počne, status je već 200. Greška tada stiže kao frame greške unutar streama.
  • Svaki odgovor sa greškom nosi zaglavlje x-request-id.
Status Tip Kada
400 invalid_request_error Telo nije važeći JSON, id modela je nepoznat ili model ne prima vrstu ulaza koju ste poslali.
401 authentication_error Ključ nedostaje ili nije važeći.
404 not_found_error Putanja ne postoji.
405 api_error Putanja postoji, metod je pogrešan.
413 invalid_request_error Telo 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 zahtev, u jednom minutu stiglo je više od 120 zahteva, Shannon Coder pozivi perioda su potrošeni ili je model zauzet. Poruka kaže šta je od toga.
5xx api_error Status 500, 502, 503 ili 504: zahtev je bio važeći i nije mogao da se odgovori. Pošaljite ga ponovo. 500 može nositi tip server_error.

Upravljanje greškama

Naplata i stanje

  • Postoji jedno stanje po nalogu, a čet i API ga dele: prvo današnji limit plana, zatim kupljeni kredit. API nema sopstvenu kvotu.
  • Zahtev rezerviše svoj izlazni budžet (max_tokens, podrazumevano 4,096), a zatim se naplaćuje za tokene koje je zaista iskoristio, po ceni modela.
  • Svaki odgovor prijavljuje svoje brojeve tokena u usage. Stranica Ključevi i upotreba prikazuje stanje i koliko je koštao svaki zahtev.
  • Svaki zahtev se opslužuje jednako. Jedino ograničenje brzine zahteva je zaštita od flooda: 120 zahteva u minuti po nalogu. Zahtevi poslati paralelno čekaju u redu.

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

Polja koja zavise od modela

Svaki model prima isti zahtev. Nekoliko polja ima efekat samo na nekim modelima; tabela navodi gde. Stranice endpointa navode svako polje.

Polje Opis Primenjuju
system Uputstva za model: poruka system na Chat Completions, system na Messages, instructions na Responses. Hostovani open-weight modeli, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Temperatura uzorkovanja. Hostovani open-weight modeli, shannon-1.6-*, shannon-coder-1
top_p Nucleus uzorkovanje. Hostovani open-weight modeli
seed Fiksni seed za uzorkovanje. Hostovani open-weight modeli
stop Do 4 stop sekvence. Hostovani open-weight modeli
reasoning_effort Koliko model rezonuje pre nego što odgovori. reasoning.effort na Responses, thinking na Messages. Hostovani open-weight modeli
web_search true dozvoljava modelu da pretraži web za ovaj zahtev. Polje ovog API-ja, na Chat Completions i Messages. Shannon modeli osim shannon-coder-1
max_tokens Izlazni budžet. Na svakom modelu određuje iznos rezervisan sa vašeg stanja. Kao ograničenje dužine odgovora: hostovani open-weight modeli, shannon-1.6-*, shannon-coder-1

Chat Completions

Dolazite iz OpenAI SDK-a

  • Postavite osnovni URL na https://api.shannon-ai.com/v1, a ključ na svoj Shannon ključ. Pozivi Chat Completions i Responses tada rade sa SDK-om takvim kakav jeste.
  • model mora biti Shannon id. Na ime modela drugog provajdera, kao što je gpt-4o, odgovara se sa 400 i unknown model.
  • Rezonovanje dolazi u posebnom polju: reasoning_content pored content, u poruci i u delta-ma streama.
  • Stream uvek nosi usage u svom poslednjem delu, zajedno sa finish_reason.
  • Poziv alata u streamu stiže kao jedan deo sa kompletnim stringom arguments.
  • Odgovor ima jedan izbor.
  • Putanje OpenAI API-ja koje nisu u tabeli iznad, kao što je /v1/embeddings, dobijaju odgovor 404.

Dolazite iz Anthropic SDK-a

  • Postavite osnovni 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 opcioni na ovom API-ju. Podrazumevano je 4,096.
  • Odgovor sadrži blokove sadržaja tipa thinking, text i tool_use. Prvi blok nije uvek tekst: birajte blokove po type.
  • stop_reason je end_turn ili tool_use. Stream Shannon modela može se završiti i sa max_tokens.
  • anthropic-version i anthropic-beta se prihvataju, pa SDK radi nepromenjen. Zahtev ih ne treba.
  • Greške na /v1/messages imaju Anthropic oblik: {"type": "error", "error": {…}}.

Alati za programiranje koji govore ove formate podešavaju se isto: osnovni URL, ključ i Shannon id kao model. CLI alati za programiranje