Reasoning effort
ШИНЭReasoning хийдэг загвар reasoning текстээ хариултын хажууд тусдаа талбарт буцаана. Hosted 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 | Тийм | — |
| Hosted open-weight загвар бүр | Тийм | Тийм |
Эдгээр нь GET /v1/models-ийн id бүрт мэдээлдэг capabilities.reasoning ба capabilities.reasoning_effort тугууд. Хариу загвар гаргасан үед л reasoning текст агуулна. Загвар ба үнэ
Effort тохируулах
Endpoint бүр effort-ийг өөрөөр бичдэг. Бүгд ижил дөрвөн түвшний нэгийг сонгоно.
| Талбар | Төрөл | Үндсэн утга | Тайлбар | Хэрэгжүүлэгч |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Загвар хариулахаасаа өмнө хэр гүн reasoning хийх: off, low, medium эсвэл high. | Hosted open-weight загварууд |
reasoning | object | string | /v1/chat/completions. {"effort": "low"} хэлбэрээр эсвэл зүгээр string хэлбэрээр ижил утга. Хоёр талбарыг хоёуланг нь илгээвэл 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 | 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 |
n нь 2,048 хүртэл бол {"type": "enabled", "budget_tokens": n} | low |
n 2,049-өөс 8,192 | medium |
Илүү том n, эсвэл budget_tokens-гүй enabled | high |
thinking талбар байхгүй | high |
Reasoning текст хаана ирэх
Reasoning текст үргэлж хариултаас тусдаа байна. Формат бүр өөрийн байрыг агуулна:
| Endpoint | Stream хийгээгүй | Stream хийсэн |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: string, эсвэл загвар гаргаагүй бол null. | choices[0].delta.reasoning_content-тэй chunk-ууд, delta.content-тэй chunk-уудын өмнө. |
/v1/responses | message зүйлийн өмнө output зүйл {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]}. Reasoning байхгүй бол зүйл байхгүй. | reasoning зүйлтэй response.output_item.added, дараа нь response.reasoning_summary_text.delta event-үүд ба нэг response.reasoning_summary_text.done. |
/v1/messages | Эхний content block {"type": "thinking", "thinking": "…"}, дараа нь text block. Reasoning байхгүй бол thinking block байхгүй. | thinking content block: content_block_start, thinking_delta-тай content_block_delta event-үүд, 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
}
} Загвар тус бүрд хаана харах вэ:
| Загварууд | Текст хаана ирэх |
|---|---|
| Hosted 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 дотор. tools эсвэл response_format-гүй хүсэлтэд stream хийсэн үед: загвар reasoning хийх хугацаанд stream : thinking тайлбар мөр агуулж, дараа нь хариултын chunk-ууд ирнэ. /v1/messages, stream хийсэн: текст block-ийн өмнө thinking block. |
shannon-1.6-pro, shannon-coder-1 | Stream хийсэн хариунд болон tools агуулсан хүсэлтийн хариунд, загвар reasoning текст гаргасан бол. |
/v1/responses дээр stream хийгээгүй хариу Shannon 3 гэр бүл ба hosted open-weight загваруудад reasoning зүйл агуулна.
Stream унших
Stream дээр reasoning текст эхэлж, тусдаа delta-гаар ирээд, хариулт дагана. Хоёрыг тусад нь хэвлэх эсвэл хадгална уу:
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 загварын эхний chunk, reasoning эсвэл хариулт аль нь ч бай, delta.role: "assistant"-ийг бас агуулна. Дамжуулалт
Reasoning токен ба төлбөр
Hosted open-weight загварууд дээр reasoning токен нь гаралтын токен: загварын гаралтын үнээр тооцогдож, гаралтын тоо тэдгээрийг аль хэдийн агуулсан. 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 ба хариулт хамтдаа. Энэ формат тусдаа тоо агуулахгүй. |
- Hosted open-weight загварууд дээр
max_tokensхариултын текстийг хязгаарлана. Reasoning токен үүнд тоологдохгүй. - Reasoning-ийг гаралт гэж тооцдог тул effort түвшин зардлын тохиргоо бас болно:
offнь reasoning токен гаргахгүй. - Shannon загварууд
prompt_tokens,completion_tokens,total_tokens-ийг (/v1/messagesдээрinput_tokens,output_tokens) reasoning-ийн хувьгүйгээр мэдээлж, токен бүрийг нэг тогтмол үнээр тооцно. Загвар ба үнэ
Дараагийн хүсэлт дэх reasoning
Reasoning-ийг буцааж илгээх шаардлагагүй. Таны илгээх харилцан яриан дахь thinking block эсвэл reasoning зүйлийг загварт дамжуулдаггүй тул assistant ээлжийг түүнтэй ч, түүнгүй ч буцааж илгээж болно. thinking block нь 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 нь string биш. |
Баталгаажуулалт, үлдэгдэл, серверийн алдаа бүх хүсэлтийнхтэй адил. Алдаа боловсруулах