Iwwersiicht
D'Kaart vun der API: all Endpoint, wéi eng Ufro an e Feeler ausgesinn, wéi Ruffer bezuelt ginn, a wat ze wëssen ass, wann Dir vun engem OpenAI- oder Anthropic-SDK kënnt.
Endpoints
All Endpoint läit ënner enger Basis-URL a gëtt iwwer HTTPS bedéngt.
https://api.shannon-ai.com | Endpoint | Format | Wofir et ass |
|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | Eng Konversatioun schécken, déi nächst Äntwert kréien. Mat oder ouni Streaming. |
POST /v1/messages | Anthropic Messages | Datselwecht, an de Ufro- an Äntwert-Formen vun den Anthropic-SDKs. |
POST /v1/responses | OpenAI Responses | Datselwecht, an de Responses-Formen. Den Endpoint hält keen Zoustand: schéckt d'Konversatioun mat all Ufro. |
GET /v1/models | OpenAI-Modellëscht | D'Modeller mat Kontextfënster, Präisser a Fäegkeeten opzielen. Brauch kee Schlëssel. |
POST /v1/tokenize | Shannon-API | D'Tokens vun engem Text oder vun enger Chat-Ufro fir en Hosted Open-Weight-Modell zielen. Gratis. |
POST /v1/messages/count_tokens | Anthropic-Tokenzielung | D'Input-Tokens vun enger Messages-Ufro fir en Hosted Open-Weight-Modell zielen. Gratis. |
Déi dräi Endpoints, déi Text produzéieren, erreechen déiselwecht Modeller. Wielt deen, dessen Format Äre Code scho benotzt.
Grondlage vun der Ufro
| Header | Beschreiwung |
|---|---|
Authorization: Bearer <key> | Ären API-Schlëssel. Op all Endpoint erfuerderlech, ausser GET /v1/models, ausser Dir schéckt x-api-key. |
x-api-key: <key> | Deeselwechte Schlëssel an dem Header, deen d'Anthropic-SDKs schécken. Op all Endpoint gelies. |
Content-Type: application/json | Bei all POST erfuerderlech. Ouni en ass d'Äntwert 415. |
x-request-id: <your id> | Optional. Är eege ID fir d'Ufro; si kënnt am Äntwert-Header x-request-id zréck. Ouni si erstellt d'API eng mat 12 hexadezimale Zeechen. |
- De Body vun all
POSTass een JSON-Objet, bis zu 32 MiB. - E Feld, dat d'API net kennt, verursaacht kee Feeler a wierkt net. Eng Ufro, déi fir en aneren Ubidder geschriwwe gouf, schléit net wéinst engem zousätzleche Feld fehl.
- E bekannt Feld mam falsche JSON-Typ, oder en erfuerderlecht Feld, dat feelt, gëtt mat
422beäntwert. E Body, deen net gülteg JSON ass, gëtt mat400beäntwert. modelass eng vun den IDen op Modeller & Präisser. Grouss- a Klengschreiwung spillt keng Roll.
Eng Äntwert ass JSON, oder e Stream vu Server-sent Events, wann d'Ufro stream op true setzt. All Endpoint äntwert a sengem eegene Format. All Äntwert huet den Header x-request-id.
Wat eng Ufro duerchleeft
Eng Ufro gëtt a fixer Reiefolleg kontrolléiert, ier e Modell leeft. Déi éischt Kontroll, déi feelschléit, äntwert, sou datt e 401 iwwer de Body nach näischt seet.
| Kontrolléiert, an dëser Reiefolleg | Status bei engem Feeler |
|---|---|
| API-Schlëssel | 401 |
| Body: Gréisst, Content-Type, JSON, Feldtypen | 413 · 415 · 400 · 422 |
| Modell-ID | 400 |
| Flood-Schutz: 120 Ufroen pro Minutt pro Kont | 429 |
| Solde: den Output-Budget vun der Ufro muss passen | 429 |
Form vun de Feeler
E Feeler ass e JSON-Objet mat engem error, deen type a message enthält. /v1/messages packt en esou an, wéi d'Anthropic-SDKs et erwaarden; all aner Pfad benotzt d'OpenAI-Form.
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} {
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "unknown model: gpt-4o"
}
} - Liest
typeamessage.codeaparamsi just bei e puer Feeler do: behandelt se als optional.paramass ëmmernull. - Nodeems e Stream ugefaang huet, ass de Status schonn
200. E Feeler dono kënnt als Feeler-Frame am Stream. - All Feeler-Äntwert enthält den Header
x-request-id.
| Status | Typ | Wéini |
|---|---|---|
400 | invalid_request_error | De Body ass kee gültegt JSON, d'Modell-ID ass onbekannt, oder de Modell hëlt eng Zort Input net, déi Dir geschéckt hutt. |
401 | authentication_error | De Schlëssel feelt oder ass net gülteg. |
404 | not_found_error | De Pfad gëtt et net. |
405 | api_error | De Pfad gëtt et, d'Method ass falsch. |
413 | invalid_request_error | De Body ass méi grouss wéi 32 MiB. |
415 | invalid_request_error | Content-Type ass net application/json. |
422 | invalid_request_error | E Feld huet de falsche JSON-Typ, oder en erfuerderlecht Feld feelt. |
429 | rate_limit_error | De Solde deckt d'Ufro net of, méi wéi 120 Ufroen sinn an enger Minutt ukomm, d'Shannon-Coder-Ruffer vum Fënster sinn opgebraucht, oder de Modell ass beschäftegt. D'Message seet, wat et ass. |
5xx | api_error | Status 500, 502, 503 oder 504: d'Ufro war gülteg a konnt net beäntwert ginn. Schéckt se nach eng Kéier. En 500 ka den Typ server_error hunn. |
Facturatioun a Solde
- Et gëtt een Solde pro Kont, a Chat an API deelen en: fir d'éischt d'Plan-Zuelung vun haut, dann de gekaafte Crédit. D'API huet keng eege Quota.
- Eng Ufro reservéiert hiren Output-Budget (
max_tokens, Standard 4,096) a gëtt dann fir d'Tokens berechent, déi si wierklech benotzt huet, zum Präis vum Modell. - All Äntwert mellt hir Tokenzuelen an
usage. D'Säit Schlësselen & Notzung weist de Solde a wat all Ufro kascht huet. - All Ufro gëtt gläich behandelt. Déi eenzeg Limit fir d'Ufro-Rate ass de Flood-Schutz: 120 Ufroen pro Minutt pro Kont. Ufroen, déi parallel geschéckt ginn, waarde an der Schlaang.
Limiten a Solde Modeller a Präisser Schlësselen & Notzung
Felder, déi vum Modell ofhänken
All Modell hëlt déiselwecht Ufro. E puer Felder wierken nëmmen bei e puer Modeller; d'Tabell seet wou. D'Säite vun den Endpoints lëschten all Feld op.
| Feld | Beschreiwung | Ugewannt vun |
|---|---|---|
system | Instruktioune fir de Modell: eng system-Message bei Chat Completions, system bei Messages, instructions bei Responses. | Hosted Open-Weight-Modeller, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
temperature | Sampling-Temperatur. | Hosted Open-Weight-Modeller, shannon-1.6-*, shannon-coder-1 |
top_p | Nucleus Sampling. | Hosted Open-Weight-Modeller |
seed | E fixe Seed fir d'Sampling. | Hosted Open-Weight-Modeller |
stop | Bis zu 4 Stop-Sequenzen. | Hosted Open-Weight-Modeller |
reasoning_effort | Wéi vill de Modell reasonéiert, ier en äntwert. reasoning.effort bei Responses, thinking bei Messages. | Hosted Open-Weight-Modeller |
web_search | true léisst de Modell fir dës Ufro am Web sichen. E Feld vun dëser API, bei Chat Completions a Messages. | Shannon-Modeller ausser shannon-coder-1 |
max_tokens | Den Output-Budget. Bei all Modell setzt en de Betrag, deen aus Ärem Solde reservéiert gëtt. | Als Limit fir d'Längt vun der Äntwert: Hosted Open-Weight-Modeller, shannon-1.6-*, shannon-coder-1 |
Wann Dir vun engem OpenAI-SDK kënnt
- Setzt d'Basis-URL op
https://api.shannon-ai.com/v1an de Schlëssel op Äre Shannon-Schlëssel. Chat-Completions- a Responses-Ruffer funktionéieren dann mat der SDK esou, wéi se ass. modelmuss eng Shannon-ID sinn. E Modellnumm vun engem anere Ubidder, wéigpt-4o, gëtt mat400anunknown modelbeäntwert.- D'Reasoning kënnt an engem eegene Feld:
reasoning_contentniewentcontent, an der Message an an de Stream-Deltaen. - E Stream enthält ëmmer
usagea sengem leschte Chunk, zesumme matfinish_reason. - E Tool-Ruff an engem Stream kënnt als ee Chunk mam kompletten
arguments-String. - Eng Äntwert huet eng Choice.
- Pfaden vun der OpenAI-API, déi net an der Tabell uewen stinn, wéi
/v1/embeddings, ginn mat404beäntwert.
Wann Dir vun engem Anthropic-SDK kënnt
- Setzt d'Basis-URL op
https://api.shannon-ai.com, ouni/v1, an de Schlëssel op Äre Shannon-Schlëssel. D'SDK schéckt en alsx-api-key. modelmuss eng Shannon-ID sinn.max_tokensass bei dëser API optional. De Standard ass 4,096.- Eng Äntwert enthält Inhaltsblöck vum Typ
thinking,textantool_use. Deen éischte Block ass net ëmmer den Text: sicht d'Blöck notypeeraus. stop_reasonassend_turnodertool_use. E Stream vun engem Shannon-Modell kann och matmax_tokensophalen.anthropic-versionananthropic-betaginn akzeptéiert, sou datt d'SDK onverännert funktionéiert. Eng Ufro brauch se net.- Feeler op
/v1/messageshunn d'Anthropic-Form:{"type": "error", "error": {…}}.
Coding-Tools, déi dës Formater schwätzen, ginn op déiselwecht Manéier agestallt: Basis-URL, Schlëssel, an eng Shannon-ID als Modell. CLI-Coding-Tools