Přeskočit na obsah
Chat Completions

Chat Completions

POST /v1/chat/completions přijímá konverzaci a vrací další zprávu modelu ve formátu OpenAI Chat Completions. Použijte jej z libovolného OpenAI SDK nebo přes prosté HTTP; tato stránka je reference pole po poli.

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

Nejmenší požadavek je id modelu a jedna zpráva uživatele.

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)

Odpověď 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 požadavku

Hlavička Hodnota Popis
Authorization Bearer YOUR_API_KEY Váš API klíč. Místo něj se na každém endpointu přijímá x-api-key: YOUR_API_KEY.
Content-Type application/json Povinná. Jakákoli jiná hodnota vrátí 415.
x-request-id Volitelná. Vaše vlastní id požadavku. Vrátí se v odpovědi beze změny.

Hlavičky odpovědi

Hlavička Popis
x-request-id V každé odpovědi, včetně chyb a streamů: hodnota, kterou jste poslali, nebo 12 hexadecimálních znaků, pokud jste neposlali žádnou. Uveďte ji, když hlásíte problém.
content-type application/json, nebo text/event-stream, když je stream true.

Pole požadavku

Povinné je pouze messages. Sloupec Uplatňují uvádí modely, u nichž pole mění odpověď. Hostované modely s otevřenými váhami je dvanáct id ze seznamu modelů; rodina Shannon 3 je shannon-3, shannon-3-pro, shannon-3.1 a shannon-3.1-pro. Modely a ceny

Pole Typ Výchozí Popis Uplatňují
model string shannon-1.6-lite Model, který odpovídá: id ze seznamu modelů. Posílejte jej s každým požadavkem. Porovnání nerozlišuje velikost písmen. Id, které není zveřejněné, vrátí 400 unknown model. Všechny modely
messages array Povinné. Konverzace, nejstarší zpráva první. Viz Zprávy níže. Všechny modely
stream boolean false true pošle odpověď jako server-sent events, jak se píše. Všechny modely
max_tokens integer 4096 Horní limit odpovědi v tokenech. Hodnota mimo rozsah 1 až 65,536 se posune do tohoto rozsahu. Je to také částka, která se vašemu zůstatku vyhradí po dobu běhu požadavku. Viz Délka výstupu níže. Hostované modely s otevřenými váhami, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer Totéž jako max_tokens. Když se pošlou obě, použije se max_tokens. Hostované modely s otevřenými váhami, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Teplota vzorkování. U hostovaných modelů s otevřenými váhami je výchozí hodnota 1 a hodnoty se drží mezi 0 a 2. Hostované modely s otevřenými váhami, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. Hodnoty se drží mezi 0 a 1. Hostované modely s otevřenými váhami
seed integer Seed vzorkovače, libovolné celé číslo. Bez něj se seed odvozuje z modelu a konverzace, takže stejný požadavek odeslaný dvakrát použije stejný seed. Hostované modely s otevřenými váhami
stop string | array Řetězec nebo pole řetězců. Použijí se nejvýše 4. Odpověď skončí před prvním z nich, který se objeví; samotný zastavovací text se nevrací. Hostované modely s otevřenými váhami
reasoning_effort string high Kolik model uvažuje, než odpoví: off, low, medium nebo high. none a minimal znamenají off, default znamená medium, max znamená high. Jakákoli jiná hodnota vrátí 400. Hostované modely s otevřenými váhami
reasoning object Stejné nastavení v podobě objektu: {"effort": "low"}. Když se pošlou obě, použije se reasoning_effort. Hostované modely s otevřenými váhami
tools array Funkce, které model smí volat, každá jako {"type": "function", "function": {"name", "description", "parameters"}}. Volání modelu se vrací v tool_calls; váš kód je spouští. Všechny modely
tool_choice string | object auto "auto" nechá rozhodnout model. "required" jej přiměje zavolat nástroj. {"type": "function", "function": {"name": "…"}} jej přiměje zavolat daný nástroj. Hostované modely s otevřenými váhami
response_format object {"type": "json_object"} pro odpověď JSON, nebo {"type": "json_schema", "json_schema": {…}} pro odpověď, která sleduje vaše schéma. Všechny úrovně Shannon; hostované modely s otevřenými váhami podle toho, jak je uvedeno u každého id
web_search boolean false true umožní modelu před odpovědí vyhledávat na webu. shannon-1.6-*, shannon-2-*, rodina Shannon 3

