Preskočiť na obsah
Chat Completions

Chat Completions

POST /v1/chat/completions prijme konverzáciu a vráti ďalšiu správu modelu vo formáte OpenAI Chat Completions. Používajte ho z ľubovoľného SDK od OpenAI alebo cez čisté HTTP; táto stránka je referencia pole po poli.

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

Najmenší request je id modelu a jedna správa používateľa.

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)

Odpoveď je jeden objekt JSON:

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
  }
}

Hlavičky

Hlavičky requestu

Hlavička Hodnota Popis
Authorization Bearer YOUR_API_KEY Váš API kľúč. Na každom endpointe sa namiesto neho prijíma x-api-key: YOUR_API_KEY.
Content-Type application/json Povinná. Akákoľvek iná hodnota vráti 415.
x-request-id Nepovinná. Vaše vlastné id requestu. V odpovedi sa vráti nezmenené.

Hlavičky odpovede

Hlavička Popis
x-request-id Na každej odpovedi, vrátane chýb a streamov: hodnota, ktorú ste poslali, alebo 12 hexadecimálnych znakov, ak ste neposlali žiadnu. Pri hlásení problému ju uveďte.
content-type application/json alebo text/event-stream, keď je stream true.

Polia requestu

Povinné je iba messages. Stĺpec Uplatňuje uvádza modely, na ktorých pole mení odpoveď. Hostované open-weight modely sú dvanásť id zo zoznamu modelov; rodinu Shannon 3 tvoria shannon-3, shannon-3-pro, shannon-3.1 a shannon-3.1-pro. Modely a ceny

Pole Typ Predvolené Popis Uplatňuje
model string shannon-1.6-lite Model, ktorý odpovedá: id zo zoznamu modelov. Posielajte ho s každým requestom. Na veľkosti písmen nezáleží. Id, ktoré nie je zverejnené, vráti 400 unknown model. Všetky modely
messages array Povinné. Konverzácia, najstaršia správa prvá. Pozrite Správy nižšie. Všetky modely
stream boolean false true pošle odpoveď ako server-sent events počas jej písania. Všetky modely
max_tokens integer 4096 Horný limit odpovede v tokenoch. Hodnota mimo rozsahu 1 až 65,536 sa posunie do tohto rozsahu. Je to aj suma, ktorá sa počas behu requestu vyhradí zo zostatku. Pozrite Dĺžka výstupu nižšie. Hostované open-weight modely, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer To isté ako max_tokens. Ak sa pošlú obe, použije sa max_tokens. Hostované open-weight modely, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Teplota vzorkovania. Na hostovaných open-weight modeloch je predvolená hodnota 1 a hodnoty sa držia medzi 0 a 2. Hostované open-weight modely, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. Hodnoty sa držia medzi 0 a 1. Hostované open-weight modely
seed integer Seed vzorkovača, ľubovoľné celé číslo. Bez neho sa seed odvodí z modelu a konverzácie, takže ten istý request poslaný dvakrát použije rovnaký seed. Hostované open-weight modely
stop string | array Reťazec alebo pole reťazcov. Použijú sa najviac 4. Odpoveď sa skončí pred prvým z nich, ktorý sa objaví; samotný stop text sa nevracia. Hostované open-weight modely
reasoning_effort string high Ako dlho model uvažuje, kým odpovie: off, low, medium alebo high. none a minimal znamenajú off, default znamená medium, max znamená high. Akákoľvek iná hodnota vráti 400. Hostované open-weight modely
reasoning object To isté nastavenie v tvare objektu: {"effort": "low"}. Ak sa pošlú obe, použije sa reasoning_effort. Hostované open-weight modely
tools array Funkcie, ktoré môže model volať, každá ako {"type": "function", "function": {"name", "description", "parameters"}}. Volania modelu sa vrátia v tool_calls; váš kód ich spustí. Všetky modely
tool_choice string | object auto "auto" nechá rozhodnúť model. "required" ho prinúti zavolať nástroj. {"type": "function", "function": {"name": "…"}} ho prinúti zavolať tento nástroj. Hostované open-weight modely
response_format object {"type": "json_object"} pre odpoveď JSON alebo {"type": "json_schema", "json_schema": {…}} pre odpoveď, ktorá sleduje vašu schému. Všetky úrovne Shannon; hostované open-weight modely podľa uvedenia pri jednotlivých id
web_search boolean false true umožní modelu pred odpoveďou vyhľadávať na webe. shannon-1.6-*, shannon-2-*, rodina Shannon 3

