Reasoning аракет деңгээли
ЖаңыReasoning жүргүзгөн модель өзүнүн reasoning текстин жооптун жанында, өзүнчө талаада кайтарат. Хостингдеги ачык салмактуу моделдерде бир сурам талаасы модель жооп бергенге чейин канчалык терең 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 | Ооба | — |
| Хостингдеги ар бир ачык салмактуу модель | Ооба | Ооба |
Булар GET /v1/models ар бир id үчүн билдирген capabilities.reasoning жана capabilities.reasoning_effort желектери. Жоопто reasoning тексти модель чыгарганда гана болот. Моделдер жана баалар
Аракетти коюу
Ар бир endpoint аракетти өзүнчө жазат. Алардын баары бир эле төрт деңгээлдин бирин тандайт.
| Талаа | Түрү | Демейки | Сүрөттөмө | Колдонгон |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Модель жооп бергенге чейин канчалык терең reasoning жүргүзөт: off, low, medium же high. | Хостингдеги ачык салмактуу моделдер |
reasoning | object | string | /v1/chat/completions. {"effort": "low"} сыяктуу эле маани, же жылаңач сап катары. Эки талаа тең жөнөтүлсө, reasoning_effort эсептелет. | Хостингдеги ачык салмактуу моделдер | |
reasoning.effort | string | high | /v1/responses. {"effort": "low"} объекти катары жазылат. | Хостингдеги ачык салмактуу моделдер |
thinking | object | /v1/messages. {"type": "enabled", "budget_tokens": n} же {"type": "disabled"}. Бюджет деңгээлдердин бирин тандайт; төмөнкү таблицаны караңыз. | Хостингдеги ачык салмактуу моделдер |
{
"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, же budget_tokens жок enabled | high |
thinking талаасы жок | high |
Reasoning тексти кайда келет
Reasoning тексти ар дайым жооптон бөлөк. Ар бир форматтын өз орду бар:
| Endpoint | Стримсиз | Стриммен |
|---|---|---|
/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 жок болсо элемент жок. | reasoning элементи менен response.output_item.added, андан кийин response.reasoning_summary_text.delta окуялары жана бир response.reasoning_summary_text.done. |
/v1/messages | Биринчи мазмун блогу {"type": "thinking", "thinking": "…"}, андан кийин text блогу. Reasoning жок болсо 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
}
} Кайдан издөө керек, модель боюнча:
| Моделдер | Текст кайда келет |
|---|---|
| Хостингдеги ачык салмактуу моделдер | Ар бир endpoint'те, стриммен же стримсиз. Аракети off болгон же response_format / text.format бар сурамга reasoning текстсиз жооп берилет. |
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Ар бир endpoint'те, стриммен же стримсиз, модель reasoning текстин чыгарган сайын. |
shannon-2-lite, shannon-2-pro | /v1/chat/completions, стримсиз: message.reasoning_content ичинде. tools же response_format жок сурамда стриммен: модель reasoning жүргүзүп жатканда стрим : thinking комментарий саптарын алып келет, андан кийин жооп чанктарын. /v1/messages, стриммен: текст блогунан мурун thinking блогу. |
shannon-1.6-pro, shannon-coder-1 | Стримдик жооптордо жана tools камтыган сурамдарга жооптордо, модель reasoning текстин чыгарган сайын. |
/v1/responses боюнча стримсиз жооп Shannon 3 үй-бүлөсү жана хостингдеги ачык салмактуу моделдер үчүн reasoning элементин алып келет.
Стримди окуу
Стримде 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?"}
]
}' Хостингдеги ачык салмактуу модельдин биринчи чанкы, reasoning же жооп, delta.role: "assistant" да алып келет. Стриминг
Reasoning токендери жана эсептөө
Хостингдеги ачык салмактуу моделдерде 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 жана жооп бирге. Бул форматта өзүнчө сан жок. |
- Хостингдеги ачык салмактуу моделдерде
max_tokensжооп текстин чектейт. Reasoning токендери ага эсептелбейт. - Reasoning чыгыш катары эсептелгендиктен, аракет деңгээли чыгым жөндөөсү да:
offreasoning токендерин чыгарбайт. - Shannon моделдери
prompt_tokens,completion_tokensжанаtotal_tokens(/v1/messagesбоюнчаinput_tokensжанаoutput_tokens) reasoning үлүшүсүз билдирет жана ар бир токенге бир туруктуу баа менен эсептейт. Моделдер жана баалар
Кийинки сурамда reasoning
Reasoning'ди кайра жөнөтүүнүн кереги жок. Жөнөткөн сүйлөшүүңүздөгү thinking блогу же reasoning элементи моделге өткөрүлбөйт, ошондуктан ассистент кадамын аны менен же аны жок кайра жөнөтсө болот. thinking блогунда type жана thinking деген эки талаа бар; анда signature жок.
Каталар
| Статус | Түрү | Билдирүү | Качан |
|---|---|---|---|
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Хостингдеги ачык салмактуу модель тизмеден тышкаркы маани алды, мисалы xhigh. Балансыңыздан эч нерсе алынбайт. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | reasoning_effort сап эмес. |
Аутентификация, баланс жана сервер каталары ар бир сурамдагыдай эле. Ката иштетүү