Ugrás a tartalomra
Chat Completions

Chat Completions

A POST /v1/chat/completions egy beszélgetést fogad, és a modell következő üzenetét adja vissza az OpenAI Chat Completions formátumában. Használhatod bármelyik OpenAI SDK-ból vagy sima HTTP-n; ez az oldal a mezőnkénti referencia.

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

A legkisebb kérés egy modellazonosító és egy felhasználói üzenet.

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)

A válasz egyetlen JSON-objektum:

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

Fejlécek

Kérésfejlécek

Fejléc Érték Leírás
Authorization Bearer YOUR_API_KEY Az API-kulcsod. Helyette minden végponton elfogadott az x-api-key: YOUR_API_KEY.
Content-Type application/json Kötelező. Bármilyen más érték 415 hibát ad.
x-request-id Nem kötelező. A kérés saját azonosítód. Változtatás nélkül visszajön a válaszban.

Válaszfejlécek

Fejléc Leírás
x-request-id Minden válaszon, a hibákon és a streameken is: az általad küldött érték, vagy 12 hexadecimális karakter, ha nem küldtél. Hibabejelentéskor add meg.
content-type application/json, vagy text/event-stream, ha a stream értéke true.

Kérésmezők

Csak a messages kötelező. Az Alkalmazza oszlop megnevezi azokat a modelleket, amelyeken a mező megváltoztatja a választ. A hosztolt nyílt súlyú modellek a modelllista tizenkét azonosítója; a Shannon 3 család a shannon-3, shannon-3-pro, shannon-3.1 és shannon-3.1-pro. Modellek és árak

Mező Típus Alapérték Leírás Alkalmazza
model string shannon-1.6-lite A válaszoló modell: egy azonosító a modelllistából. Minden kéréssel küldd el. Az egyeztetés nem tesz különbséget kis- és nagybetű között. A nem közzétett azonosító 400 unknown model hibát ad. Minden modell
messages array Kötelező. A beszélgetés, a legrégebbi üzenettel kezdve. Lásd lent az Üzenetek részt. Minden modell
stream boolean false true esetén a válasz írás közben server-sent eventsként érkezik. Minden modell
max_tokens integer 4096 A válasz felső korlátja tokenben. Az 1 és 65,536 közötti tartományon kívüli értéket a rendszer a tartományba igazítja. Ennyit foglal le az egyenlegedből a kérés futása alatt. Lásd lent a Kimenet hossza részt. Hosztolt nyílt súlyú modellek, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer Ugyanaz, mint a max_tokens. Ha mindkettőt elküldöd, a max_tokens érvényes. Hosztolt nyílt súlyú modellek, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Mintavételi hőmérséklet. A hosztolt nyílt súlyú modelleken az alapérték 1, és az értékek 0 és 2 között maradnak. Hosztolt nyílt súlyú modellek, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. Az értékek 0 és 1 között maradnak. Hosztolt nyílt súlyú modellek
seed integer A mintavételező seed értéke, tetszőleges egész szám. Nélküle a seed a modellből és a beszélgetésből származik, így kétszer elküldött ugyanaz a kérés ugyanazt a seedet használja. Hosztolt nyílt súlyú modellek
stop string | array Egy string vagy stringek tömbje. Legfeljebb 4-et használ a rendszer. A válasz az első megjelenő előtt véget ér; magát a stop szöveget nem adja vissza. Hosztolt nyílt súlyú modellek
reasoning_effort string high Mennyit gondolkodik a modell a válasz előtt: off, low, medium vagy high. A none és a minimal jelentése off, a default jelentése medium, a max jelentése high. Bármilyen más érték 400 hibát ad. Hosztolt nyílt súlyú modellek
reasoning object Ugyanez a beállítás objektum alakban: {"effort": "low"}. Ha mindkettőt elküldöd, a reasoning_effort érvényes. Hosztolt nyílt súlyú modellek
tools array A függvények, amelyeket a modell meghívhat, mindegyik {"type": "function", "function": {"name", "description", "parameters"}} alakban. A modell hívásai a tool_calls mezőben jönnek vissza; a kódod futtatja őket. Minden modell
tool_choice string | object auto Az "auto" a modellre bízza a döntést. A "required" eszközhívásra kényszeríti. A {"type": "function", "function": {"name": "…"}} arra kényszeríti, hogy azt az eszközt hívja. Hosztolt nyílt súlyú modellek
response_format object {"type": "json_object"} JSON-válaszhoz, vagy {"type": "json_schema", "json_schema": {…}} a sémádat követő válaszhoz. Minden Shannon szint; a hosztolt nyílt súlyú modellek azonosítónként a listán szereplő módon
web_search boolean false true esetén a modell a válasz előtt keres a weben. shannon-1.6-*, shannon-2-*, Shannon 3 család

