Сатҳи кӯшиши reasoning
НавМодели 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-ро бармегардонад | Майдони кӯшишро татбиқ мекунад |
|---|---|---|
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-и хостшуда | Ҳа | Ҳа |
Инҳо парчамҳои capabilities.reasoning ва capabilities.reasoning_effort мебошанд, ки GET /v1/models барои ҳар id ҳисобот медиҳад. Ҷавоб матни reasoning-ро танҳо вақте дорад, ки модел чизе тавлид карда бошад. Моделҳо ва нархҳо
Муқаррар кардани сатҳи кӯшиш
Ҳар endpoint навиштани худро барои сатҳи кӯшиш дорад. Ҳамаи онҳо яке аз ҳамон чор сатҳро интихоб мекунанд.
| Майдон | Навъ | Пешфарз | Тавсиф | Татбиқ мекунад |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Модел пеш аз ҷавоб то чӣ андоза амиқ reasoning мекунад: off, low, medium ё high. | Моделҳои open-weight-и хостшуда |
reasoning | object | string | /v1/chat/completions. Ҳамон қимат ҳамчун {"effort": "low"} ё ҳамчун сатри оддӣ. Вақте ки ҳарду майдон фиристода мешаванд, 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-ро ҳисобот медиҳад.
Буҷаи thinking дар /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-и калонтар, ё enabled бе budget_tokens | high |
Бе майдони thinking | high |
Матни reasoning дар куҷо меояд
Матни reasoning ҳамеша аз ҷавоб ҷудо аст. Ҳар формат ҷои худро барои он дорад:
| Endpoint | Бе streaming | Бо streaming |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: сатр, ё null вақте ки модел чизе тавлид накардааст. | Чанкҳо бо choices[0].delta.reasoning_content, пеш аз чанкҳо бо 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 | Блоки аввали мундариҷа {"type": "thinking", "thinking": "…"}, баъд блоки text. Вақте ки reasoning нест, блоки thinking нест. | Блоки мундариҷаи thinking: content_block_start, рӯйдодҳои content_block_delta бо thinking_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
}
} Дар куҷо бояд ҷустуҷӯ кард, барои ҳар модел:
| Моделҳо | Матн дар куҷо меояд |
|---|---|
| Моделҳои open-weight-и хостшуда | Дар ҳар endpoint, бо streaming ё бе он. Ба дархост бо кӯшиши off, ё бо response_format / text.format, бе матни reasoning ҷавоб дода мешавад. |
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Дар ҳар endpoint, бо streaming ё бе он, ҳар вақте ки модел матни reasoning тавлид кардааст. |
shannon-2-lite, shannon-2-pro | /v1/chat/completions, бе streaming: дар message.reasoning_content. Бо streaming, дар дархост бе tools ё response_format: ҷараён ҳангоми reasoning-и модел хатҳои эзоҳи : thinking-ро дорад, баъд чанкҳои ҷавоб. /v1/messages, бо streaming: блоки thinking пеш аз блоки матн. |
shannon-1.6-pro, shannon-coder-1 | Дар ҷавобҳои streaming ва дар ҷавоб ба дархостҳое, ки tools-ро доранд, ҳар вақте ки модел матни reasoning тавлид кардааст. |
Дар /v1/responses ҷавоби бе streaming барои оилаи Shannon 3 ва моделҳои open-weight-и хостшуда ҷузъи reasoning-ро дорад.
Хондани ҷараён
Дар ҷараён матни 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?"}
]
}' Чанки аввали модели open-weight-и хостшуда, reasoning ё ҷавоб, ҳамчунин delta.role: "assistant"-ро дорад. Стриминг
Токенҳои reasoning ва ҳисобкунӣ
Дар моделҳои 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 ва ҷавоб якҷоя. Ин формат ҳисоби алоҳида надорад. |
- Дар моделҳои open-weight-и хостшуда
max_tokensматни ҷавобро маҳдуд мекунад. Токенҳои reasoning бо он ҳисоб намешаванд. - Азбаски reasoning ҳамчун баромад ҳисоб карда мешавад, сатҳи кӯшиш ҳамчунин танзими арзиш аст:
offтокенҳои reasoning тавлид намекунад. - Моделҳои Shannon
prompt_tokens,completion_tokensваtotal_tokens-ро (input_tokensваoutput_tokensдар/v1/messages) бе ҳиссаи reasoning ҳисобот медиҳанд ва як нархи ягонаро барои ҳар токен ҳисоб мекунанд. Моделҳо ва нархҳо
Reasoning дар дархости навбатӣ
Шумо набояд reasoning-ро баргардонед. Блоки thinking ё ҷузъи reasoning дар гуфтугӯи фиристодаи шумо ба модел интиқол дода намешавад, бинобар ин навбати assistant бо он ё бе он баргашта метавонад. Блоки thinking ду майдони 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 сатр нест. |
Хатогиҳои аутентификатсия, баланс ва сервер мисли ҳар дархост ҳамонанд. Идораи хатогиҳо