Superrigardo
La mapo de la API: ĉiu endpoint, kiel aspektas peto kaj eraro, kiel vokoj estas pagataj, kaj kion scii kiam vi venas el SDK de OpenAI aŭ Anthropic.
Endpoints
Ĉiu endpoint troviĝas sub unu baza URL kaj estas servata per HTTPS.
https://api.shannon-ai.com | Ĉuĵuŝpunkto | Formato | Por kio ĝi servas |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | Sendu konversacion, ricevu la sekvan respondon. Kun aŭ sen streaming. |
POST /v1/messages | Anthropic Messages | La sama, en la formoj de peto kaj respondo de la SDK de Anthropic. |
POST /v1/responses | OpenAI Responses | La sama, en la formoj de Responses. La endpoint ne konservas staton: sendu la konversacion kun ĉiu peto. |
GET /v1/models | Listo de modeloj de OpenAI | Listigu la modelojn kun kunteksta fenestro, prezoj kaj kapabloj. Ne bezonas ŝlosilon. |
POST /v1/tokenize | Shannon API | Kalkulu la tokenojn de teksto aŭ de babila peto por gastigita malfermpeza modelo. Senpaga. |
POST /v1/messages/count_tokens | Kalkulado de tokenoj de Anthropic | Kalkulu la enigajn tokenojn de peto Messages por gastigita malfermpeza modelo. Senpaga. |
La tri endpoints, kiuj produktas tekston, atingas la samajn modelojn. Elektu tiun, kies formaton via kodo jam uzas.
Bazoj de petoj
| Kapo | Priskribo |
|---|---|
Authorization: Bearer <key> | Via API-ŝlosilo. Deviga ĉe ĉiu endpoint krom GET /v1/models, krom se vi sendas x-api-key. |
x-api-key: <key> | La sama ŝlosilo en la kapo, kiun la SDK de Anthropic sendas. Legata ĉe ĉiu endpoint. |
Content-Type: application/json | Deviga ĉe ĉiu POST. Sen ĝi la respondo estas 415. |
x-request-id: <your id> | Laŭvola. Via propra id por la peto; ĝi revenas en la kapo de respondo x-request-id. Sen ĝi la API kreas unu el 12 deksesumaj signoj. |
- La korpo de ĉiu
POSTestas unu JSON-objekto, ĝis 32 MiB. - Kampo, kiun la API ne konas, kaŭzas neniun eraron kaj ne efikas. Peto verkita por alia provizanto ne malsukcesas pro kroma kampo.
- Konata kampo kun malĝusta JSON-tipo, aŭ mankanta deviga kampo, ricevas respondon
422. Korpo, kiu ne estas valida JSON, ricevas respondon400. modelestas unu el la id en Models & pricing. Majuskloj kaj minuskloj ne gravas.
Respondo estas JSON, aŭ fluo de server-sent events kiam la peto agordas stream al true. Ĉiu endpoint respondas en sia propra formato. Ĉiu respondo havas la kapon x-request-id.
Kion peto trapasas
Peto estas kontrolata en fiksa ordo antaŭ ol modelo funkcias. La unua kontrolo, kiu malsukcesas, respondas, do 401 ankoraŭ diras nenion pri la korpo.
| Kontrolata, en ĉi tiu ordo | Stato kiam ĝi malsukcesas |
|---|---|
| API-ŝlosilo | 401 |
| Korpo: grando, enhavtipo, JSON, tipoj de kampoj | 413 · 415 · 400 · 422 |
| Model-id | 400 |
| Flood protection: 120 petoj por minuto por konto | 429 |
| Saldo: la eliga buĝeto de la peto devas eniri | 429 |
Formo de eraro
Eraro estas JSON-objekto kun error, kiu enhavas type kaj message. /v1/messages envolvas ĝin tiel, kiel la SDK de Anthropic atendas; ĉiu alia vojo uzas la formon de OpenAI.
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Legu
typekajmessage.codekajparamĉeestas nur ĉe kelkaj eraroj: traktu ilin kiel laŭvolajn.paramestas ĉiamnull. - Post kiam fluo komenciĝis, la stato jam estas
200. Malsukceso tiam venas kiel erara kadro en la fluo. - Ĉiu erara respondo portas la kapon
x-request-id.
| Stato | Tipo | Kiam |
|---|---|---|
400 | invalid_request_error | La korpo ne estas valida JSON, la model-id estas nekonata, aŭ la modelo ne akceptas specon de enigo, kiun vi sendis. |
401 | authentication_error | La ŝlosilo mankas aŭ ne validas. |
404 | not_found_error | La vojo ne ekzistas. |
405 | api_error | La vojo ekzistas, la metodo estas malĝusta. |
413 | invalid_request_error | La korpo estas pli granda ol 32 MiB. |
415 | invalid_request_error | Content-Type ne estas application/json. |
422 | invalid_request_error | Kampo havas malĝustan JSON-tipon aŭ deviga kampo mankas. |
429 | rate_limit_error | La saldo ne kovras la peton, pli ol 120 petoj alvenis en minuto, la vokoj de Shannon Coder de la fenestro estas elĉerpitaj, aŭ la modelo estas okupata. La mesaĝo diras kiu. |
5xx | api_error | Stato 500, 502, 503 aŭ 504: la peto estis valida kaj ne povis esti respondata. Resendu ĝin. 500 povas porti la tipon server_error. |
Fakturado kaj saldo
- Estas unu saldo por konto, kaj babilo kaj API kunuzas ĝin: unue la plana kvoto de hodiaŭ, poste aĉetita kreditaĵo. La API ne havas propran kvoton.
- Peto rezervas sian eligan buĝeton (
max_tokens, defaŭlto 4,096) kaj poste estas kalkulata por la tokenoj, kiujn ĝi vere uzis, laŭ la prezo de la modelo. - Ĉiu respondo raportas siajn nombrojn de tokenoj en
usage. La paĝo Keys & usage montras la saldon kaj kion kostis ĉiu peto. - Ĉiu peto estas servata egale. La sola limo de rapideco de petoj estas flood protection: 120 petoj por minuto por konto. Paralele senditaj petoj atendas en vico.
Limoj kaj saldo Modeloj kaj prezoj Ŝlosiloj kaj uzado
Kampoj, kiuj dependas de la modelo
Ĉiu modelo akceptas la saman peton. Kelkaj kampoj efikas nur ĉe kelkaj modeloj; la tabelo nomas kie. La paĝoj de endpoints listigas ĉiun kampon.
| Kampo | Priskribo | Aplikata de |
|---|---|---|
system | Instrukcioj por la modelo: mesaĝo system ĉe Chat Completions, system ĉe Messages, instructions ĉe Responses. | Gastigitaj malfermpezaj modeloj, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | Temperaturo de specimenado. | Gastigitaj malfermpezaj modeloj, shannon-1.6-*, shannon-coder-1 |
top_p | Nukleo-specimenado (nucleus sampling). | Gastigitaj malfermpezaj modeloj |
seed | Fiksa semo por specimenado. | Gastigitaj malfermpezaj modeloj |
stop | Ĝis 4 haltaj sekvencoj. | Gastigitaj malfermpezaj modeloj |
reasoning_effort | Kiom la modelo rezonas antaŭ ol respondi. reasoning.effort ĉe Responses, thinking ĉe Messages. | Gastigitaj malfermpezaj modeloj |
web_search | true lasas la modelon serĉi en la reto por ĉi tiu peto. Kampo de ĉi tiu API, ĉe Chat Completions kaj Messages. | Shannon-modeloj krom shannon-coder-1 |
max_tokens | La eliga buĝeto. Ĉe ĉiu modelo ĝi fiksas la kvanton rezervitan el via saldo. | Kiel limo de la longeco de la respondo: gastigitaj malfermpezaj modeloj, shannon-1.6-*, shannon-coder-1 |
Se vi venas el SDK de OpenAI
- Agordu la bazan URL al
https://api.shannon-ai.com/v1kaj la ŝlosilon al via Shannon-ŝlosilo. Vokoj de Chat Completions kaj Responses tiam funkcias kun la SDK tia, kia ĝi estas. modeldevas esti Shannon-id. Nomo de modelo de alia provizanto, kielgpt-4o, ricevas respondon400kajunknown model.- Reasoning venas en propra kampo:
reasoning_contentapudcontent, en la mesaĝo kaj en la deltoj de la fluo. - Fluo ĉiam portas
usageen sia lasta peco, kune kunfinish_reason. - Voko de ilo en fluo alvenas kiel unu peco kun la kompleta ĉeno
arguments. - Respondo havas unu choice.
- Vojoj de la API de OpenAI, kiuj ne estas en la tabelo supre, kiel
/v1/embeddings, ricevas respondon404.
Se vi venas el SDK de Anthropic
- Agordu la bazan URL al
https://api.shannon-ai.com, sen/v1, kaj la ŝlosilon al via Shannon-ŝlosilo. La SDK sendas ĝin kielx-api-key. modeldevas esti Shannon-id.max_tokensestas laŭvola ĉe ĉi tiu API. Ĝia defaŭlto estas 4,096.- Respondo enhavas enhavblokojn de tipo
thinking,textkajtool_use. La unua bloko ne ĉiam estas la teksto: elektu blokojn laŭtype. stop_reasonestasend_turnaŭtool_use. Fluo de Shannon-modelo povas finiĝi ankaŭ permax_tokens.anthropic-versionkajanthropic-betaestas akceptataj, do la SDK funkcias senŝanĝe. Peto ne bezonas ilin.- Eraroj ĉe
/v1/messageshavas la formon de Anthropic:{"type": "error", "error": {…}}.
Kodaj iloj, kiuj parolas ĉi tiujn formatojn, estas agordataj same: baza URL, ŝlosilo, kaj Shannon-id kiel modelo. CLI-iloj por programado