Další pole OpenAI, například n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store a prompt_cache_key, se přijímají, aby stávající klientský kód běžel beze změny. Odpověď neovlivňují: vždy existuje jedna volba a stream vždy končí využitím.

Pole se špatným typem JSON, například "max_tokens": "100", vrátí 422. Stejně tak požadavek bez messages.

Nástroje, strukturovaný výstup, uvažování a vyhledávání na webu mají každé vlastní stránku: Volání funkcí, Strukturované výstupy, Úsilí uvažování, Vestavěné webové vyhledávání.

Požadavek s volbami

Tento požadavek nastavuje zprávu system, pole vzorkování a úsilí uvažování. Používá hostovaný model s otevřenými váhami, který uplatní všechny.

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)

Odpověď má stejný tvar jako výše. Její usage u hostovaných modelů s otevřenými váhami přidává dva údaje: prompt tokeny přečtené z cache a tokeny spotřebované na uvažování.

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élka výstupu

max_tokens dělá dvě věci. Za prvé je to počet tokenů, které se vašemu zůstatku vyhradí při zahájení požadavku. Po dokončení odpovědi se tato částka nahradí tokeny, které požadavek skutečně spotřeboval. Pokud je max_tokens větší, než kolik zbývá z vašeho zůstatku, požadavek vrátí 429 Quota exceeded, i když by se samotná odpověď vešla. Pošlete nižší max_tokens, aby se vyhradilo méně.

shannon-coder-1 se na tomto endpointu počítá jinak: každý požadavek je jedno z volání Shannon Coder vašeho plánu a nevyhrazují se pro něj žádné tokeny. Limity a zůstatek

Za druhé omezuje délku odpovědi u těchto modelů:

Modely Co dělá max_tokens
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Odpověď se zastaví, když dosáhne limitu. Stream pak skončí s finish_reason length.
Hostované modely s otevřenými váhami Text odpovědi se zastaví na max_tokens. Uvažování se do něj nepočítá. Hodnoty pod 256 se chovají jako 256.

Bez max_tokens nebo max_completion_tokens je hodnota 4,096. U shannon-coder-1 je 65,536.

Zprávy

Každá zpráva je objekt s role a content. content je řetězec, nebo pole částí, když zpráva nese víc než text.

Role Popis Uplatňují
system Instrukce pro model. Dejte ji na začátek. Na úrovních Shannon se používá první zpráva system. Hostované modely s otevřenými váhami, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer Čte se jako system. Hostované modely s otevřenými váhami
user Na co se ptáte. Na úrovních Shannon je poslední zpráva user prompt a zprávy před ní jsou historie. Všechny modely
assistant Dřívější odpovědi modelu. Ponechte jeho tool_calls, když za ně posíláte výsledek nástroje. Všechny modely
tool Výsledek volání nástroje: tool_call_id obsahuje id volání a content výsledek jako řetězec. Všechny modely

U id z rodiny Shannon 3 dejte instrukce, které musí platit, do zprávy user.

Na úrovních Shannon vrátí požadavek bez uživatelského textu a bez tools 400 No user message provided.

Části obsahu

Část Popis Dostupné na
{"type": "text", "text": "…"} Prostý text. Všechny modely
{"type": "image_url", "image_url": {"url": "…"}} Obrázek, jako URL data: s obsahem base64 nebo jako URL http(s). Rodina Shannon 3, shannon-1.6-lite, shannon-1.6-pro a hostované modely s otevřenými váhami, které uvádějí obrázkový vstup
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Dokument (PDF, Word, PowerPoint nebo Excel), jako base64 nebo pomocí URL. Rodina Shannon 3

Velikosti, limity a úplný seznam forem mají vlastní stránku. Obrázky a soubory

Objekt odpovědi