Ďalšie polia OpenAI, ako n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store a prompt_cache_key, sa prijímajú, aby existujúci klientsky kód bežal bez zmien. Odpoveď nemenia: vždy je len jedna voľba a stream vždy končí usage.

Pole s nesprávnym typom JSON, napríklad "max_tokens": "100", vráti 422. Rovnako aj request bez messages.

Nástroje, štruktúrovaný výstup, uvažovanie a webové vyhľadávanie majú každé vlastnú stránku: Volanie funkcií, Štruktúrované výstupy, Úsilie pri uvažovaní, Vstavané webové vyhľadávanie.

Request s voľbami

Tento request nastavuje systémovú správu, polia vzorkovania a úsilie pri uvažovaní. Používa hostovaný open-weight model, ktorý uplatní všetky.

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)

Odpoveď má rovnaký tvar ako vyššie. Jej usage pridáva na hostovaných open-weight modeloch dva detaily: tokeny promptu prečítané z cache a tokeny minuté na uvažovanie.

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

Dĺžka výstupu

max_tokens robí dve veci. Po prvé, je to počet tokenov vyhradený zo zostatku, keď request začne. Po dokončení odpovede sa táto suma nahradí tokenmi, ktoré request použil. Ak je max_tokens väčšie, než koľko zostáva z vášho zostatku, request vráti 429 Quota exceeded, aj keby sa samotná odpoveď zmestila. Pošlite nižšie max_tokens, aby sa vyhradilo menej.

shannon-coder-1 sa na tomto endpointe počíta inak: každý request je jedno z volaní Shannon Coder vášho plánu a nevyhradzujú sa naň žiadne tokeny. Limity a zostatok

Po druhé, obmedzuje dĺžku odpovede na týchto modeloch:

Modely Čo robí max_tokens
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Odpoveď sa zastaví, keď dosiahne limit. Stream potom skončí s finish_reason length.
Hostované open-weight modely Text odpovede sa zastaví pri max_tokens. Uvažovanie sa doň nezapočítava. Hodnoty pod 256 sa správajú ako 256.

Bez max_tokens alebo max_completion_tokens je hodnota 4,096. Na shannon-coder-1 je 65,536.

Správy

Každá správa je objekt s role a content. content je reťazec alebo pole častí, keď správa nesie viac než text.

Rola Popis Uplatňuje
system Pokyny pre model. Dajte ju na začiatok. Na úrovniach Shannon sa použije prvá správa system. Hostované open-weight modely, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer Číta sa ako system. Hostované open-weight modely
user Na čo sa pýtate. Na úrovniach Shannon je posledná správa user prompt a správy pred ňou sú história. Všetky modely
assistant Skoršie odpovede modelu. Ponechajte jeho tool_calls, keď za ne posielate výsledok nástroja. Všetky modely
tool Výsledok volania nástroja: tool_call_id obsahuje id volania a content výsledok ako reťazec. Všetky modely

S id z rodiny Shannon 3 dajte pokyny, ktoré musia platiť, do správy user.

Na úrovniach Shannon vráti request bez textu používateľa a bez tools 400 No user message provided.

Časti obsahu

Časť Popis Dostupné na
{"type": "text", "text": "…"} Čistý text. Všetky modely
{"type": "image_url", "image_url": {"url": "…"}} Obrázok, ako URL data: s obsahom base64 alebo ako URL http(s). Rodina Shannon 3, shannon-1.6-lite, shannon-1.6-pro a hostované open-weight modely, ktoré uvádzajú obrázkový vstup
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Dokument (PDF, Word, PowerPoint alebo Excel), ako base64 alebo cez URL. Rodina Shannon 3

Veľkosti, limity a úplný zoznam foriem majú vlastnú stránku. Obrázky a súbory

Objekt odpovede

