Zum Inhalt sprangen
Chat Completions

Chat Completions

POST /v1/chat/completions hëlt e Gespréich un a gëtt déi nächst Message vum Modell am OpenAI-Chat-Completions-Format zréck. Benotzt et vun all OpenAI-SDK aus oder iwwer pure HTTP; dës Säit ass d'Referenz, Feld fir Feld.

POST https://api.shannon-ai.com/v1/chat/completions

Déi klengst Ufro ass eng Modell-ID an eng Benotzermessage.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

response = client.chat.completions.create(
    model="shannon-3",
    messages=[{"role": "user", "content": "Say hello in one sentence."}],
)

print(response.choices[0].message.content)

D'Äntwert ass een JSON-Objet:

200 JSON
{
  "id": "chatcmpl-5f0c1e7a9b3d4c62a8e1f07d2b46c9a3",
  "object": "chat.completion",
  "created": 1791625200,
  "model": "shannon-3",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello, it is good to meet you.",
        "reasoning_content": "The user wants a greeting in one sentence. Keep it short and friendly."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1184,
    "completion_tokens": 46,
    "total_tokens": 1230
  }
}

Headers

Ufro-Headers

Header Wäert Beschreiwung
Authorization Bearer YOUR_API_KEY Äre API-Schlëssel. x-api-key: YOUR_API_KEY gëtt amplaz dovun op all Endpoint akzeptéiert.
Content-Type application/json Erfuerderlech. All anere Wäert gëtt 415 zréck.
x-request-id Optional. Är eege ID fir d'Ufro. Si kënnt onverännert an der Äntwert zréck.

Äntwert-Headers

Header Beschreiwung
x-request-id Op all Äntwert, Feeler a Streams abegraff: de Wäert, deen Dir geschéckt hutt, oder 12 hexadezimal Zeechen, wann Dir keen geschéckt hutt. Gitt en un, wann Dir e Problem mellt.
content-type application/json, oder text/event-stream, wann stream true ass.

Request-Felder

Nëmmen messages ass erfuerderlech. D'Kolonn Ugewannt vun nennt d'Modeller, bei deenen e Feld d'Äntwert ännert. D'Hosted Open-Weight-Modeller sinn déi zwielef IDen aus der Modellëscht; d'Shannon-3-Famill ass shannon-3, shannon-3-pro, shannon-3.1 an shannon-3.1-pro. Modeller a Präisser

Feld Typ Standard Beschreiwung Ugewannt vun
model string shannon-1.6-lite De Modell, dee äntwert: eng ID aus der Modellëscht. Schéckt se bei all Ufro mat. D'Zuerdnung ënnerscheet net tëscht Groß- a Kleinschreiwung. Eng ID, déi net verëffentlecht ass, gëtt 400 unknown model zréck. All Modeller
messages array Erfuerderlech. D'Gespréich, eelst Message als éischt. Kuckt ënnen Messagen. All Modeller
stream boolean false true schéckt d'Äntwert als Server-sent Events, während se geschriwwe gëtt. All Modeller
max_tokens integer 4096 Uewergrenz vun der Äntwert, an Tokens. E Wäert ausserhalb vun 1 bis 65,536 gëtt an dee Beräich geréckelt. Et ass och de Betrag, dee vun Ärem Solde reservéiert gëtt, während d'Ufro leeft. Kuckt ënnen Output-Längt. Hosted Open-Weight-Modeller, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer Datselwecht wéi max_tokens. Wann béid geschéckt ginn, gëtt max_tokens benotzt. Hosted Open-Weight-Modeller, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Sampling-Temperatur. Bei den Hosted Open-Weight-Modeller ass de Standard 1 an d'Wäerter ginn tëscht 0 an 2 gehalen. Hosted Open-Weight-Modeller, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus-Sampling. D'Wäerter ginn tëscht 0 an 1 gehalen. Hosted Open-Weight-Modeller
seed integer Seed vum Sampler, eng beléiebeg ganz Zuel. Ouni hie gëtt de Seed aus dem Modell an dem Gespréich ofgeleet, sou datt déiselwecht Ufro, zweemol geschéckt, deeselwechte Seed benotzt. Hosted Open-Weight-Modeller
stop string | array E String oder en Array vu Strings. Bis zu 4 ginn benotzt. D'Äntwert hält virum éischten op, deen optrëtt; de Stop-Text selwer gëtt net zréckgeschéckt. Hosted Open-Weight-Modeller
reasoning_effort string high Wéi vill de Modell reasonéiert, éier hien äntwert: off, low, medium oder high. none an minimal bedeuten off, default bedeit medium, max bedeit high. All anere Wäert gëtt 400 zréck. Hosted Open-Weight-Modeller
reasoning object Déiselwecht Astellung an Objetform: {"effort": "low"}. Wann béid geschéckt ginn, gëtt reasoning_effort benotzt. Hosted Open-Weight-Modeller
tools array D'Funktiounen, déi de Modell opruffe kann, jidderee als {"type": "function", "function": {"name", "description", "parameters"}}. D'Ufruffer vum Modell kommen an tool_calls zréck; Äre Code féiert se aus. All Modeller
tool_choice string | object auto "auto" léisst de Modell entscheeden. "required" zwéngt en, en Tool opzeruffen. {"type": "function", "function": {"name": "…"}} zwéngt en, dat Tool opzeruffen. Hosted Open-Weight-Modeller
response_format object {"type": "json_object"} fir eng JSON-Äntwert, oder {"type": "json_schema", "json_schema": {…}} fir eng Äntwert, déi Ärem Schema follegt. All Shannon-Niveauen; Hosted Open-Weight-Modeller wéi se pro ID opgelëscht sinn
web_search boolean false true léisst de Modell um Web sichen, éier hien äntwert. shannon-1.6-*, shannon-2-*, Shannon-3-Famill

