Мазмұнға өту
Chat Completions

Chat Completions

POST /v1/chat/completions сөйлесуді қабылдап, модельдің келесі хабарламасын OpenAI Chat Completions форматында қайтарады. Оны кез келген OpenAI SDK-дан немесе жай HTTP арқылы қолданыңыз; бұл бет — өрістер бойынша анықтамалық.

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

Ең кіші сұрау — модель id-і және бір пайдаланушы хабарламасы.

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)

Жауап — бір 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
  }
}

Тақырыптар

Сұрау тақырыптары

Тақырып Мәні Сипаттама
Authorization Bearer YOUR_API_KEY API кілтіңіз. Оның орнына әр endpoint-те x-api-key: YOUR_API_KEY қабылданады.
Content-Type application/json Міндетті. Кез келген басқа мән 415 қайтарады.
x-request-id Міндетті емес. Сұрау үшін өз id-ңіз. Ол жауапта өзгеріссіз қайтады.

Жауап тақырыптары

Тақырып Сипаттама
x-request-id Әр жауапта, қателер мен стримдерді қоса: өзіңіз жіберген мән, ал ештеңе жібермесеңіз 12 оналтылық таңба. Мәселе туралы хабарлағанда оны келтіріңіз.
content-type application/json, немесе stream мәні true болғанда text/event-stream.

Сұрау өрістері

Тек messages міндетті. Қолданады бағанында өріс жауапты өзгертетін модельдер аталған. Hosted open-weight модельдер — модельдер тізіміндегі он екі id; Shannon 3 отбасы — shannon-3, shannon-3-pro, shannon-3.1 және shannon-3.1-pro. Модельдер және бағалар

Өріс Түрі Әдепкі Сипаттама Қолданады
model string shannon-1.6-lite Жауап беретін модель: модельдер тізіміндегі id. Оны әр сұраумен жіберіңіз. Сәйкестендіруде регистр ескерілмейді. Жарияланбаған id 400 unknown model қайтарады. Барлық модельдер
messages array Міндетті. Әңгіме, ең ескі хабарлама бірінші. Төмендегі «Хабарламалар» бөлімін қараңыз. Барлық модельдер
stream boolean false true жауапты жазылып жатқанда server-sent events ретінде жібереді. Барлық модельдер
max_tokens integer 4096 Жауаптың жоғарғы шегі, токенмен. 1-ден 65,536-ға дейінгі аралықтан тыс мән сол аралыққа түзетіледі. Сондай-ақ сұрау орындалып жатқанда балансыңыздан бөлек сақталатын сома осы. Төмендегі «Шығыс ұзындығы» бөлімін қараңыз. Hosted open-weight модельдер, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer max_tokens сияқты. Екеуі де жіберілсе, max_tokens қолданылады. Hosted open-weight модельдер, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Сэмплинг температурасы. Hosted open-weight модельдерде әдепкі мән 1, ал мәндер 0 мен 2 арасында ұсталады. Hosted open-weight модельдер, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. Мәндер 0 мен 1 арасында ұсталады. Hosted open-weight модельдер
seed integer Сэмплердің seed мәні, кез келген бүтін сан. Онсыз seed модельден және сөйлесуден алынады, сондықтан екі рет жіберілген бірдей сұрау бірдей seed қолданады. Hosted open-weight модельдер
stop string | array Жол немесе жолдар массиві. 4-ке дейіні қолданылады. Жауап пайда болған біріншісінің алдында аяқталады; тоқтату мәтіні өзі қайтарылмайды. Hosted open-weight модельдер
reasoning_effort string high Модель жауап бермес бұрын қаншалықты пайымдайды: off, low, medium немесе high. none және minimal — off, default — medium, max — high дегенді білдіреді. Кез келген басқа мән 400 қайтарады. Hosted open-weight модельдер
reasoning object Сол параметр нысан түрінде: {"effort": "low"}. Екеуі де жіберілсе, reasoning_effort қолданылады. Hosted open-weight модельдер
tools array Модель шақыра алатын функциялар, әрқайсысы {"type": "function", "function": {"name", "description", "parameters"}} түрінде. Модельдің шақырулары tool_calls ішінде қайтады; оларды кодыңыз орындайды. Барлық модельдер
tool_choice string | object auto "auto" модельге өзі шешуге мүмкіндік береді. "required" құралды шақыруға мәжбүр етеді. {"type": "function", "function": {"name": "…"}} нақты сол құралды шақыртады. Hosted open-weight модельдер
response_format object JSON жауабы үшін {"type": "json_object"}, немесе схемаңызға сай жауап үшін {"type": "json_schema", "json_schema": {…}}. Барлық Shannon деңгейлері; hosted open-weight модельдер әр id бойынша көрсетілгендей
web_search boolean false true модельге жауап бермес бұрын вебте іздеуге мүмкіндік береді. shannon-1.6-*, shannon-2-*, Shannon 3 отбасы

