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.
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
POSTay 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 ng400. - Ang
modelay 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.
| Sinusuri, sa pagkakasunod na ito | Status kapag nabigo |
|---|---|
| API key | 401 |
| Body: laki, content type, JSON, mga type ng field | 413 · 415 · 400 · 422 |
| Model id | 400 |
| Flood protection: 120 request kada minuto kada account | 429 |
| Balance: dapat kasya ang output budget ng request | 429 |
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"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Basahin ang
typeatmessage. Naroroon lamang angcodeatparamsa ilang error: ituring silang opsyonal. Angparamay palagingnull. - Pagkatapos magsimula ang stream,
200na 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. |
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 |
Kung galing ka sa OpenAI SDK
- I-set ang base URL sa
https://api.shannon-ai.com/v1at 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 nggpt-4o, ay sinasagot ng400atunknown model. - May sariling field ang reasoning:
reasoning_contentkatabi ngcontent, sa message at sa mga stream delta. - Palaging may dalang
usageang stream sa huling chunk nito, kasama angfinish_reason. - Ang tool call sa isang stream ay dumarating bilang isang chunk na may kumpletong
argumentsstring. - Isang choice ang reply.
- Ang mga path ng OpenAI API na wala sa talahanayan sa itaas, gaya ng
/v1/embeddings, ay sinasagot ng404.
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 bilangx-api-key. - Dapat Shannon id ang
model. - Opsyonal ang
max_tokenssa API na ito. 4,096 ang default nito. - Ang reply ay may mga content block na type na
thinking,textattool_use. Hindi laging text ang unang block: pumili ng mga block ayon satype. - Ang
stop_reasonayend_turnotool_use. Ang stream ng Shannon model ay maaari ring magtapos samax_tokens. - Tinatanggap ang
anthropic-versionatanthropic-beta, kaya gumagana nang walang pagbabago ang SDK. Hindi kailangan ng request ang mga ito. - Ang mga error sa
/v1/messagesay 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