Aner OpenAI-Felder, wéi n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store an prompt_cache_key, ginn akzeptéiert, sou datt bestehende Client-Code onverännert leeft. Si änneren d'Äntwert net: et gëtt ëmmer eng Choice, an e Stream endet ëmmer mat Usage.

E Feld mam falsche JSON-Typ, zum Beispill "max_tokens": "100", gëtt 422 zréck. Eng Ufro ouni messages och.

Tools, strukturéierten Output, Reasoning a Websich hunn all hir eege Säit: Funktiounsofruff, Strukturéiert Output, Reasoning-Effort, Integréiert Websich.

Eng Ufro mat Optiounen

Dës Ufro setzt eng System-Message, d'Sampling-Felder an den Reasoning-Effort. Si benotzt en Hosted Open-Weight-Modell, dee se all applizéiert.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1",
)

response = client.chat.completions.create(
    model="DeepSeek-V4-Flash-0731-W4A16-AUTOROUND-REAP",
    messages=[
        {"role": "system", "content": "You are a physics teacher. Answer in two sentences."},
        {"role": "user", "content": "Why is the sky blue?"},
    ],
    max_tokens=512,
    temperature=0.3,
    top_p=0.9,
    seed=7,
    stop=["\n\n"],
    reasoning_effort="low",
)

message = response.choices[0].message
print(message.reasoning_content)  # the reasoning
print(message.content)            # the answer
print(response.usage)

D'Äntwert huet déiselwecht Form wéi uewen. Hir usage füügt bei den Hosted Open-Weight-Modeller zwee Detailer derbäi: d'Prompt-Tokens, déi aus dem Cache gelies goufen, an d'Tokens, déi fir Reasoning ausgi goufen.

200 JSON
{
  "usage": {
    "prompt_tokens": 31,
    "completion_tokens": 62,
    "total_tokens": 93,
    "prompt_tokens_details": {
      "cached_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 21
    }
  }
}

Output-Längt

max_tokens mécht zwou Saachen. Éischtens ass et d'Zuel vun den Tokens, déi vun Ärem Solde reservéiert ginn, wann d'Ufro ufänkt. Wann d'Äntwert komplett ass, gëtt dee Betrag duerch d'Tokens ersat, déi d'Ufro benotzt huet. Wann max_tokens méi grouss ass wéi dat, wat vun Ärem Solde iwwreg ass, gëtt d'Ufro 429 Quota exceeded zréck, och wann d'Äntwert selwer gepasst hätt. Schéckt e méi niddrege max_tokens, fir manner ze reservéieren.