n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store және prompt_cache_key сияқты басқа OpenAI өрістері бар клиент коды өзгеріссіз жұмыс істеуі үшін қабылданады. Олар жауапты өзгертпейді: әрқашан бір choice болады, ал стрим әрқашан usage-пен аяқталады.

JSON түрі қате өріс, мысалы "max_tokens": "100", 422 қайтарады. messages жоқ сұрау да солай.

Құралдардың, құрылымдалған шығыстың, пайымдаудың және веб іздеудің әрқайсысының өз беті бар: Функция шақыру, Құрылымдалған нәтижелер, Пайымдау күші, Кіріктірілген веб іздеу.

Параметрлері бар сұрау

Бұл сұрау system хабарламасын, сэмплинг өрістерін және пайымдау күшін орнатады. Ол барлығын қолданатын hosted open-weight модельді пайдаланады.

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)

Жауап жоғардағыдай пішінде. Hosted open-weight модельдерде оның usage өрісі екі бөлшек қосады: кэштен оқылған промпт токендері және пайымдауға жұмсалған токендер.

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

Шығыс ұзындығы

max_tokens екі нәрсе істейді. Біріншіден, ол сұрау басталғанда балансыңыздан бөлек сақталатын токен саны. Жауап толық болғанда бұл сома сұраудың жұмсаған токендерімен ауыстырылады. max_tokens балансыңыздың қалдығынан үлкен болса, жауабының өзі сыйса да, сұрау 429 Quota exceeded қайтарады. Азырақ бөлек сақтау үшін төменірек max_tokens жіберіңіз.

shannon-coder-1 бұл endpoint-те басқаша есептеледі: әр сұрау жоспарыңыздың Shannon Coder шақыруларының бірі болады және оған токен бөлек сақталмайды. Шектеулер және баланс

Екіншіден, ол мына модельдерде жауап ұзындығын шектейді:

Модельдер max_tokens не істейді
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Жауап шекке жеткенде тоқтайды. Стрим сонда finish_reason length мәнімен аяқталады.
Hosted open-weight модельдер Жауап мәтіні max_tokens мәнінде тоқтайды. Пайымдау оған есептелмейді. 256-дан төмен мәндер 256 ретінде қабылданады.

max_tokens немесе max_completion_tokens болмаса, мән 4,096. shannon-coder-1 үшін ол 65,536.

Хабарламалар

Әр хабарлама — role және content бар нысан. content — жол, немесе хабарлама мәтіннен басқаны да алып жүрсе, бөліктер массиві.

Рөл Сипаттама Қолданады
system Модельге нұсқаулар. Оны бірінші қойыңыз. Shannon деңгейлерінде бірінші system хабарламасы қолданылады. Hosted open-weight модельдер, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer system ретінде оқылады. Hosted open-weight модельдер
user Сіздің сұрағыңыз. Shannon деңгейлерінде соңғы user хабарламасы — промпт, одан бұрынғы хабарламалар — тарих. Барлық модельдер
assistant Модельдің алдыңғы жауаптары. Одан кейін құрал нәтижесін жібергенде оның tool_calls өрісін сақтаңыз. Барлық модельдер
tool Құрал шақыруының нәтижесі: tool_call_id шақырудың id-ін, content нәтижені жол ретінде қамтиды. Барлық модельдер

Shannon 3 отбасының id-імен орындалуы міндетті нұсқауларды user хабарламасына қойыңыз.

Shannon деңгейлерінде пайдаланушы мәтіні де, tools та жоқ сұрау 400 No user message provided қайтарады.

Мазмұн бөліктері

Бөлік Сипаттама Қолжетімді
{"type": "text", "text": "…"} Жай мәтін. Барлық модельдер
{"type": "image_url", "image_url": {"url": "…"}} Сурет, base64 мазмұны бар data: URL ретінде немесе http(s) URL ретінде. Shannon 3 отбасы, shannon-1.6-lite, shannon-1.6-pro және сурет кірісі көрсетілген hosted open-weight модельдер
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Құжат (PDF, Word, PowerPoint немесе Excel), base64 түрінде немесе URL арқылы. Shannon 3 отбасы

Өлшемдердің, шектеулердің және формалардың толық тізімінің өз беті бар. Суреттер және файлдар

Жауап нысаны