Más OpenAI-mezők, például az n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store és prompt_cache_key elfogadottak, hogy a meglévő klienskód változtatás nélkül fusson. Nem változtatják meg a választ: mindig egyetlen choice van, és a stream mindig használati adattal végződik.

A hibás JSON-típusú mező, például "max_tokens": "100", 422 hibát ad. A messages nélküli kérés is.

Az eszközöknek, a strukturált kimenetnek, a reasoningnak és a webes keresésnek külön oldaluk van: Funkcióhívás, Strukturált kimenetek, Reasoning effort, Beépített webes keresés.

Egy kérés opciókkal

Ez a kérés rendszerüzenetet, mintavételi mezőket és reasoning effortot állít be. Hosztolt nyílt súlyú modellt használ, amely mindet alkalmazza.

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)

A válasz alakja ugyanaz, mint fent. A hosztolt nyílt súlyú modelleken a usage két részlettel bővül: a gyorsítótárból olvasott prompt-tokenekkel és a reasoningra költött tokenekkel.

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

Kimenet hossza

A max_tokens két dolgot tesz. Először: ennyi tokent foglal le az egyenlegedből a kérés indulásakor. Ha a válasz kész, ezt a mennyiséget a kérés által ténylegesen használt tokenek váltják fel. Ha a max_tokens nagyobb, mint az egyenlegedből megmaradt rész, a kérés 429 Quota exceeded hibát ad, még akkor is, ha maga a válasz elfért volna. Kevesebb lefoglalásához küldj kisebb max_tokens értéket.

A shannon-coder-1 ezen a végponton másképp számít: minden kérés a csomagod egy Shannon Coder hívása, és nem foglalnak le hozzá tokent. Korlátok és egyenleg

Másodszor: ezeken a modelleken korlátozza a válasz hosszát:

Modellek Mit csinál a max_tokens
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 A válasz a korlát elérésekor megáll. A stream ilyenkor length finish_reason értékkel ér véget.
Hosztolt nyílt súlyú modellek A válasz szövege a max_tokens értéknél megáll. A reasoning nem számít bele. A 256 alatti értékeket a rendszer 256-ként kezeli.

max_tokens vagy max_completion_tokens nélkül az érték 4,096. A shannon-coder-1 modellen 65,536.

Üzenetek

Minden üzenet egy objektum role és content mezővel. A content egy string, vagy részek tömbje, ha az üzenet nem csak szöveget hordoz.

Szerep Leírás Alkalmazza
system Utasítások a modellnek. Tedd az elejére. A Shannon szinteken az első system üzenetet használja a rendszer. Hosztolt nyílt súlyú modellek, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system üzenetként olvasva. Hosztolt nyílt súlyú modellek
user Amit kérdezel. A Shannon szinteken az utolsó user üzenet a prompt, az előtte lévő üzenetek az előzmények. Minden modell
assistant A modell korábbi válaszai. Tartsd meg a tool_calls mezőt, ha utána eszköz eredményét küldöd. Minden modell
tool Egy eszközhívás eredménye: a tool_call_id a hívás azonosítóját, a content az eredményt tartalmazza stringként. Minden modell

Shannon 3 családbeli azonosítónál a feltétlenül betartandó utasításokat tedd a user üzenetbe.

A Shannon szinteken a felhasználói szöveg és tools nélküli kérés 400 No user message provided hibát ad.

Tartalomrészek

Rész Leírás Elérhető ezeken
{"type": "text", "text": "…"} Sima szöveg. Minden modell
{"type": "image_url", "image_url": {"url": "…"}} Egy kép, data: URL-ként base64 tartalommal vagy http(s) URL-ként. Shannon 3 család, shannon-1.6-lite, shannon-1.6-pro, és a hosztolt nyílt súlyú modellek, amelyek képbemenetet támogatnak
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Egy dokumentum (PDF, Word, PowerPoint vagy Excel), base64-ként vagy URL-lel. Shannon 3 család

A méreteknek, korlátoknak és az alakok teljes listájának külön oldala van. Képek és fájlok

A válaszobjektum