shannon-coder-1 gëtt op dësem Endpoint anescht gezielt: all Ufro ass ee vun de Shannon-Coder-Ufruffer vun Ärem Plan, a fir si ginn keng Tokens reservéiert. Limiten a Solde

Zweetens begrenzt et d'Längt vun der Äntwert bei dëse Modeller:

Modeller Wat max_tokens mécht
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 D'Äntwert hält op, wann se d'Limit erreecht. E Stream endet dann mat finish_reason length.
Hosted Open-Weight-Modeller Den Äntwerttext hält bei max_tokens op. D'Reasoning gëtt net derbäi gezielt. Wäerter ënner 256 gëllen als 256.

Ouni max_tokens oder max_completion_tokens ass de Wäert 4,096. Bei shannon-coder-1 ass en 65,536.

Messagen

All Message ass en Objet mat enger role an engem content. content ass e String oder en Array vun Deeler, wann d'Message méi wéi Text dréit.

Roll Beschreiwung Ugewannt vun
system Instruktioune fir de Modell. Setzt se als éischt. Bei de Shannon-Niveaue gëtt déi éischt system-Message benotzt. Hosted Open-Weight-Modeller, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer Gëtt als system gelies. Hosted Open-Weight-Modeller
user Dat, wat Dir freet. Bei de Shannon-Niveaue ass déi lescht user-Message de Prompt an d'Messagen dovir sinn de Verlaf. All Modeller
assistant Fréier Äntwerte vum Modell. Behaalt seng tool_calls, wann Dir en Tool-Resultat dernach schéckt. All Modeller
tool D'Resultat vun engem Tool-Opruff: tool_call_id enthält d'ID vum Opruff an content d'Resultat als String. All Modeller

Bei enger ID aus der Shannon-3-Famill setzt Instruktioune, déi gëllen, an d'user-Message.

Bei de Shannon-Niveaue gëtt eng Ufro ouni Benotzertext a ouni tools 400 No user message provided zréck.

Content-Deeler

Deel Beschreiwung Verfügbar bei
{"type": "text", "text": "…"} Purren Text. All Modeller
{"type": "image_url", "image_url": {"url": "…"}} E Bild, als data:-URL mat base64-Inhalt oder als http(s)-URL. Shannon-3-Famill, shannon-1.6-lite, shannon-1.6-pro, an d'Hosted Open-Weight-Modeller, déi Bild-Input opféieren
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} En Dokument (PDF, Word, PowerPoint oder Excel), als base64 oder iwwer URL. Shannon-3-Famill

Gréissten, Limite an déi komplett Lëscht vun de Forme hunn hir eege Säit. Biller a Fichieren

Dat Äntwert-Objet

Feld Typ Beschreiwung
id string chatcmpl- gefollegt vun 32 hexadezimale Zeechen.
object string Ëmmer chat.completion.
created integer Zäit vun der Äntwert, a Unix-Sekonnen.
model string Déi kanonesch ID vum Modell, dee geäntwert huet. Si kann an der Schreifweis vun der ID ofwäichen, déi Dir geschéckt hutt.
choices array Ëmmer genee eng Choice, mam index 0.
choices[0].message.role string Ëmmer assistant.
choices[0].message.content string | null Den Äntwerttext. Mat tool_calls ass hien bei de Shannon-Niveauen null; d'Hosted Open-Weight-Modeller kënnen Text nieft den Ufruffer schécken.
choices[0].message.reasoning_content string | null D'Reasoning, déi de Modell virun der Äntwert geschriwwen huet, oder null, wann et keng gëtt.
choices[0].message.tool_calls array Nëmmen do, wann de Modell Tools rifft. All Entrée huet eng id, den type function, an function mam name an den arguments als JSON-String.
choices[0].message.annotations array Just bei enger Ufro mat web_search: true, där hir Sich eppes fonnt huet. Eng url_citation fir all Quell, déi eng Markéierung an content nennt, mat url, title, start_index an end_index (d'Positioun vun der Markéierung, an Zeechen gezielt, d'Enn ass net abegraff).
choices[0].finish_reason string Firwat d'Äntwert opgehalen huet. Kuckt Finish-Reasons.
usage object D'Tokens vun der Ufro. Kuckt Usage.
sources array Just bei enger Ufro mat web_search: true, där hir Sich eppes fonnt huet: d'Resultater, déi de Modell kritt huet, all mat index, title an url. [1] an der Äntwert ass den Androck mat index 1.

