Chat Completions
POST /v1/chat/completions гуфтугӯро қабул мекунад ва паёми навбатии моделро дар формати OpenAI Chat Completions бармегардонад. Онро аз ҳар SDK-и OpenAI ё тавассути 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) 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."}]
}' Ҷавоб як объекти 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-и шумо. x-api-key: YOUR_API_KEY ба ҷои он дар ҳар endpoint қабул мешавад. |
Content-Type | application/json | Ҳатмӣ. Ҳар қимати дигар 415 бармегардонад. |
x-request-id | Ихтиёрӣ. Id-и худи шумо барои дархост. Он дар ҷавоб бетағйир бармегардад. |
Сарлавҳаҳои ҷавоб
| Сарлавҳа | Тавсиф |
|---|---|
x-request-id | Дар ҳар ҷавоб, аз ҷумла хатогиҳо ва ҷараёнҳо: қимате, ки шумо фиристодед, ё 12 аломати шонздаҳӣ вақте ки чизе нафиристодед. Ҳангоми хабар додани мушкилӣ онро қайд кунед. |
content-type | application/json, ё text/event-stream вақте ки stream — true аст. |
Майдонҳои дархост
Танҳо messages ҳатмист. Сутуни Татбиқ мекунад моделҳоеро номбар мекунад, ки дар онҳо майдон ҷавобро тағйир медиҳад. Моделҳои 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 ҷавобро ҳангоми навишта шуданаш ҳамчун рӯйдодҳои фиристодаи сервер мефиристад. | Ҳамаи моделҳо |
max_tokens | integer | 4096 | Ҳадди болоии ҷавоб, бо токен. Қимате берун аз 1 то 65,536 ба ин диапазон оварда мешавад. Ҳамчунин ин миқдорест, ки ҳангоми иҷрои дархост аз балансатон ҷудо карда мешавад. Поёнтар Дарозии баромадро бинед. | Моделҳои open-weight-и хостшуда, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 |
max_completion_tokens | integer | Ҳамонанди max_tokens. Вақте ки ҳарду фиристода мешаванд, max_tokens истифода мешавад. | Моделҳои open-weight-и хостшуда, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
temperature | number | Ҳарорати намунагирӣ. Дар моделҳои open-weight-и хостшуда пешфарз 1 аст ва қиматҳо дар байни 0 ва 2 нигоҳ дошта мешаванд. | Моделҳои open-weight-и хостшуда, shannon-1.6-lite, shannon-1.6-pro, shannon-coder-1 | |
top_p | number | 0.95 | Намунагирии nucleus. Қиматҳо дар байни 0 ва 1 нигоҳ дошта мешаванд. | Моделҳои open-weight-и хостшуда |
seed | integer | Seed-и намунагир, ҳар адади бутун. Бе он seed аз модел ва гуфтугӯ ҳосил мешавад, бинобар ин ду бор фиристодани як дархост ҳамон seed-ро истифода мебарад. | Моделҳои open-weight-и хостшуда | |
stop | string | array | Сатр ё массиви сатрҳо. То 4 истифода мешавад. Ҷавоб пеш аз аввалинаш, ки пайдо мешавад, тамом мешавад; худи матни таваққуф баргардонда намешавад. | Моделҳои open-weight-и хостшуда | |
reasoning_effort | string | high | Модел пеш аз ҷавоб чӣ қадар reasoning мекунад: off, low, medium ё high. none ва minimal маънои off-ро доранд, default маънои medium-ро, max маънои high-ро. Ҳар қимати дигар 400 бармегардонад. | Моделҳои open-weight-и хостшуда |
reasoning | object | Ҳамин танзим дар шакли объект: {"effort": "low"}. Вақте ки ҳарду фиристода мешаванд, reasoning_effort истифода мешавад. | Моделҳои open-weight-и хостшуда | |
tools | array | Функсияҳое, ки модел даъват карда метавонад, ҳар кадом ҳамчун {"type": "function", "function": {"name", "description", "parameters"}}. Даъватҳои модел дар tool_calls бармегарданд; коди шумо онҳоро иҷро мекунад. | Ҳамаи моделҳо | |
tool_choice | string | object | auto | "auto" ихтиёрро ба модел мегузорад. "required" онро ба даъвати абзор маҷбур мекунад. {"type": "function", "function": {"name": "…"}} онро ба даъвати ҳамон абзор маҷбур мекунад. | Моделҳои open-weight-и хостшуда |
response_format | object | {"type": "json_object"} барои ҷавоби JSON, ё {"type": "json_schema", "json_schema": {…}} барои ҷавобе, ки схемаи шуморо пайравӣ мекунад. | Ҳамаи сатҳҳои Shannon; моделҳои open-weight-и хостшуда мувофиқи рӯйхати ҳар id | |
web_search | boolean | false | true ба модел имкон медиҳад, ки пеш аз ҷавоб дар веб ҷустуҷӯ кунад. | shannon-1.6-*, shannon-2-*, оилаи Shannon 3 |
Дигар майдонҳои OpenAI, ба монанди n, user, stream_options, parallel_tool_calls, presence_penalty, frequency_penalty, logit_bias, logprobs, metadata, store ва prompt_cache_key, қабул мешаванд, то коди мавҷудаи клиент бетағйир кор кунад. Онҳо ҷавобро тағйир намедиҳанд: ҳамеша як choice вуҷуд дорад ва ҷараён ҳамеша бо usage анҷом меёбад.
Майдон бо навъи JSON-и нодуруст, масалан "max_tokens": "100", 422 бармегардонад. Дархост бе messages низ ҳамин тавр.
Абзорҳо, баромади сохторӣ, reasoning ва ҷустуҷӯи веб ҳар кадом саҳифаи худро доранд: Даъвати функсия, Баромадҳои сохторӣ, Сатҳи кӯшиши reasoning, Ҷустуҷӯи веб.
Дархост бо имконот
Ин дархост паёми system, майдонҳои намунагирӣ ва сатҳи кӯшиши reasoning-ро муқаррар мекунад. Он модели 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) 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"
}' Ҷавоб ҳамон шаклеро дорад, ки дар боло. usage-и он дар моделҳои open-weight-и хостшуда ду тафсилоти иловагӣ дорад: токенҳои prompt, ки аз кэш хонда шудаанд, ва токенҳое, ки барои reasoning сарф шудаанд.
{
"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 анҷом меёбад. |
| Моделҳои open-weight-и хостшуда | Матни ҷавоб дар max_tokens қатъ мешавад. Reasoning бо он ҳисоб карда намешавад. Қиматҳои аз 256 камтар ҳамчун 256 амал мекунанд. |
Бе max_tokens ё max_completion_tokens қимат 4,096 аст. Дар shannon-coder-1 он 65,536 аст.
Паёмҳо
Ҳар паём объекти бо role ва content аст. content сатр аст, ё массиви қисмҳо вақте ки паём бештар аз матн дорад.
| Нақш | Тавсиф | Татбиқ мекунад |
|---|---|---|
system | Дастур барои модел. Онро аввал гузоред. Дар сатҳҳои Shannon аввалин паёми system истифода мешавад. | Моделҳои open-weight-и хостшуда, shannon-1.6-*, shannon-2-*, shannon-coder-1 |
developer | Ҳамчун system хонда мешавад. | Моделҳои open-weight-и хостшуда |
user | Он чи шумо мепурсед. Дар сатҳҳои Shannon паёми охирини user prompt аст ва паёмҳои пеш аз он таърихи гуфтугӯ мебошанд. | Ҳамаи моделҳо |
assistant | Ҷавобҳои қаблии модел. Вақте ки пас аз он натиҷаи абзор мефиристед, tool_calls-и онро нигоҳ доред. | Ҳамаи моделҳо |
tool | Натиҷаи даъвати абзор: tool_call_id id-и даъватро дорад ва content натиҷаро ҳамчун сатр. | Ҳамаи моделҳо |
Бо id-и оилаи Shannon 3 дастурҳоеро, ки бояд риоя шаванд, ба паёми user гузоред.
Дар сатҳҳои Shannon дархост бе матни корбар ва бе tools 400 No user message provided бармегардонад.
Қисмҳои мундариҷа
| Қисм | Тавсиф | Дастрас дар |
|---|---|---|
{"type": "text", "text": "…"} | Матни оддӣ. | Ҳамаи моделҳо |
{"type": "image_url", "image_url": {"url": "…"}} | Тасвир, ҳамчун URL-и data: бо мундариҷаи base64 ё ҳамчун URL-и http(s). | Оилаи Shannon 3, shannon-1.6-lite, shannon-1.6-pro ва моделҳои 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 аст; моделҳои open-weight-и хостшуда метавонанд матнро дар паҳлӯи даъватҳо фиристанд. |
choices[0].message.reasoning_content | string | null | Reasoning-е, ки модел пеш аз ҷавоб навишт, ё null вақте ки нест. |
choices[0].message.tool_calls | array | Танҳо вақте ҳозир аст, ки модел абзорҳоро даъват мекунад. Ҳар сабт id, type function ва function-ро бо name ва arguments ҳамчун сатри JSON дорад. |
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 ҳисобот дода мешавад. |
Ҷавоби бе streaming stop ё tool_calls-ро ҳисобот медиҳад.
Usage
| Майдон | Навъ | Тавсиф | Дастрас дар |
|---|---|---|---|
usage.prompt_tokens | integer | Токенҳои вуруд. | Ҳамаи моделҳо |
usage.completion_tokens | integer | Токенҳои баромад: reasoning, ҷавоб ва даъватҳои абзор якҷоя. | Ҳамаи моделҳо |
usage.total_tokens | integer | prompt_tokens ва completion_tokens дар маҷмӯъ. | Ҳамаи моделҳо |
usage.prompt_tokens_details.cached_tokens | integer | Қисми prompt_tokens, ки аз кэши prompt хонда шудааст. | Моделҳои open-weight-и хостшуда |
usage.completion_tokens_details.reasoning_tokens | integer | Қисми completion_tokens, ки барои reasoning сарф шудааст. | Моделҳои open-weight-и хостшуда |
Дар моделҳои open-weight-и хостшуда prompt_tokens паёмҳо ва таърифҳои абзори шумост, ки бо токенайзери худи модел ҳисоб шудаанд, илова бар токенҳои тасвирҳо. Endpoint-ҳои ҳисоби токен пеш аз фиристодани шумо ҳамон рақамро бармегардонанд. Ҳисоби токенҳо
Дар сатҳҳои Shannon prompt_tokens ҳар чизеро, ки модел барои навиштани ҷавоб хонд, ҳисоб мекунад, бинобар ин он аз танҳо матни паёмҳои шумо калонтар аст.
Streaming
Вақте ки stream ба true гузошта шудааст, ҷавоб ҳамчун рӯйдодҳои chat.completion.chunk меояд ва бо data: [DONE] анҷом меёбад. Чанки охирини пеш аз он finish_reason ва usage-ро дорад; stream_options лозим нест. Шаклҳои чанкҳо, хатҳои keep-alive ва хатогиҳо дар дохили ҷараён саҳифаи худро доранд. Стриминг
Хатогиҳо
Хатогӣ объекти JSON бо узви error аст. Санҷишҳо бо ин тартиб иҷро мешаванд: калиди API, бадани дархост, id-и модел, баъд баланс. Ҷадвал он чиро нишон медиҳад, ки ин endpoint аксар вақт бармегардонад. Рӯйхати пурра, бо нишони он ки чӣ бояд такрор шавад, саҳифаи худро дорад. Идораи хатогиҳо
{
"error": {
"type": "invalid_request_error",
"message": "unknown model: no-such-model"
}
} | Ҳолат | Навъ | Паём | Кай |
|---|---|---|---|
401 | authentication_error | Missing authenticationInvalid 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 | Қисми тасвир ба модели open-weight-и хостшуда фиристода шуд, ки вуруди тасвирро надорад. |
400 | invalid_request_error | <id> does not accept response_format | response_format ба модели 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. | Ҳифз аз дархостҳои аз ҳад зиёд: беш аз 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 ва моделҳои open-weight-и хостшуда. |