Salti al la enhavo
Superrigardo

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.

Baza URL
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 POST estas 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 respondon 400.
  • model estas 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.

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"
  }
}
  • Legu type kaj message. code kaj param ĉeestas nur ĉe kelkaj eraroj: traktu ilin kiel laŭvolajn. param estas ĉiam null.
  • 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.

Erarotraktado

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

Chat Completions

Se vi venas el SDK de OpenAI

  • Agordu la bazan URL al https://api.shannon-ai.com/v1 kaj la ŝlosilon al via Shannon-ŝlosilo. Vokoj de Chat Completions kaj Responses tiam funkcias kun la SDK tia, kia ĝi estas.
  • model devas esti Shannon-id. Nomo de modelo de alia provizanto, kiel gpt-4o, ricevas respondon 400 kaj unknown model.
  • Reasoning venas en propra kampo: reasoning_content apud content, en la mesaĝo kaj en la deltoj de la fluo.
  • Fluo ĉiam portas usage en sia lasta peco, kune kun finish_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 respondon 404.

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 kiel x-api-key.
  • model devas esti Shannon-id.
  • max_tokens estas laŭvola ĉe ĉi tiu API. Ĝia defaŭlto estas 4,096.
  • Respondo enhavas enhavblokojn de tipo thinking, text kaj tool_use. La unua bloko ne ĉiam estas la teksto: elektu blokojn laŭ type.
  • stop_reason estas end_turn aŭ tool_use. Fluo de Shannon-modelo povas finiĝi ankaŭ per max_tokens.
  • anthropic-version kaj anthropic-beta estas akceptataj, do la SDK funkcias senŝanĝe. Peto ne bezonas ilin.
  • Eraroj ĉe /v1/messages havas 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