Effort-ka reasoning-ka
CusubModel fikiraya wuxuu qoraalka reasoning-kiisa soo celiyaa jawaabta agteeda, field u gaar ah dhexdiisa. Model-yada open-weight ee la martigeliyo hal field codsi ayaa dejiya intee in leeg model-ku ka fikiro ka hor inta uusan jawaabin.
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?"}
]
}' Jawaabtu waxay qoraalka reasoning ku sidaa reasoning_content, jawaabta content, token-yada reasoning-ka-na 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}
}
} Model-yada fikiraya
| Model | Soo celiya qoraalka reasoning | Dabaqa field-ka 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 | Haa | — |
| Model kasta oo open-weight ah oo la martigeliyay | Haa | Haa |
Kuwani waa calamada capabilities.reasoning iyo capabilities.reasoning_effort ee GET /v1/models u sheego id kasta. Jawaabtu waxay sidaa qoraal reasoning marka model-ku soo saaro oo keliya. Model-yo & qiimo
Dejinta effort-ka
Endpoint kastaa wuxuu leeyahay qoraal u gaar ah oo effort ah. Dhammaantood waxay doortaan mid ka mid ah isla afartaas heer.
| Field | Nooc | Default | Sharaxaad | Waxay dabaqaan |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Intee in leeg model-ku ka fikiraa ka hor inta uusan jawaabin: off, low, medium ama high. | Model-yada open-weight ee la martigeliyo |
reasoning | object | string | /v1/chat/completions. Isla qiimaha sida {"effort": "low"} ama sida string cirro ah. Marka labada field la diro, reasoning_effort ayaa tirsan. | Model-yada open-weight ee la martigeliyo | |
reasoning.effort | string | high | /v1/responses. Waxaa loo qoraa sida shayga {"effort": "low"}. | Model-yada open-weight ee la martigeliyo |
thinking | object | /v1/messages. {"type": "enabled", "budget_tokens": n} ama {"type": "disabled"}. Miisaaniyaddu waxay doortaa mid ka mid ah heerarka; eeg shaxda hoose. | Model-yada open-weight ee la martigeliyo |
{
"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?"}]
} | Qiime | Sidoo kale la aqbalo | Saamayn |
|---|---|---|
off | none, minimal | Reasoning ma jiro. Jawaabtu ma sido qoraal reasoning. |
low | Reasoning kooban. | |
medium | default | Qoto dheer dhexdhexaad ah. |
high | max | Heerka ugu qoto dheer. Kani waa heerka codsi aan diri qiime. |
- Qiimayaasha waa la akhriyaa iyadoo xarfaha waaweyn iyo yaryar la eegayn.
- Qiimaha
defaultwuxuu la macno yahaymedium. Field-ka oo la reebo wuxuu la macno yahayhigh. - Model-yada Shannon (
shannon-*) qoto-dheerida iyaga u gaar ah ayay codsi kasta dejiyaan;GET /v1/modelswuxuu iyaga u sheegaareasoning_effort: false.
Miisaaniyadda thinking /v1/messages
/v1/messages field-ka thinking wuxuu doortaa heerka. budget_tokens wuxuu doortaa mid ka mid ah heerarka kore; ma aha xad token oo u gaar ah. adaptive waxaa loo akhriyaa sida enabled.
| Waxaad dirtaa | Heer |
|---|---|
{"type": "disabled"} | off |
{"type": "enabled", "budget_tokens": n} iyo n ilaa 2,048 | low |
n 2,049 ilaa 8,192 | medium |
n ka weyn, ama enabled budget_tokens la'aantiis | high |
Field thinking ma jiro | high |
Halka qoraalka reasoning ka yimaado
Qoraalka reasoning had iyo jeer wuu ka gooni yahay jawaabta. Qaab kastaa wuxuu leeyahay meel u gaar ah:
| Endpoint | Aan stream ahayn | Stream ah |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: string, ama null marka model-ku midna soo saarin. | Chunks leh choices[0].delta.reasoning_content, ka hor chunks-ka leh delta.content. |
/v1/responses | Shay output ah {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} ka hor shayga message. Shay ma jiro marka reasoning la'yahay. | response.output_item.added oo leh shay reasoning, kaddib events response.reasoning_summary_text.delta iyo hal response.reasoning_summary_text.done. |
/v1/messages | Content block ugu horreeya {"type": "thinking", "thinking": "…"}, kaddib block-ga text. Block thinking ma jiro marka reasoning la'yahay. | Content block thinking: content_block_start, events content_block_delta oo leh thinking_delta, content_block_stop. Block-ga qoraalku wuu raacaa. |
{
"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
}
} Halka la eego, model kasta:
| Model-yo | Halka qoraalku ka yimaado |
|---|---|
| Model-yada open-weight ee la martigeliyo | Endpoint kasta, stream ah ama aan ahayn. Codsi leh effort off, ama leh response_format / text.format, waxaa lagu jawaabaa qoraal reasoning la'aan ah. |
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Endpoint kasta, stream ah ama aan ahayn, mar kasta oo model-ku soo saaro qoraal reasoning. |
shannon-2-lite, shannon-2-pro | /v1/chat/completions, aan stream ahayn: message.reasoning_content. Stream ah, codsi aan lahayn tools ama response_format: stream-ku wuxuu sidaa xariiqaha faallo ah : thinking inta model-ku fikirayo, kaddib chunks-ka jawaabta. /v1/messages, stream ah: block thinking ka hor block-ga qoraalka. |
shannon-1.6-pro, shannon-coder-1 | Jawaabaha stream ah iyo jawaabaha codsiyada sida tools, mar kasta oo model-ku soo saaro qoraal reasoning. |
/v1/responses, jawaab aan stream ahayn waxay sidaa shayga reasoning qoyska Shannon 3 iyo model-yada open-weight ee la martigeliyo.
Akhrinta stream
Stream dhexdiisa qoraalka reasoning wuu ugu horreeyaa, deltas u gaar ah, jawaabtuna way raacdaa. Labadaba si gooni ah daabac ama keydi:
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?"}
]
}' Chunk-ga ugu horreeya ee model open-weight oo la martigeliyay, reasoning ama jawaab, wuxuu sidoo kale sidaa delta.role: "assistant". Streaming
Token-yada reasoning iyo bixinta
Model-yada open-weight ee la martigeliyo, token-yada reasoning waa output token-yo: waxaa lagu dallacaa qiimaha output-ka ee model-ka, tirada output-kuna horeba way ka kooban tahay. usage halkan wuxuu muujiyaa qaybta reasoning:
| Endpoint | Field | Fiiro gaar ah |
|---|---|---|
/v1/chat/completions | usage.completion_tokens_details.reasoning_tokens | Horeba waxay ku jirtaa completion_tokens. |
/v1/responses | usage.output_tokens_details.reasoning_tokens | Horeba waxay ku jirtaa output_tokens. |
/v1/messages | usage.output_tokens | Reasoning iyo jawaab wada. Qaabkani tirin gooni ah ma laha. |
- Model-yada open-weight ee la martigeliyo
max_tokenswuxuu xadidaa qoraalka jawaabta. Token-yada reasoning looma tiriyo. - Maadaama reasoning loo dallaco sida output, heerka effort-ku sidoo kale waa dejin kharash:
offtoken reasoning ah ma soo saaro. - Model-yada Shannon waxay sheegaan
prompt_tokens,completion_tokensiyototal_tokens(input_tokensiyooutput_tokens/v1/messages) iyadoo aan lahayn qayb reasoning, waxayna dallacaan hal qiime go'an token kasta. Model-yo & qiimo
Reasoning codsiga xiga
Uma baahnid inaad reasoning dib u dirto. Block thinking ama shay reasoning ee wada-hadalka aad dirto model-ka looma gudbiyo, sidaas darteed wareeg assistant ah wuu dib u tegi karaa isaga la socdo ama la'aantiis. Block thinking wuxuu leeyahay labada field type iyo thinking; signature ma laha.
Khaladaad
| Xaalad | Nooc | Fariin | Goorta |
|---|---|---|---|
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Model open-weight oo la martigeliyay ayaa helay qiime liiska ka baxsan, tusaale ahaan xhigh. Haraaggaaga wax laga ma qaado. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | reasoning_effort ma aha string. |
Xaqiijinta, haraagga iyo khaladaadka server-ku waa isku mid codsi kasta. Khaladaadka Maareynta