Өріс Түрі Сипаттама
id string chatcmpl- және одан кейін 32 оналтылық таңба.
object string Әрқашан chat.completion.
created integer Жауап уақыты, Unix секундтарымен.
model string Жауап берген модельдің каноникалық id-і. Ол өзіңіз жіберген id-ден жазылуы жағынан өзгеше болуы мүмкін.
choices array Әрқашан дәл бір choice, index мәні 0.
choices[0].message.role string Әрқашан assistant.
choices[0].message.content string | null Жауап мәтіні. tool_calls болғанда Shannon деңгейлерінде ол null; hosted open-weight модельдер шақырулармен қатар мәтін жібере алады.
choices[0].message.reasoning_content string | null Модель жауаптан бұрын жазған пайымдау, немесе ол болмаса null.
choices[0].message.tool_calls array Тек модель құралдарды шақырғанда болады. Әр жазбада id, type мәні function және name мен JSON жолы түріндегі arguments бар function өрістері бар.
choices[0].message.annotations array Тек іздеуі бірдеңе тапқан web_search: true бар сұрауда. content ішіндегі белгі атаған әр дереккөз үшін бір url_citation, оның ішінде url, title, start_index және end_index бар (белгінің орны, таңбамен есептелген, соңы кірмейді).
choices[0].finish_reason string Жауап неге аяқталды. «Аяқталу себептерін» қараңыз.
usage object Сұраудың токендері. «Usage» бөлімін қараңыз.
sources array Тек іздеуі бірдеңе тапқан web_search: true бар сұрауда: модельге берілген нәтижелер, әрқайсысында index, title және url бар. Жауаптағы [1] — index мәні 1 болатын жазба.

Аяқталу себептері

finish_reason Сипаттама
stop Модель жауабын аяқтады, немесе stop жолы пайда болды.
tool_calls Модель бір немесе бірнеше құралды шақырады. Оларды орындап, нәтижелерді tool хабарламаларымен жіберіңіз.
length Жауап шығыс шегінде үзілді. shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 және Shannon 3 отбасының стримдерінде хабарланады.

Стримсіз жауап stop немесе tool_calls хабарлайды.

Usage

Өріс Түрі Сипаттама Қолжетімді
usage.prompt_tokens integer Кіріс токендері. Барлық модельдер
usage.completion_tokens integer Шығыс токендері: пайымдау, жауап және құрал шақырулары бірге. Барлық модельдер
usage.total_tokens integer prompt_tokens плюс completion_tokens. Барлық модельдер
usage.prompt_tokens_details.cached_tokens integer prompt_tokens ішінен промпт кэшінен оқылған бөлігі. Hosted open-weight модельдер
usage.completion_tokens_details.reasoning_tokens integer completion_tokens ішінен пайымдауға жұмсалған бөлігі. Hosted open-weight модельдер

Hosted open-weight модельдерде prompt_tokens — хабарламаларыңыз бен құрал анықтамалары модельдің өз токенайзерімен есептелгені, плюс кез келген суреттердің токендері. Токен санау endpoint-тері жібермес бұрын дәл сол санды қайтарады. Токендерді санау

Shannon деңгейлерінде prompt_tokens модель жауап жазу үшін оқыған бәрін есептейді, сондықтан ол тек хабарламаларыңыздың мәтінінен үлкен.

Streaming

stream мәні true болғанда жауап chat.completion.chunk оқиғалары ретінде келіп, data: [DONE] жолымен аяқталады. Оның алдындағы соңғы бөлік finish_reason және usage алып жүреді; stream_options қажет емес. Бөлік пішіндерінің, keep-alive жолдарының және стрим ішіндегі қателердің өз беті бар. Стриминг

Қателер

Қате — error мүшесі бар JSON нысаны. Тексерулер мына ретпен орындалады: API кілті, сұрау денесі, модель id-і, содан кейін баланс. Кестеде осы endpoint ең жиі қайтаратындар берілген. Толық тізімнің, нені қайталау керегімен бірге, өз беті бар. Қателерді өңдеу

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Мәртебе Түрі Хабарлама Қашан
401 authentication_error Missing authentication
Invalid API key
API кілті жіберілмеген, немесе кілт белгісіз не күші жойылған.
400 invalid_request_error unknown model: <id> model жарияланған id емес.
400 invalid_request_error No user message provided Shannon деңгейлері: сұраудың пайдаланушы мәтіні де, tools та жоқ.
400 invalid_request_error <id> does not accept image input Сурет кірісі жоқ hosted open-weight модельге сурет бөлігі жіберілді.
400 invalid_request_error <id> does not accept response_format response_format құрылымдалған шығысы жоқ hosted open-weight модельге жіберілді.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort тізімнен тыс мәнді қамтиды.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages жоқ, немесе өрістің JSON түрі қате.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens балансыңыздың қалдығынан үлкен.
429 rate_limit_error Too many requests. Retry in <n>s. Flood protection: аккаунтыңызда бір минутта 120-дан астам сұрау.
500 server_error The model backend failed to answer. Please retry. Модель жауап бермеді. Сұрауды қайта жіберіңіз.
502 api_error The model backend failed to answer. Please retry. Сол сияқты, Shannon 3 отбасында және hosted open-weight модельдерде.