Ruka hadi kwenye maudhui
Chat Completions

Chat Completions

POST /v1/chat/completions inapokea mazungumzo na kurudisha ujumbe unaofuata wa model kwa umbizo la OpenAI Chat Completions. Itumie kutoka SDK yoyote ya OpenAI au kwa HTTP ya kawaida; ukurasa huu ni marejeo ya field kwa field.

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

Ombi dogo zaidi ni model id na ujumbe mmoja wa user.

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)

Jibu ni kitu kimoja cha 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
  }
}

Headers

Headers za ombi

Header Thamani Maelezo
Authorization Bearer YOUR_API_KEY API key yako. x-api-key: YOUR_API_KEY inakubaliwa badala yake kwenye kila endpoint.
Content-Type application/json Inahitajika. Thamani nyingine yoyote hurudisha 415.
x-request-id Si lazima. Id yako mwenyewe ya ombi. Inarudi bila mabadiliko kwenye jibu.

Headers za jibu

Header Maelezo
x-request-id Kwenye kila jibu, pamoja na makosa na streams: thamani uliyotuma, au herufi 12 za hexadecimal ukiwa hukutuma yoyote. Itaje unaporipoti tatizo.
content-type application/json, au text/event-stream wakati stream ni true.

Fields za ombi

messages pekee ndiyo inahitajika. Safu ya Inatumiwa na inataja model ambazo field inabadilisha jibu juu yake. Model za open-weight zinazopangishwa ni id kumi na mbili za orodha ya model; familia ya Shannon 3 ni shannon-3, shannon-3-pro, shannon-3.1 na shannon-3.1-pro. Model na bei

Field Aina Chaguo-msingi Maelezo Inatumiwa na
model string shannon-1.6-lite Model inayojibu: id kutoka kwenye orodha ya model. Itume na kila ombi. Ulinganishaji hauangalii herufi kubwa na ndogo. Id ambayo haijachapishwa hurudisha 400 unknown model. Model zote
messages array Inahitajika. Mazungumzo, ujumbe wa zamani zaidi kwanza. Tazama Ujumbe hapa chini. Model zote
stream boolean false true hutuma jibu kama server-sent events linapoandikwa. Model zote
max_tokens integer 4096 Kikomo cha juu cha jibu, kwa tokens. Thamani iliyo nje ya 1 hadi 65,536 huhamishiwa ndani ya masafa hayo. Pia ni kiasi kinachotengwa kutoka kwenye salio lako wakati ombi linaendelea. Tazama Urefu wa output hapa chini. Model za open-weight zinazopangishwa, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
max_completion_tokens integer Sawa na max_tokens. Zote mbili zikitumwa, max_tokens hutumika. Model za open-weight zinazopangishwa, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
temperature number Sampling temperature. Kwenye model za open-weight zinazopangishwa chaguo-msingi ni 1 na thamani huwekwa kati ya 0 na 2. Model za open-weight zinazopangishwa, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1
top_p number 0.95 Nucleus sampling. Thamani huwekwa kati ya 0 na 1. Model za open-weight zinazopangishwa
seed integer Seed ya sampler, integer yoyote. Bila hiyo, seed hutokana na model na mazungumzo, kwa hiyo ombi lile lile likitumwa mara mbili hutumia seed ile ile. Model za open-weight zinazopangishwa
stop string | array String au array ya strings. Hadi 4 hutumika. Jibu huisha kabla ya ya kwanza inayoonekana; maandishi ya stop yenyewe hayarudishwi. Model za open-weight zinazopangishwa
reasoning_effort string high Kiasi ambacho model hufikiri kabla ya kujibu: off, low, medium au high. none na minimal humaanisha off, default humaanisha medium, max humaanisha high. Thamani nyingine yoyote hurudisha 400. Model za open-weight zinazopangishwa
reasoning object Mpangilio ule ule kwa umbo la kitu: {"effort": "low"}. Zote mbili zikitumwa, reasoning_effort hutumika. Model za open-weight zinazopangishwa
tools array Functions ambazo model inaweza kuita, kila moja kama {"type": "function", "function": {"name", "description", "parameters"}}. Wito wa model unarudi kwenye tool_calls; code yako inaziendesha. Model zote
tool_choice string | object auto "auto" huiacha model iamue. "required" huifanya iite tool. {"type": "function", "function": {"name": "…"}} huifanya iite tool hiyo. Model za open-weight zinazopangishwa
response_format object {"type": "json_object"} kwa jibu la JSON, au {"type": "json_schema", "json_schema": {…}} kwa jibu linalofuata schema yako. Viwango vyote vya Shannon; model za open-weight zinazopangishwa kama zilivyoorodheshwa kwa kila id
web_search boolean false true huiruhusu model kutafuta kwenye wavuti kabla ya kujibu. shannon-1.6-*, shannon-2-*, familia ya Shannon 3

