Kalo te përmbajtja
Përmbledhje

Përmbledhje

Harta e API-t: çdo endpoint, si duken një kërkesë dhe një gabim, si paguhen thirrjet, dhe çfarë duhet të dini kur vini nga një SDK OpenAI ose Anthropic.

Endpoint-et

Çdo endpoint ndodhet nën një URL bazë dhe shërbehet përmes HTTPS.

URL bazë
https://api.shannon-ai.com
Endpoint Formati Për çfarë shërben
POST /v1/chat/completions OpenAI Chat Completions Dërgoni një bisedë, merrni përgjigjen e radhës. Me ose pa streaming.
POST /v1/messages Anthropic Messages Njësoj, në format e kërkesës dhe përgjigjes së SDK-ve Anthropic.
POST /v1/responses OpenAI Responses Njësoj, në format Responses. Endpoint-i nuk mban gjendje: dërgoni bisedën me çdo kërkesë.
GET /v1/models Lista e modeleve OpenAI Listoni modelet me dritaren e kontekstit, çmimet dhe aftësitë. Nuk kërkon çelës.
POST /v1/tokenize Shannon API Numëroni tokens-at e një teksti ose të një kërkese bisede për një model open-weight të hostuar. Falas.
POST /v1/messages/count_tokens Numërim tokens-ash Anthropic Numëroni tokens-at e hyrjes së një kërkese Messages për një model open-weight të hostuar. Falas.

Të tri endpoint-et që prodhojnë tekst arrijnë të njëjtat modele. Zgjidhni atë, formatin e të cilit e përdor tashmë kodi juaj.

Bazat e kërkesës

Header Përshkrimi
Authorization: Bearer <key> Çelësi juaj API. I detyrueshëm në çdo endpoint përveç GET /v1/models, përveç nëse dërgoni x-api-key.
x-api-key: <key> I njëjti çelës në header-in që dërgojnë SDK-të Anthropic. Lexohet në çdo endpoint.
Content-Type: application/json I detyrueshëm në çdo POST. Pa të përgjigjja është 415.
x-request-id: <your id> Opsional. Id-ja juaj për kërkesën; kthehet në header-in e përgjigjes x-request-id. Pa të API-ja krijon një me 12 karaktere heksadecimale.
  • Trupi i çdo POST është një objekt JSON, deri në 32 MiB.
  • Një fushë që API-ja nuk e njeh nuk shkakton gabim dhe nuk ka efekt. Një kërkesë e shkruar për një ofrues tjetër nuk dështon për shkak të një fushe shtesë.
  • Një fushë e njohur me lloj JSON të gabuar, ose një fushë e detyrueshme që mungon, merr përgjigje 422. Një trup që nuk është JSON i vlefshëm merr përgjigje 400.
  • model është një nga id-të te Modelet dhe çmimet. Shkronjat e mëdha dhe të vogla nuk kanë rëndësi.

Një përgjigje është JSON, ose një stream server-sent events kur kërkesa vendos stream në true. Çdo endpoint përgjigjet në formatin e vet. Çdo përgjigje ka header-in x-request-id.

Çfarë kalon një kërkesë

Një kërkesë kontrollohet në një radhë të fiksuar para se të ekzekutohet një model. Kontrolli i parë që dështon përgjigjet, kështu që një 401 ende nuk ju tregon asgjë për trupin.

Forma e gabimit

Një gabim është një objekt JSON me një error që mban type dhe message. /v1/messages e mbështjell ashtu siç e presin SDK-të Anthropic; çdo rrugë tjetër përdor formën OpenAI.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Lexoni type dhe message. code dhe param janë të pranishme vetëm te disa gabime: trajtojini si opsionale. param është gjithmonë null.
  • Pasi një stream ka nisur, statusi është tashmë 200. Një dështim pastaj arrin si frame gabimi brenda stream-it.
  • Çdo përgjigje gabimi mban header-in x-request-id.
Statusi Lloji Kur
400 invalid_request_error Trupi nuk është JSON i vlefshëm, id-ja e modelit është e panjohur, ose modeli nuk e pranon një lloj hyrjeje që dërguat.
401 authentication_error Çelësi mungon ose nuk është i vlefshëm.
404 not_found_error Rruga nuk ekziston.
405 api_error Rruga ekziston, metoda është e gabuar.
413 invalid_request_error Trupi është më i madh se 32 MiB.
415 invalid_request_error Content-Type nuk është application/json.
422 invalid_request_error Një fushë ka lloj JSON të gabuar ose mungon një fushë e detyrueshme.
429 rate_limit_error Bilanci nuk e mbulon kërkesën, më shumë se 120 kërkesa arritën brenda një minute, thirrjet Shannon Coder të dritares janë shfrytëzuar, ose modeli është i zënë. Mesazhi thotë cila nga këto.
5xx api_error Statusi 500, 502, 503 ose 504: kërkesa ishte e vlefshme dhe nuk mund të merrte përgjigje. Dërgojeni përsëri. Një 500 mund të mbajë llojin server_error.