Pole Typ Popis
id string chatcmpl- následované 32 hexadecimálními znaky.
object string Vždy chat.completion.
created integer Čas odpovědi, v sekundách Unix.
model string Kanonické id modelu, který odpověděl. Může se v zápisu lišit od id, které jste poslali.
choices array Vždy právě jedna volba, s index 0.
choices[0].message.role string Vždy assistant.
choices[0].message.content string | null Text odpovědi. S tool_calls je na úrovních Shannon null; hostované modely s otevřenými váhami mohou vedle volání poslat text.
choices[0].message.reasoning_content string | null Uvažování, které model napsal před odpovědí, nebo null, pokud žádné není.
choices[0].message.tool_calls array Přítomno, pouze když model volá nástroje. Každá položka má id, type function a function s name a arguments jako řetězcem JSON.
choices[0].message.annotations array Jen u požadavku s web_search: true, jehož vyhledávání něco našlo. Jeden url_citation pro každý zdroj, který jmenuje značka v content, s url, title, start_index a end_index (pozice značky počítaná ve znacích, konec se nezahrnuje).
choices[0].finish_reason string Proč odpověď skončila. Viz Důvody ukončení.
usage object Tokeny požadavku. Viz Využití.
sources array Jen u požadavku s web_search: true, jehož vyhledávání něco našlo: výsledky, které model dostal, každý s index, title a url. [1] v odpovědi je záznam s index 1.

Důvody ukončení

finish_reason Popis
stop Model dokončil odpověď, nebo se objevil řetězec stop.
tool_calls Model volá jeden nebo více nástrojů. Spusťte je a pošlete výsledky ve zprávách tool.
length Odpověď byla useknuta na výstupním limitu. Hlásí se ve streamech shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 a rodiny Shannon 3.

Odpověď, která není streamovaná, hlásí stop nebo tool_calls.

Využití

Pole Typ Popis Dostupné na
usage.prompt_tokens integer Vstupní tokeny. Všechny modely
usage.completion_tokens integer Výstupní tokeny: uvažování, odpověď a volání nástrojů dohromady. Všechny modely
usage.total_tokens integer prompt_tokens plus completion_tokens. Všechny modely
usage.prompt_tokens_details.cached_tokens integer Část prompt_tokens, která byla přečtena z cache promptů. Hostované modely s otevřenými váhami
usage.completion_tokens_details.reasoning_tokens integer Část completion_tokens, která byla spotřebována na uvažování. Hostované modely s otevřenými váhami

U hostovaných modelů s otevřenými váhami jsou prompt_tokens vaše zprávy a definice nástrojů spočítané vlastním tokenizérem modelu plus tokeny případných obrázků. Endpointy pro počítání tokenů vrací stejné číslo dřív, než odešlete. Počítání tokenů

Na úrovních Shannon prompt_tokens počítá všechno, co model přečetl, aby napsal odpověď, takže je větší než samotný text vašich zpráv.

Streamování

S stream nastaveným na true odpověď přichází jako události chat.completion.chunk a končí data: [DONE]. Poslední chunk před ním nese finish_reason a usage; stream_options nejsou potřeba. Tvary chunků, keep-alive řádky a chyby uvnitř streamu mají vlastní stránku. Streamování

Chyby

Chyba je objekt JSON se členem error. Kontroly probíhají v tomto pořadí: API klíč, tělo požadavku, id modelu, pak zůstatek. Tabulka uvádí, co tento endpoint vrací nejčastěji. Úplný seznam, včetně toho, co opakovat, má vlastní stránku. Zpracování chyb

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Stav Typ Zpráva Kdy
401 authentication_error Missing authentication
Invalid API key
Nebyl odeslán žádný API klíč, nebo je klíč neznámý či zrušený.
400 invalid_request_error unknown model: <id> model není zveřejněné id.
400 invalid_request_error No user message provided Úrovně Shannon: požadavek neobsahuje žádný uživatelský text ani tools.
400 invalid_request_error <id> does not accept image input Část s obrázkem byla odeslána hostovanému modelu s otevřenými váhami bez obrázkového vstupu.
400 invalid_request_error <id> does not accept response_format response_format byl odeslán hostovanému modelu s otevřenými váhami bez strukturovaného výstupu.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort obsahuje hodnotu mimo seznam.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … Chybí messages, nebo má některé pole špatný typ JSON.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens je větší, než kolik zbývá z vašeho zůstatku.
429 rate_limit_error Too many requests. Retry in <n>s. Ochrana proti zahlcení: více než 120 požadavků za jednu minutu na vašem účtu.
500 server_error The model backend failed to answer. Please retry. Model nevytvořil odpověď. Odešlete požadavek znovu.
502 api_error The model backend failed to answer. Please retry. Totéž, u rodiny Shannon 3 a hostovaných modelů s otevřenými váhami.