Lumaktaw sa nilalaman
Pangkalahatang-ideya

Pangkalahatang-ideya

Ang mapa ng API: bawat endpoint, kung ano ang hitsura ng request at error, kung paano binabayaran ang mga call, at ang dapat mong malaman kapag galing ka sa OpenAI o Anthropic SDK.

Mga endpoint

Nasa ilalim ng iisang base URL ang bawat endpoint at inihahatid sa HTTPS.

Base URL
https://api.shannon-ai.com
Endpoint Format Para saan ito
POST /v1/chat/completions OpenAI Chat Completions Magpadala ng conversation, kunin ang susunod na sagot. May streaming man o wala.
POST /v1/messages Anthropic Messages Pareho, sa mga hugis ng request at reply ng mga Anthropic SDK.
POST /v1/responses OpenAI Responses Pareho, sa mga hugis ng Responses. Walang itinatagong state ang endpoint: ipadala ang conversation sa bawat request.
GET /v1/models Listahan ng model ng OpenAI Ilista ang mga model kasama ang context window, presyo at kakayahan. Walang key na kailangan.
POST /v1/tokenize Shannon API Bilangin ang tokens ng isang text o ng chat request para sa hosted open-weight model. Libre.
POST /v1/messages/count_tokens Anthropic token count Bilangin ang input tokens ng Messages request para sa hosted open-weight model. Libre.

Naaabot ng tatlong endpoint na gumagawa ng text ang parehong mga model. Piliin ang may format na ginagamit na ng iyong code.

Mga batayan ng request

Header Paglalarawan
Authorization: Bearer <key> Ang iyong API key. Kinakailangan sa bawat endpoint maliban sa GET /v1/models, maliban kung magpadala ka ng x-api-key.
x-api-key: <key> Ang parehong key sa header na ipinapadala ng mga Anthropic SDK. Binabasa sa bawat endpoint.
Content-Type: application/json Kinakailangan sa bawat POST. Kung wala ito, ang reply ay 415.
x-request-id: <your id> Opsyonal. Ang sarili mong id para sa request; bumabalik ito sa reply header na x-request-id. Kung wala ito, gumagawa ang API ng isang may 12 hexadecimal na character.
  • Ang body ng bawat POST ay isang JSON object, hanggang 32 MiB.
  • Ang field na hindi kilala ng API ay hindi nagdudulot ng error at walang bisa. Ang request na isinulat para sa ibang provider ay hindi nabibigo dahil sa sobrang field.
  • Ang kilalang field na may maling JSON type, o nawawalang kinakailangang field, ay sinasagot ng 422. Ang body na hindi valid na JSON ay sinasagot ng 400.
  • Ang model ay isa sa mga id sa Mga model at presyo. Hindi mahalaga ang malaki o maliit na titik.

Ang reply ay JSON, o isang stream ng server-sent events kapag itinakda ng request ang stream sa true. Sumasagot ang bawat endpoint sa sarili nitong format. Bawat reply ay may header na x-request-id.

Ano ang pinagdadaanan ng request

Sinusuri ang request sa nakapirming pagkakasunod bago tumakbo ang model. Ang unang pagsusuring mabigo ang sasagot, kaya wala pang sinasabi ang 401 tungkol sa body.

Hugis ng error

Ang error ay isang JSON object na may error na naglalaman ng type at message. Binabalot ito ng /v1/messages sa paraang inaasahan ng mga Anthropic SDK; ang bawat ibang path ay gumagamit ng hugis ng OpenAI.

{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: gpt-4o"
  }
}
  • Basahin ang type at message. Naroroon lamang ang code at param sa ilang error: ituring silang opsyonal. Ang param ay palaging null.
  • Pagkatapos magsimula ang stream, 200 na ang status. Ang pagkabigo ay dumarating bilang error frame sa loob ng stream.
  • Bawat error reply ay may dalang header na x-request-id.
Status Type Kailan
400 invalid_request_error Hindi valid na JSON ang body, hindi kilala ang model id, o hindi tinatanggap ng model ang uri ng input na ipinadala mo.
401 authentication_error Nawawala o hindi valid ang key.
404 not_found_error Hindi umiiral ang path.
405 api_error Umiiral ang path, mali ang method.
413 invalid_request_error Mas malaki sa 32 MiB ang body.
415 invalid_request_error Hindi application/json ang Content-Type.
422 invalid_request_error Mali ang JSON type ng isang field o nawawala ang isang kinakailangang field.
429 rate_limit_error Hindi sapat ang balance para sa request, higit sa 120 request ang dumating sa loob ng isang minuto, naubos ang Shannon Coder calls ng window, o abala ang model. Sinasabi ng mensahe kung alin.
5xx api_error Status na 500, 502, 503 o 504: valid ang request at hindi ito nasagot. Ipadala muli. Ang 500 ay maaaring may type na server_error.

