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) import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const response = await client.chat.completions.create({
model: "shannon-3",
messages: [{ role: "user", content: "Say hello in one sentence." }],
});
console.log(response.choices[0].message.content); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "shannon-3",
"messages": [{"role": "user", "content": "Say hello in one sentence."}]
}' Jibu ni kitu kimoja cha 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) import OpenAI from "openai";
const client = new OpenAI({
apiKey: "YOUR_API_KEY",
baseURL: "https://api.shannon-ai.com/v1",
});
const response = await 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",
});
const message = response.choices[0].message;
console.log(message.reasoning_content); // the reasoning
console.log(message.content); // the answer
console.log(response.usage); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"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"
}' 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.
{
"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
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Hali | Aina | Ujumbe | Lini |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid 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. |