Fields nyingine za OpenAI, kama n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store na prompt_cache_key, zinakubaliwa ili code ya client iliyopo ifanye kazi bila mabadiliko. Haziathiri jibu: daima kuna choice moja, na stream daima huisha na usage.

Field yenye aina isiyo sahihi ya JSON, kwa mfano "max_tokens": "100", hurudisha 422. Ombi lisilo na messages pia.

Tools, matokeo yaliyopangwa, reasoning na web search kila moja ina ukurasa wake: Uitoaji wa kazi, Matokeo yaliyopangwa, Reasoning effort, Utafutaji wa wavuti.

Ombi lenye options

Ombi hili linaweka ujumbe wa system, fields za sampling na reasoning effort. Linatumia model ya open-weight inayopangishwa, ambayo huzitumia zote.

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)

Jibu lina umbo lile lile la juu. usage yake huongeza maelezo mawili kwenye model za open-weight zinazopangishwa: tokens za prompt zilizosomwa kutoka cache na tokens zilizotumika kwa reasoning.

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

Urefu wa output

max_tokens hufanya mambo mawili. Kwanza, ni idadi ya tokens inayotengwa kutoka kwenye salio lako ombi linapoanza. Jibu likikamilika, kiasi hicho hubadilishwa na tokens ambazo ombi lilitumia. Ikiwa max_tokens ni kubwa kuliko kilichobaki kwenye salio lako, ombi hurudisha 429 Quota exceeded hata kama jibu lenyewe lingetosha. Tuma max_tokens ndogo zaidi ili kutenga kidogo.

shannon-coder-1 huhesabiwa tofauti kwenye endpoint hii: kila ombi ni mojawapo ya wito wa Shannon Coder wa mpango wako, na hakuna tokens zinazotengwa kwa ajili yake. Mipaka na salio

Pili, inapunguza urefu wa jibu kwenye model hizi:

Model Kile max_tokens hufanya
shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 Jibu husimama linapofikia kikomo. Stream kisha huisha na finish_reason length.
Model za open-weight zinazopangishwa Maandishi ya jibu husimama kwenye max_tokens. Reasoning haihesabiwi dhidi yake. Thamani chini ya 256 hufanya kazi kama 256.

Bila max_tokens au max_completion_tokens, thamani ni 4,096. Kwenye shannon-coder-1 ni 65,536.

Ujumbe

Kila ujumbe ni kitu chenye role na content. content ni string, au array ya sehemu wakati ujumbe unabeba zaidi ya maandishi.

Role Maelezo Inatumiwa na
system Maagizo kwa model. Yaweke kwanza. Kwenye viwango vya Shannon ujumbe wa kwanza wa system ndio unaotumika. Model za open-weight zinazopangishwa, shannon-1.6-*, shannon-2-*, shannon-coder-1
developer Husomwa kama system. Model za open-weight zinazopangishwa
user Unachouliza. Kwenye viwango vya Shannon ujumbe wa mwisho wa user ndio prompt na ujumbe wa kabla yake ni historia. Model zote
assistant Majibu ya awali ya model. Weka tool_calls zake unapotuma matokeo ya tool baada yake. Model zote
tool Matokeo ya wito wa tool: tool_call_id ina id ya wito na content ina matokeo kama string. Model zote

Ukiwa na id ya familia ya Shannon 3, weka maagizo yanayopaswa kushikilia kwenye ujumbe wa user.

Kwenye viwango vya Shannon ombi lisilo na maandishi ya user wala tools hurudisha 400 No user message provided.

Sehemu za maudhui

Sehemu Maelezo Inapatikana kwenye
{"type": "text", "text": "…"} Maandishi matupu. Model zote
{"type": "image_url", "image_url": {"url": "…"}} Picha, kama URL ya data: yenye maudhui ya base64 au kama URL ya http(s). Familia ya Shannon 3, shannon-1.6-lite, shannon-1.6-pro, na model za open-weight zinazopangishwa zinazoorodhesha input ya picha
{"type": "file", "source": {"type": "base64", "media_type": "application/pdf", "data": "…"}} Hati (PDF, Word, PowerPoint au Excel), kama base64 au kwa URL. Familia ya Shannon 3

Ukubwa, mipaka na orodha kamili ya maumbo vina ukurasa wake. Picha na mafaili

Kitu cha jibu