Paghawak ng Error

Billing at balance

  • Isang balance kada account, at pinaghahatian ito ng chat at API: unang plan allowance ngayong araw, saka ang biniling credit. Walang sariling quota ang API.
  • Itinatabi ng request ang output budget nito (max_tokens, default na 4,096) at pagkatapos ay sinisingil para sa mga token na aktuwal nitong nagamit, sa presyo ng model.
  • Iniuulat ng bawat reply ang bilang ng token nito sa usage. Ipinapakita ng pahinang Keys & usage ang balance at kung magkano ang naging halaga ng bawat request.
  • Pantay na pinagsisilbihan ang bawat request. Ang tanging limitasyon sa bilis ng request ay ang flood protection: 120 request kada minuto kada account. Ang mga request na sabay-sabay na ipinadala ay naghihintay sa pila.

Mga limitasyon at balance Mga model at presyo Keys & usage

Mga field na nakadepende sa model

Iisang request ang tinatanggap ng bawat model. Ilang field ay may bisa lamang sa ilang model; pinangangalanan ng talahanayan kung saan. Inililista ng mga pahina ng endpoint ang bawat field.

Field Paglalarawan Ina-apply ng
system Mga tagubilin para sa model: isang system message sa Chat Completions, system sa Messages, instructions sa Responses. Mga hosted open-weight model, shannon-1.6-*, shannon-2-*, shannon-coder-1
temperature Sampling temperature. Mga hosted open-weight model, shannon-1.6-*, shannon-coder-1
top_p Nucleus sampling. Mga hosted open-weight model
seed Isang nakapirming seed para sa sampling. Mga hosted open-weight model
stop Hanggang 4 na stop sequence. Mga hosted open-weight model
reasoning_effort Gaano karami ang pag-reason ng model bago sumagot. reasoning.effort sa Responses, thinking sa Messages. Mga hosted open-weight model
web_search Hinahayaan ng true ang model na mag-search sa web para sa request na ito. Isang field ng API na ito, sa Chat Completions at Messages. Mga Shannon model maliban sa shannon-coder-1
max_tokens Ang output budget. Sa bawat model, itinatakda nito ang halagang itinatabi mula sa iyong balance. Bilang limitasyon sa haba ng sagot: mga hosted open-weight model, shannon-1.6-*, shannon-coder-1

Chat Completions

Kung galing ka sa OpenAI SDK

  • I-set ang base URL sa https://api.shannon-ai.com/v1 at ang key sa iyong Shannon key. Gagana na ang mga call ng Chat Completions at Responses sa SDK nang walang pagbabago.
  • Dapat Shannon id ang model. Ang pangalan ng model ng ibang provider, gaya ng gpt-4o, ay sinasagot ng 400 at unknown model.
  • May sariling field ang reasoning: reasoning_content katabi ng content, sa message at sa mga stream delta.
  • Palaging may dalang usage ang stream sa huling chunk nito, kasama ang finish_reason.
  • Ang tool call sa isang stream ay dumarating bilang isang chunk na may kumpletong arguments string.
  • Isang choice ang reply.
  • Ang mga path ng OpenAI API na wala sa talahanayan sa itaas, gaya ng /v1/embeddings, ay sinasagot ng 404.

Kung galing ka sa Anthropic SDK

  • I-set ang base URL sa https://api.shannon-ai.com, na walang /v1, at ang key sa iyong Shannon key. Ipinapadala ito ng SDK bilang x-api-key.
  • Dapat Shannon id ang model.
  • Opsyonal ang max_tokens sa API na ito. 4,096 ang default nito.
  • Ang reply ay may mga content block na type na thinking, text at tool_use. Hindi laging text ang unang block: pumili ng mga block ayon sa type.
  • Ang stop_reason ay end_turn o tool_use. Ang stream ng Shannon model ay maaari ring magtapos sa max_tokens.
  • Tinatanggap ang anthropic-version at anthropic-beta, kaya gumagana nang walang pagbabago ang SDK. Hindi kailangan ng request ang mga ito.
  • Ang mga error sa /v1/messages ay may hugis ng Anthropic: {"type": "error", "error": {…}}.

Ganito rin ise-set up ang mga coding tool na gumagamit ng mga format na ito: base URL, key, at isang Shannon id bilang model. Mga CLI coding tool