Trajtimi i gabimeve

Faturimi dhe bilanci

  • Ka një bilanc për llogari, dhe biseda e API e ndajnë: fillimisht kuota e planit për sot, pastaj krediti i blerë. API-ja nuk ka kuotë të vetën.
  • Një kërkesë rezervon buxhetin e saj të daljes (max_tokens, parazgjedhja 4,096) dhe pastaj faturohet për tokens-at që përdori realisht, me çmimin e modelit.
  • Çdo përgjigje i raporton numërimet e saj të tokens-ave te usage. Faqja Çelësat dhe përdorimi tregon bilancin dhe çfarë kushtoi çdo kërkesë.
  • Çdo kërkesë shërbehet njësoj. I vetmi kufi për shpejtësinë e kërkesave është mbrojtja nga vërshimi i kërkesave: 120 kërkesa në minutë për llogari. Kërkesat e dërguara paralelisht presin në radhë.

Kufijtë dhe bilanci Modelet dhe çmimet Çelësat dhe përdorimi

Fusha që varen nga modeli

Çdo model pranon të njëjtën kërkesë. Disa fusha vlejnë vetëm te disa modele; tabela tregon ku. Faqet e endpoint-eve listojnë çdo fushë.

Fusha Përshkrimi Zbatohet nga
system Udhëzime për modelin: një mesazh system te Chat Completions, system te Messages, instructions te Responses. Modele open-weight të hostuara, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Temperatura e kampionimit. Modele open-weight të hostuara, shannon-1.6-*, shannon-coder-1
top_p Kampionim nucleus. Modele open-weight të hostuara
seed Një seed i fiksuar për kampionim. Modele open-weight të hostuara
stop Deri në 4 stop sequences. Modele open-weight të hostuara
reasoning_effort Sa arsyeton modeli para se të përgjigjet. reasoning.effort te Responses, thinking te Messages. Modele open-weight të hostuara
web_search true e lë modelin të kërkojë në ueb për këtë kërkesë. Një fushë e këtij API-i, te Chat Completions dhe Messages. Modelet Shannon përveç shannon-coder-1
max_tokens Buxheti i daljes. Në çdo model cakton sasinë e rezervuar nga bilanci juaj. Si kufi i gjatësisë së përgjigjes: modelet open-weight të hostuara, shannon-1.6-*, shannon-coder-1

Chat Completions

Nëse vini nga një SDK OpenAI

  • Caktoni URL-në bazë në https://api.shannon-ai.com/v1 dhe çelësin në çelësin tuaj Shannon. Thirrjet Chat Completions dhe Responses pastaj funksionojnë me SDK-në siç është.
  • model duhet të jetë një id Shannon. Një emër modeli i një ofruesi tjetër, si gpt-4o, merr përgjigje 400 dhe unknown model.
  • Arsyetimi vjen në një fushë më vete: reasoning_content pranë content, në mesazh dhe në delta-t e stream-it.
  • Një stream mban gjithmonë usage në pjesën e fundit, së bashku me finish_reason.
  • Një thirrje mjeti në një stream arrin si një pjesë e vetme me stringun e plotë arguments.
  • Një përgjigje ka një choice.
  • Rrugët e API-t OpenAI që nuk janë në tabelën më sipër, si /v1/embeddings, marrin përgjigje 404.

Nëse vini nga një SDK Anthropic

  • Caktoni URL-në bazë në https://api.shannon-ai.com, pa /v1, dhe çelësin në çelësin tuaj Shannon. SDK-ja e dërgon si x-api-key.
  • model duhet të jetë një id Shannon.
  • max_tokens është opsional në këtë API. Parazgjedhja e tij është 4,096.
  • Një përgjigje mban blloqe përmbajtjeje të llojit thinking, text dhe tool_use. Blloku i parë nuk është gjithmonë teksti: zgjidhini blloqet sipas type.
  • stop_reason është end_turn ose tool_use. Një stream i një modeli Shannon mund të mbarojë edhe me max_tokens.
  • anthropic-version dhe anthropic-beta pranohen, kështu që SDK-ja funksionon pa ndryshime. Një kërkesë nuk ka nevojë për to.
  • Gabimet në /v1/messages kanë formën Anthropic: {"type": "error", "error": {…}}.

Mjetet e kodimit që flasin këto formate konfigurohen njësoj: URL bazë, çelës dhe një id Shannon si model. Mjete CLI për kodim