Пайымдау күші
ЖАҢАПайымдайтын модель өз пайымдау мәтінін жауаптың жанында, жеке өрісте қайтарады. Hosted open-weight модельдерде бір сұрау өрісі модельдің жауап бермес бұрын қаншалықты терең пайымдайтынын орнатады.
POST https://api.shannon-ai.com/v1/chat/completions
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="Kimi-K3-3BIT-REAP",
reasoning_effort="low",
messages=[{"role": "user", "content": "Is 221 a prime number?"}],
)
message = response.choices[0].message
print("Reasoning:", getattr(message, "reasoning_content", None))
print("Answer:", message.content)
print("Reasoning tokens:", response.usage.completion_tokens_details.reasoning_tokens) 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: "Kimi-K3-3BIT-REAP",
reasoning_effort: "low",
messages: [{ role: "user", content: "Is 221 a prime number?" }],
});
const message = response.choices[0].message;
console.log("Reasoning:", message.reasoning_content);
console.log("Answer:", message.content);
console.log("Reasoning tokens:", response.usage.completion_tokens_details.reasoning_tokens); curl https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Kimi-K3-3BIT-REAP",
"reasoning_effort": "low",
"messages": [
{"role": "user", "content": "Is 221 a prime number?"}
]
}' Жауап пайымдау мәтінін reasoning_content ішінде, жауапты content ішінде, пайымдау токендерін usage ішінде алып жүреді:
{
"id": "chatcmpl-2a6c8e0b4d1f4a3c9e7b5d3f1a8c6e4b",
"object": "chat.completion",
"created": 1791590400,
"model": "Kimi-K3-3BIT-REAP",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "No. 221 = 13 x 17, so it is not prime.",
"reasoning_content": "Try small primes. 221 / 13 = 17, so 221 = 13 x 17."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 14,
"completion_tokens": 43,
"total_tokens": 57,
"prompt_tokens_details": {"cached_tokens": 0},
"completion_tokens_details": {"reasoning_tokens": 27}
}
} Қай модельдер пайымдайды
| Модель | Пайымдау мәтінін қайтарады | Effort өрісін қолданады |
|---|---|---|
shannon-1.6-lite | — | — |
shannon-1.6-pro, shannon-2-lite, shannon-2-pro, shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro, shannon-coder-1 | Иә | — |
| Әр hosted open-weight модель | Иә | Иә |
Бұл GET /v1/models әр id үшін көрсететін capabilities.reasoning және capabilities.reasoning_effort жалаушалары. Жауап пайымдау мәтінін модель шығарғанда ғана алып жүреді. Модельдер және бағалар
Effort орнату
Әр endpoint-тің effort жазылуы өзінше. Олардың бәрі бір төрт деңгейдің бірін таңдайды.
| Өріс | Түрі | Әдепкі | Сипаттама | Қолданады |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Модель жауап бермес бұрын қаншалықты терең пайымдайды: off, low, medium немесе high. | Hosted open-weight модельдер |
reasoning | object | string | /v1/chat/completions. {"effort": "low"} сияқты немесе жай жол ретіндегі сол мән. Екі өріс те жіберілсе, reasoning_effort есептеледі. | Hosted open-weight модельдер | |
reasoning.effort | string | high | /v1/responses. {"effort": "low"} нысаны ретінде жазылады. | Hosted open-weight модельдер |
thinking | object | /v1/messages. {"type": "enabled", "budget_tokens": n} немесе {"type": "disabled"}. Бюджет деңгейлердің бірін таңдайды; төмендегі кестені қараңыз. | Hosted open-weight модельдер |
{
"model": "Kimi-K3-3BIT-REAP",
"reasoning_effort": "low",
"messages": [{"role": "user", "content": "Is 221 a prime number?"}]
} {
"model": "Kimi-K3-3BIT-REAP",
"reasoning": {"effort": "low"},
"input": "Is 221 a prime number?"
} {
"model": "Kimi-K3-3BIT-REAP",
"max_tokens": 1024,
"thinking": {"type": "enabled", "budget_tokens": 2048},
"messages": [{"role": "user", "content": "Is 221 a prime number?"}]
} | Мәні | Сондай-ақ қабылданады | Әсері |
|---|---|---|
off | none, minimal | Пайымдау жоқ. Жауап пайымдау мәтінін алып жүрмейді. |
low | Қысқа пайымдау. | |
medium | default | Орташа тереңдік. |
high | max | Ең терең деңгей. Мән жібермейтін сұрау осы деңгейде болады. |
- Мәндер бас және кіші әріпке қарамай оқылады.
defaultмәніmediumдегенді білдіреді. Өрісті қалдырып кетуhighдегенді білдіреді.- Shannon модельдері (
shannon-*) тереңдікті әр сұрауда өздері орнатады;GET /v1/modelsолар үшінreasoning_effort: falseкөрсетеді.
/v1/messages бойынша ойлау бюджеті
/v1/messages бойынша деңгейді thinking өрісі таңдайды. budget_tokens жоғарыдағы деңгейлердің бірін таңдайды; бұл жеке токен лимиті емес. adaptive мәні enabled сияқты оқылады.
| Сіз жібересіз | Деңгей |
|---|---|
{"type": "disabled"} | off |
{"type": "enabled", "budget_tokens": n}, мұндағы n 2,048-ге дейін | low |
n 2,049-дан 8,192-ге дейін | medium |
Үлкенірек n, немесе budget_tokens жоқ enabled | high |
thinking өрісі жоқ | high |
Пайымдау мәтіні қайда келеді
Пайымдау мәтіні әрқашан жауаптан бөлек. Әр форматтың оған өз орны бар:
| Endpoint | Стримделмейді | Стримделеді |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: жол, немесе модель ештеңе шығармаса null. | choices[0].delta.reasoning_content бар чанктар, delta.content бар чанктардан бұрын. |
/v1/responses | message элементінен бұрын output элементі {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]}. Пайымдау болмаса, элемент болмайды. | reasoning элементі бар response.output_item.added, содан кейін response.reasoning_summary_text.delta оқиғалары және бір response.reasoning_summary_text.done. |
/v1/messages | Бірінші мазмұн блогы {"type": "thinking", "thinking": "…"}, содан кейін text блогы. Пайымдау болмаса, thinking блогы болмайды. | thinking мазмұн блогы: content_block_start, thinking_delta бар content_block_delta оқиғалары, content_block_stop. Одан кейін мәтін блогы келеді. |
{
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "No. 221 = 13 x 17, so it is not prime.",
"reasoning_content": "Try small primes. 221 / 13 = 17, so 221 = 13 x 17."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 14,
"completion_tokens": 43,
"total_tokens": 57,
"prompt_tokens_details": {"cached_tokens": 0},
"completion_tokens_details": {"reasoning_tokens": 27}
}
} {
"output": [
{
"id": "rs_6f0a2c4e8b1d4f3a9c7e5b3d1f8a6c4e",
"type": "reasoning",
"summary": [
{
"type": "summary_text",
"text": "Try small primes. 221 / 13 = 17, so 221 = 13 x 17."
}
]
},
{
"id": "msg_1b3d5f7a9c2e4b6d8f0a2c4e6b8d0f1a",
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "No. 221 = 13 x 17, so it is not prime.",
"annotations": []
}
]
}
],
"usage": {
"input_tokens": 14,
"input_tokens_details": {"cached_tokens": 0},
"output_tokens": 43,
"output_tokens_details": {"reasoning_tokens": 27},
"total_tokens": 57
}
} {
"content": [
{
"type": "thinking",
"thinking": "Try small primes. 221 / 13 = 17, so 221 = 13 x 17."
},
{"type": "text", "text": "No. 221 = 13 x 17, so it is not prime."}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 14,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0,
"output_tokens": 43
}
} Модель бойынша қайдан іздеу керек:
| Модельдер | Мәтін қайда келеді |
|---|---|
| Hosted open-weight модельдер | Әр endpoint-те, стримделсе де, стримделмесе де. Effort мәні off сұрау, немесе response_format / text.format бар сұрау пайымдау мәтінінсіз жауап алады. |
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Әр endpoint-те, стримделсе де, стримделмесе де, модель пайымдау мәтінін шығарған сайын. |
shannon-2-lite, shannon-2-pro | /v1/chat/completions, стримделмейді: message.reasoning_content ішінде. Стримделеді, tools немесе response_format жоқ сұрауда: модель пайымдап жатқанда стрим : thinking түсініктеме жолдарын алып жүреді, содан кейін жауап чанктары келеді. /v1/messages, стримделеді: мәтін блогынан бұрын thinking блогы. |
shannon-1.6-pro, shannon-coder-1 | Стримделген жауаптарда және tools бар сұрау жауаптарында, модель пайымдау мәтінін шығарған сайын. |
/v1/responses бойынша стримделмеген жауап Shannon 3 тобы мен hosted open-weight модельдер үшін reasoning элементін алып жүреді.
Стримді оқу
Стримде алдымен пайымдау мәтіні жеке дельталарда келеді, одан кейін жауап. Екеуін бөлек басып шығарыңыз немесе сақтаңыз:
from openai import OpenAI
client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.shannon-ai.com/v1")
stream = client.chat.completions.create(
model="Kimi-K3-3BIT-REAP",
reasoning_effort="medium",
stream=True,
messages=[{"role": "user", "content": "Is 221 a prime number?"}],
)
for chunk in stream:
if not chunk.choices:
continue
delta = chunk.choices[0].delta
reasoning = getattr(delta, "reasoning_content", None)
if reasoning:
print(reasoning, end="", flush=True) # the reasoning text comes first
if delta.content:
print(delta.content, end="", flush=True) # then the answer import OpenAI from "openai";
const client = new OpenAI({ apiKey: "YOUR_API_KEY", baseURL: "https://api.shannon-ai.com/v1" });
const stream = await client.chat.completions.create({
model: "Kimi-K3-3BIT-REAP",
reasoning_effort: "medium",
stream: true,
messages: [{ role: "user", content: "Is 221 a prime number?" }],
});
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta ?? {};
if (delta.reasoning_content) process.stdout.write(delta.reasoning_content); // the reasoning text comes first
if (delta.content) process.stdout.write(delta.content); // then the answer
} curl -N https://api.shannon-ai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Kimi-K3-3BIT-REAP",
"reasoning_effort": "medium",
"stream": true,
"messages": [
{"role": "user", "content": "Is 221 a prime number?"}
]
}' Hosted open-weight модельдің бірінші чанкі, пайымдау болсын, жауап болсын, delta.role: "assistant" мәнін де алып жүреді. Стриминг
Пайымдау токендері және төлем
Hosted open-weight модельдерде пайымдау токендері — шығыс токендері: олар модельдің шығыс бағасымен есептеледі, ал шығыс саны оларды қосып алады. Мұнда usage пайымдау үлесін көрсетеді:
| Endpoint | Өріс | Ескертпе |
|---|---|---|
/v1/chat/completions | usage.completion_tokens_details.reasoning_tokens | completion_tokens ішіне қосылған. |
/v1/responses | usage.output_tokens_details.reasoning_tokens | output_tokens ішіне қосылған. |
/v1/messages | usage.output_tokens | Пайымдау мен жауап бірге. Бұл форматта бөлек санау жоқ. |
- Hosted open-weight модельдерде
max_tokensжауап мәтінін шектейді. Пайымдау токендері оған есептелмейді. - Пайымдау шығыс ретінде есептелетіндіктен, effort деңгейі де шығын параметрі болып табылады:
offпайымдау токендерін шығармайды. - Shannon модельдері
prompt_tokens,completion_tokensжәнеtotal_tokensмәндерін (/v1/messagesбойыншаinput_tokensжәнеoutput_tokens) пайымдау үлесінсіз көрсетеді және әр токенге бір тегіс баға қояды. Модельдер және бағалар
Келесі сұраудағы пайымдау
Пайымдауды кері жіберу міндетті емес. Жіберген сөйлесуіңіздегі thinking блогы немесе reasoning элементі модельге берілмейді, сондықтан assistant кезеңін онымен де, онсыз да қайтаруға болады. thinking блогында type және thinking екі өрісі бар; signature жоқ.
Қателер
| Мәртебе | Түрі | Хабарлама | Қашан |
|---|---|---|---|
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Hosted open-weight модель тізімнен тыс мән алды, мысалы xhigh. Балансыңыздан ештеңе алынбайды. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | reasoning_effort жол емес. |
Аутентификация, баланс және сервер қателері кез келген сұрау сияқты. Қателерді өңдеу