Mező Típus Leírás
id string chatcmpl-, utána 32 hexadecimális karakter.
object string Mindig chat.completion.
created integer A válasz ideje Unix-másodpercben.
model string A válaszoló modell kanonikus azonosítója. Írásmódjában eltérhet az általad küldött azonosítótól.
choices array Mindig pontosan egy choice, index értéke 0.
choices[0].message.role string Mindig assistant.
choices[0].message.content string | null A válasz szövege. tool_calls esetén a Shannon szinteken null; a hosztolt nyílt súlyú modellek a hívások mellett szöveget is küldhetnek.
choices[0].message.reasoning_content string | null A reasoning, amelyet a modell a válasz előtt írt, vagy null, ha nincs.
choices[0].message.tool_calls array Csak akkor van jelen, ha a modell eszközöket hív. Minden elemnek van id, type (function) és function mezője, benne a name és az arguments JSON-stringként.
choices[0].message.annotations array Csak olyan kérésnél, amely web_search: true értéket küld, és amelynek a keresése talált valamit. Egy url_citation minden olyan forráshoz, amelyet a content egy jelölője megnevez, url, title, start_index és end_index mezővel (a jelölő helye karakterekben számolva, a vég nem tartozik bele).
choices[0].finish_reason string Miért ért véget a válasz. Lásd a Befejezési okok részt.
usage object A kérés tokenjei. Lásd: Használat.
sources array Csak olyan kérésnél, amely web_search: true értéket küld, és amelynek a keresése talált valamit: az eredmények, amelyeket a modell megkapott, mindegyik index, title és url mezővel. A válaszban az [1] az index 1 értékű elem.

Befejezési okok

finish_reason Leírás
stop A modell befejezte a válaszát, vagy megjelent egy stop string.
tool_calls A modell egy vagy több eszközt hív. Futtasd le őket, és az eredményeket tool üzenetekben küldd vissza.
length A választ a kimeneti korlátnál megszakította a rendszer. A shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 és a Shannon 3 család streamjeiben jelenik meg.

A nem streamelt válasz stop vagy tool_calls értéket jelez.

Használat

Mező Típus Leírás Elérhető ezeken
usage.prompt_tokens integer Bemeneti tokenek. Minden modell
usage.completion_tokens integer Kimeneti tokenek: a reasoning, a válasz és az eszközhívások együtt. Minden modell
usage.total_tokens integer prompt_tokens plusz completion_tokens. Minden modell
usage.prompt_tokens_details.cached_tokens integer A prompt_tokens prompt-gyorsítótárból olvasott része. Hosztolt nyílt súlyú modellek
usage.completion_tokens_details.reasoning_tokens integer A completion_tokens reasoningra költött része. Hosztolt nyílt súlyú modellek

A hosztolt nyílt súlyú modelleken a prompt_tokens az üzeneteid és eszközdefiníciód a modell saját tokenizerével számolva, plusz az esetleges képek tokenjei. A tokenszámláló végpontok küldés előtt ugyanezt a számot adják vissza. Tokenszámlálás

A Shannon szinteken a prompt_tokens mindent számol, amit a modell a válasz megírásához elolvasott, ezért nagyobb, mint az üzeneteid szövege egyedül.

Streaming

A stream true értékével a válasz chat.completion.chunk eseményekként érkezik, és data: [DONE] sorral ér véget. Az előtte lévő utolsó chunk tartalmazza a finish_reason és a usage értékét; stream_options nem szükséges. A chunkok alakjának, a keep-alive soroknak és a streamen belüli hibáknak külön oldaluk van. Streaming

Hibák

A hiba egy JSON-objektum error taggal. Az ellenőrzések ebben a sorrendben futnak: API-kulcs, kérés törzse, modellazonosító, majd egyenleg. A táblázat azt sorolja fel, amit ez a végpont leggyakrabban visszaad. A teljes listának, azzal együtt, hogy mit érdemes újrapróbálni, külön oldala van. Hibakezelés

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Státusz Típus Üzenet Mikor
401 authentication_error Missing authentication
Invalid API key
Nem küldtél API-kulcsot, vagy a kulcs ismeretlen vagy vissza van vonva.
400 invalid_request_error unknown model: <id> A model nem közzétett azonosító.
400 invalid_request_error No user message provided Shannon szintek: a kérésben nincs felhasználói szöveg és nincs tools.
400 invalid_request_error <id> does not accept image input Képrészt küldtek egy olyan hosztolt nyílt súlyú modellnek, amely nem támogat képbemenetet.
400 invalid_request_error <id> does not accept response_format response_format mezőt küldtek egy strukturált kimenet nélküli hosztolt nyílt súlyú modellnek.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high A reasoning_effort a listán kívüli értéket tartalmaz.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … A messages hiányzik, vagy egy mező JSON-típusa hibás.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan A max_tokens nagyobb, mint az egyenlegedből megmaradt rész.
429 rate_limit_error Too many requests. Retry in <n>s. Flood protection: egy percen belül több mint 120 kérés érkezett a fiókodról.
500 server_error The model backend failed to answer. Please retry. A modell nem adott választ. Küldd el újra a kérést.
502 api_error The model backend failed to answer. Please retry. Ugyanez a Shannon 3 családon és a hosztolt nyílt súlyú modelleken.