د reasoning effort
نویماډل چې reasoning کوي خپل د reasoning متن د ځواب تر څنګ، په جلا ساحه کې، بیرته ورکوي. په کوربه شوو open-weight ماډلونو کې د غوښتنې یوه ساحه ټاکي چې ماډل مخکې له ځواب ورکولو څومره ژور reasoning کوي.
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 متن په reasoning_content کې، ځواب په content کې، او د reasoning ټوکنونه په 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}
}
} کوم ماډلونه reasoning کوي
| ماډل | د reasoning متن بیرته ورکوي | د 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 | هو | — |
| هر کوربه شوی open-weight ماډل | هو | هو |
دا هغه flags دي capabilities.reasoning او capabilities.reasoning_effort چې GET /v1/models د هر id لپاره راپور کوي. ځواب یوازې هغه وخت د reasoning متن لري کله چې ماډل ځینې جوړ کړي وي. ماډلونه او بیې
د effort ټاکل
هر endpoint د effort لیکلو خپل ډول لري. ټول د همدغو څلورو کچو څخه یوه غوره کوي.
| ساحه | ډول | تلواله | تشریح | پلي کوونکی |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. ماډل مخکې له ځواب ورکولو څومره ژور reasoning کوي: off، low، medium یا high. | کوربه شوي open-weight ماډلونه |
reasoning | object | string | /v1/chat/completions. همدا ارزښت د {"effort": "low"} په توګه یا د ساده string په توګه. کله چې دواړه ساحې ولیږل شي، reasoning_effort شمیرل کیږي. | کوربه شوي open-weight ماډلونه | |
reasoning.effort | string | high | /v1/responses. د {"effort": "low"} څیز په توګه لیکل کیږي. | کوربه شوي open-weight ماډلونه |
thinking | object | /v1/messages. {"type": "enabled", "budget_tokens": n} یا {"type": "disabled"}. بودجه له کچو څخه یوه غوره کوي؛ لاندې جدول وګورئ. | کوربه شوي 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 | reasoning نشته. ځواب د reasoning متن نه لري. |
low | لنډ reasoning. | |
medium | default | منځنی ژوروالی. |
high | max | تر ټولو ژوره کچه. دا د هغې غوښتنې کچه ده چې هیڅ ارزښت نه لیږي. |
- ارزښتونه د لوی یا کوچني توري پروا پرته لوستل کیږي.
- ارزښت
defaultدmediumمعنی لري. ساحه پریښودل دhighمعنی لري. - د Shannon ماډلونه (
shannon-*) په هره غوښتنه کې خپل ژوروالی پخپله ټاکي؛GET /v1/modelsد دوی لپارهreasoning_effort: falseراپور کوي.
په /v1/messages کې د thinking بودجه
په /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، یا enabled پرته له budget_tokens | high |
thinking ساحه نشته | high |
د reasoning متن چیرته رارسیږي
د reasoning متن تل له ځواب څخه جلا دی. هره بڼه د هغه لپاره خپل ځای لري:
| Endpoint | Stream نه | Stream |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: یو string، یا null کله چې ماډل هیڅ نه وي جوړ کړی. | Chunks د choices[0].delta.reasoning_content سره، مخکې له chunks د delta.content سره. |
/v1/responses | یو output توکی {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} مخکې له message توکي. کله چې reasoning نه وي توکی نشته. | response.output_item.added د reasoning توکي سره، بیا response.reasoning_summary_text.delta رخدادونه او یو response.reasoning_summary_text.done. |
/v1/messages | لومړی منځپانګې block {"type": "thinking", "thinking": "…"}، بیا text block. کله چې reasoning نه وي thinking block نشته. | thinking منځپانګې block: content_block_start، content_block_delta رخدادونه د thinking_delta سره، content_block_stop. د متن block ورپسې راځي. |
{
"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
}
} چیرته وګورو، د هر ماډل په اړه:
| ماډلونه | متن چیرته رارسیږي |
|---|---|
| کوربه شوي open-weight ماډلونه | په هر endpoint کې، stream شوی یا نه. هغه غوښتنه چې effort یې off وي، یا response_format / text.format ولري، پرته له reasoning متن ځواب کیږي. |
shannon-3، shannon-3-pro، shannon-3.1، shannon-3.1-pro | په هر endpoint کې، stream شوی یا نه، هر کله چې ماډل د reasoning متن جوړ کړی وي. |
shannon-2-lite، shannon-2-pro | /v1/chat/completions، stream نه: په message.reasoning_content کې. Stream شوی، په هغه غوښتنه کې چې tools یا response_format نه لري: stream تبصرې کرښې : thinking لیږدوي پداسې حال کې چې ماډل reasoning کوي، بیا د ځواب chunks. /v1/messages، stream شوی: د متن block مخکې thinking block. |
shannon-1.6-pro، shannon-coder-1 | په stream شوو ځوابونو کې او د هغو غوښتنو په ځوابونو کې چې tools لري، هر کله چې ماډل د reasoning متن جوړ کړی وي. |
په /v1/responses کې، ځواب چې stream نه وي د Shannon 3 کورنۍ او کوربه شوو open-weight ماډلونو لپاره reasoning توکی لري.
د stream لوستل
په stream کې د reasoning متن لومړی راځي، په خپلو deltas کې، او ځواب ورپسې راځي. دواړه جلا چاپ یا ذخیره کړئ:
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?"}
]
}' د کوربه شوي open-weight ماډل لومړی chunk، reasoning یا ځواب، delta.role: "assistant" هم لري. جریان
Reasoning ټوکنونه او بیلینګ
په کوربه شوو open-weight ماډلونو کې، reasoning ټوکنونه output ټوکنونه دي: دوی د ماډل د output نرخ په اندازه بیل کیږي، او د output شمیر لا دمخه دوی شامل لري. usage دلته د reasoning ونډه ښيي:
| 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 | Reasoning او ځواب یوځای. دا بڼه جلا شمیر نه لري. |
- په کوربه شوو open-weight ماډلونو کې
max_tokensد ځواب متن محدودوي. Reasoning ټوکنونه پر ضد یې نه شمیرل کیږي. - ځکه چې reasoning د output په توګه بیل کیږي، د effort کچه د لګښت تنظیم هم دی:
offهیڅ reasoning ټوکنونه نه جوړوي. - د Shannon ماډلونه
prompt_tokens،completion_tokensاوtotal_tokens(په/v1/messagesکېinput_tokensاوoutput_tokens) پرته له reasoning ونډې راپور کوي، او د هر ټوکن لپاره یو ثابت نرخ بیل کوي. ماډلونه او بیې
په راتلونکې غوښتنه کې Reasoning
تاسو اړتیا نه لرئ چې reasoning بیرته ولیږئ. په هغه ګفتګه کې چې تاسو یې لیږئ thinking block یا reasoning توکی ماډل ته نه لیږدول کیږي، نو د assistant turn کولی شي له هغه سره یا پرته بیرته لاړ شي. thinking block دوه ساحې type او thinking لري؛ signature نه لري.
تېروتنې
| حالت | ډول | پیغام | کله |
|---|---|---|---|
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | کوربه شوي open-weight ماډل له لیست بهر ارزښت ترلاسه کړ، د مثال په توګه xhigh. ستاسو له بیلانس هیڅ نه کمیږي. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | reasoning_effort string نه دی. |
تصدیق، بیلانس او server تېروتنې د هرې غوښتنې په څیر دي. د تېروتنې اداره کول