Finish-Reasons

finish_reason Beschreiwung
stop De Modell huet seng Äntwert fäerdeg gemaach, oder e stop-String ass opgetruede.
tool_calls De Modell rifft een oder méi Tools op. Féiert se aus a schéckt d'Resultater an tool-Messagen.
length D'Äntwert gouf um Output-Limit ofgeschnidden. Gëtt a Streams vun shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 an der Shannon-3-Famill gemellt.

Eng Äntwert, déi net gestreamt gëtt, mellt stop oder tool_calls.

Usage

Feld Typ Beschreiwung Verfügbar bei
usage.prompt_tokens integer Input-Tokens. All Modeller
usage.completion_tokens integer Output-Tokens: Reasoning, Äntwert an Tool-Ufruffer zesummen. All Modeller
usage.total_tokens integer prompt_tokens plus completion_tokens. All Modeller
usage.prompt_tokens_details.cached_tokens integer Den Deel vun prompt_tokens, deen aus dem Prompt-Cache gelies gouf. Hosted Open-Weight-Modeller
usage.completion_tokens_details.reasoning_tokens integer Den Deel vun completion_tokens, deen fir Reasoning ausgi gouf. Hosted Open-Weight-Modeller

Bei den Hosted Open-Weight-Modeller ass prompt_tokens Är Messagen an Tool-Definitiounen, gezielt mam eegenen Tokenizer vum Modell, plus d'Tokens vu Biller. D'Endpoints fir d'Token-Zielung ginn déiselwecht Zuel zréck, éier Dir schéckt. Tokenzielung

Bei de Shannon-Niveaue zielt prompt_tokens alles, wat de Modell gelies huet, fir d'Äntwert ze schreiwen, dofir ass et méi grouss wéi nëmmen den Text vun Ären Messagen.

Streaming

Wann stream op true gesat ass, kënnt d'Äntwert als chat.completion.chunk-Events a endet mat data: [DONE]. De leschte Chunk dovir dréit finish_reason an usage; stream_options sinn net néideg. D'Chunk-Forme, Keep-alive-Zeilen a Feeler an engem Stream hunn hir eege Säit. Streaming

Feeler

E Feeler ass en JSON-Objet mat engem error-Member. D'Kontrolle lafen an dëser Reiefolleg: API-Schlëssel, Ufro-Body, Modell-ID, dann Solde. D'Tabell lëscht, wat dësen Endpoint am heefegsten zréckgëtt. Déi komplett Lëscht, mat deem, wat Dir nei probéiere sollt, huet hir eege Säit. Feelerbehandlung

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Status Typ Message Wéini
401 authentication_error Missing authentication
Invalid API key
Et gouf kee API-Schlëssel geschéckt, oder de Schlëssel ass onbekannt oder widderruff.
400 invalid_request_error unknown model: <id> model ass keng verëffentlecht ID.
400 invalid_request_error No user message provided Shannon-Niveauen: d'Ufro huet keen Benotzertext a keng tools.
400 invalid_request_error <id> does not accept image input E Bild-Deel gouf un en Hosted Open-Weight-Modell ouni Bild-Input geschéckt.
400 invalid_request_error <id> does not accept response_format response_format gouf un en Hosted Open-Weight-Modell ouni strukturéierten Output geschéckt.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort enthält e Wäert ausserhalb vun der Lëscht.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages feelt, oder e Feld huet de falsche JSON-Typ.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens ass méi grouss wéi dat, wat vun Ärem Solde iwwreg ass.
429 rate_limit_error Too many requests. Retry in <n>s. Flood-Schutz: méi wéi 120 Ufroen an enger Minutt op Ärem Kont.
500 server_error The model backend failed to answer. Please retry. De Modell huet keng Äntwert produzéiert. Schéckt d'Ufro nach eng Kéier.
502 api_error The model backend failed to answer. Please retry. Datselwecht, bei der Shannon-3-Famill an den Hosted Open-Weight-Modeller.