Pole Typ Popis
id string chatcmpl- nasledované 32 hexadecimálnymi znakmi.
object string Vždy chat.completion.
created integer Čas odpovede v sekundách Unix.
model string Kanonické id modelu, ktorý odpovedal. Môže sa pravopisom líšiť od id, ktoré ste poslali.
choices array Vždy presne jedna voľba, s index 0.
choices[0].message.role string Vždy assistant.
choices[0].message.content string | null Text odpovede. S tool_calls je na úrovniach Shannon null; hostované open-weight modely môžu popri volaniach poslať text.
choices[0].message.reasoning_content string | null Uvažovanie, ktoré model napísal pred odpoveďou, alebo null, ak žiadne nie je.
choices[0].message.tool_calls array Prítomné iba vtedy, keď model volá nástroje. Každá položka má id, type function a function s name a arguments ako reťazcom JSON.
choices[0].message.annotations array Len pri requeste s web_search: true, ktorého vyhľadávanie niečo našlo. Jedna url_citation pre každý zdroj, ktorý značka v content pomenúva, s poľami url, title, start_index a end_index (pozícia značky počítaná v znakoch, koniec sa nezahŕňa).
choices[0].finish_reason string Prečo odpoveď skončila. Pozrite Dôvody ukončenia.
usage object Tokeny requestu. Pozrite Usage.
sources array Len pri requeste s web_search: true, ktorého vyhľadávanie niečo našlo: výsledky, ktoré model dostal, každý s index, title a url. [1] v odpovedi je záznam s index 1.

Dôvody ukončenia

finish_reason Popis
stop Model dokončil odpoveď, alebo sa objavil reťazec stop.
tool_calls Model volá jeden alebo viac nástrojov. Spustite ich a pošlite výsledky v správach tool.
length Odpoveď bola odrezaná na limite výstupu. Hlási sa v streamoch shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 a rodiny Shannon 3.

Odpoveď, ktorá sa nestreamuje, hlási stop alebo tool_calls.

Usage

Pole Typ Popis Dostupné na
usage.prompt_tokens integer Vstupné tokeny. Všetky modely
usage.completion_tokens integer Výstupné tokeny: uvažovanie, odpoveď a volania nástrojov spolu. Všetky modely
usage.total_tokens integer prompt_tokens plus completion_tokens. Všetky modely
usage.prompt_tokens_details.cached_tokens integer Časť prompt_tokens, ktorá sa prečítala z prompt cache. Hostované open-weight modely
usage.completion_tokens_details.reasoning_tokens integer Časť completion_tokens, ktorá sa minula na uvažovanie. Hostované open-weight modely

Na hostovaných open-weight modeloch sú prompt_tokens vaše správy a definície nástrojov spočítané vlastným tokenizerom modelu plus tokeny prípadných obrázkov. Endpointy na počítanie tokenov vrátia rovnaké číslo ešte pred odoslaním. Počítanie tokenov

Na úrovniach Shannon prompt_tokens počíta všetko, čo model prečítal na napísanie odpovede, takže je väčšie než samotný text vašich správ.

Streamovanie

S stream nastaveným na true odpoveď prichádza ako udalosti chat.completion.chunk a končí data: [DONE]. Posledný chunk pred ním nesie finish_reason a usage; stream_options netreba. Tvary chunkov, keep-alive riadky a chyby vnútri streamu majú vlastnú stránku. Streamovanie

Chyby

Chyba je objekt JSON s členom error. Kontroly bežia v tomto poradí: API kľúč, telo requestu, id modelu, potom zostatok. Tabuľka uvádza, čo tento endpoint vracia najčastejšie. Úplný zoznam s odporúčaním, čo opakovať, má vlastnú stránku. Spracovanie chýb

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Stav Typ Správa Kedy
401 authentication_error Missing authentication
Invalid API key
Nebol odoslaný žiadny API kľúč, alebo je kľúč neznámy či zrušený.
400 invalid_request_error unknown model: <id> model nie je zverejnené id.
400 invalid_request_error No user message provided Úrovne Shannon: request nemá žiadny text používateľa ani tools.
400 invalid_request_error <id> does not accept image input Časť s obrázkom bola odoslaná hostovanému open-weight modelu bez obrázkového vstupu.
400 invalid_request_error <id> does not accept response_format response_format bol odoslaný hostovanému open-weight modelu bez štruktúrovaného výstupu.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort obsahuje hodnotu mimo zoznamu.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages chýba alebo pole má nesprávny typ JSON.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens je väčšie, než koľko zostáva z vášho zostatku.
429 rate_limit_error Too many requests. Retry in <n>s. Ochrana pred zahltením: viac ako 120 requestov za minútu na vašom účte.
500 server_error The model backend failed to answer. Please retry. Model nevytvoril odpoveď. Odošlite request znova.
502 api_error The model backend failed to answer. Please retry. To isté, v rodine Shannon 3 a na hostovaných open-weight modeloch.