Field Aina Maelezo
id string chatcmpl- ikifuatiwa na herufi 32 za hexadecimal.
object string Daima chat.completion.
created integer Wakati wa jibu, kwa sekunde za Unix.
model string Id rasmi ya model iliyojibu. Inaweza kutofautiana kwa tahajia na id uliyotuma.
choices array Daima choice moja tu, yenye index 0.
choices[0].message.role string Daima assistant.
choices[0].message.content string | null Maandishi ya jibu. Pamoja na tool_calls ni null kwenye viwango vya Shannon; model za open-weight zinazopangishwa zinaweza kutuma maandishi kando ya wito.
choices[0].message.reasoning_content string | null Reasoning ambayo model iliandika kabla ya jibu, au null ikiwa hakuna.
choices[0].message.tool_calls array Ipo tu wakati model inaita tools. Kila entry ina id, type function, na function yenye name na arguments kama JSON string.
choices[0].message.annotations array Kwenye ombi lenye web_search: true pekee ambalo utafutaji wake ulipata kitu. url_citation moja kwa kila chanzo ambacho alama kwenye content inakitaja, yenye url, title, start_index na end_index (nafasi ya alama, iliyohesabiwa kwa herufi, mwisho haujumuishwi).
choices[0].finish_reason string Kwa nini jibu liliisha. Tazama Sababu za kumaliza.
usage object Tokens za ombi. Tazama Matumizi.
sources array Kwenye ombi lenye web_search: true pekee ambalo utafutaji wake ulipata kitu: matokeo ambayo model ilipewa, kila moja likiwa na index, title na url. [1] kwenye jibu ni kipengee chenye index 1.

Sababu za kumaliza

finish_reason Maelezo
stop Model imemaliza jibu lake, au string ya stop imeonekana.
tool_calls Model inaita tool moja au zaidi. Ziendeshe na utume matokeo kwenye ujumbe wa tool.
length Jibu lilikatwa kwenye kikomo cha output. Huripotiwa kwenye streams za shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 na familia ya Shannon 3.

Jibu lisilo la stream huripoti stop au tool_calls.

Matumizi

Field Aina Maelezo Inapatikana kwenye
usage.prompt_tokens integer Tokens za input. Model zote
usage.completion_tokens integer Tokens za output: reasoning, jibu na wito wa tools kwa pamoja. Model zote
usage.total_tokens integer prompt_tokens pamoja na completion_tokens. Model zote
usage.prompt_tokens_details.cached_tokens integer Sehemu ya prompt_tokens iliyosomwa kutoka prompt cache. Model za open-weight zinazopangishwa
usage.completion_tokens_details.reasoning_tokens integer Sehemu ya completion_tokens iliyotumika kwa reasoning. Model za open-weight zinazopangishwa

Kwenye model za open-weight zinazopangishwa, prompt_tokens ni ujumbe wako na ufafanuzi wa tools uliohesabiwa kwa tokenizer ya model yenyewe, pamoja na tokens za picha zozote. Endpoint za kuhesabu tokens hurudisha namba ile ile kabla ya kutuma. Kuhesabu tokens

Kwenye viwango vya Shannon, prompt_tokens huhesabu kila kitu ambacho model ilisoma kuandika jibu, kwa hiyo ni kubwa kuliko maandishi ya ujumbe wako pekee.

Streaming

Kwa stream iliyowekwa kuwa true jibu hufika kama matukio ya chat.completion.chunk na huisha na data: [DONE]. Chunk ya mwisho kabla yake hubeba finish_reason na usage; stream_options hazihitajiki. Maumbo ya chunk, mistari ya keep-alive na makosa ndani ya stream yana ukurasa wao. Kutiririsha

Makosa

Kosa ni kitu cha JSON chenye member ya error. Ukaguzi hufanyika kwa mpangilio huu: API key, mwili wa ombi, model id, kisha salio. Jedwali linaorodhesha kile ambacho endpoint hii hurudisha mara nyingi zaidi. Orodha kamili, pamoja na yapi ya kujaribu tena, ina ukurasa wake. Ushughulikiaji wa Makosa

400 JSON
{
  "error": {
    "type": "invalid_request_error",
    "message": "unknown model: no-such-model"
  }
}
Hali Aina Ujumbe Lini
401 authentication_error Missing authentication
Invalid API key
Hakuna API key iliyotumwa, au key haijulikani au imebatilishwa.
400 invalid_request_error unknown model: <id> model si id iliyochapishwa.
400 invalid_request_error No user message provided Viwango vya Shannon: ombi halina maandishi ya mtumiaji wala tools.
400 invalid_request_error <id> does not accept image input Sehemu ya picha ilitumwa kwa model ya open-weight inayopangishwa isiyo na input ya picha.
400 invalid_request_error <id> does not accept response_format response_format ilitumwa kwa model ya open-weight inayopangishwa isiyo na matokeo yaliyopangwa.
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high reasoning_effort ina thamani iliyo nje ya orodha.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … messages haipo, au field ina aina isiyo sahihi ya JSON.
429 rate_limit_error Quota exceeded. Upgrade your plan at shannon-ai.com/plan max_tokens ni kubwa kuliko kilichobaki kwenye salio lako.
429 rate_limit_error Too many requests. Retry in <n>s. Flood protection: maombi zaidi ya 120 ndani ya dakika moja kwenye akaunti yako.
500 server_error The model backend failed to answer. Please retry. Model haikutoa jibu. Tuma ombi tena.
502 api_error The model backend failed to answer. Please retry. Vivyo hivyo, kwenye familia ya Shannon 3 na model za open-weight zinazopangishwa.