Mulohaza darajasi
YangiMulohaza qiladigan model o'z mulohaza matnini javob yonida, alohida maydonda qaytaradi. Xostingdagi open-weight modellarda bitta so'rov maydoni model javob berishdan oldin qanchalik chuqur mulohaza qilishini belgilaydi.
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?"}
]
}' Javob mulohaza matnini reasoning_contentda, javobni contentda, mulohaza tokenlarini esa usageda olib keladi:
{
"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}
}
} Qaysi modellar mulohaza qiladi
| Model | Mulohaza matnini qaytaradi | Daraja maydonini qo'llaydi |
|---|---|---|
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 | Ha | — |
| Xostingdagi har bir open-weight model | Ha | Ha |
Bular GET /v1/models har bir id uchun ko'rsatadigan capabilities.reasoning va capabilities.reasoning_effort flaglari. Javob mulohaza matnini faqat model uni hosil qilgandagina olib keladi. Modellar va narxlar
Darajani belgilash
Har bir endpointning daraja yozilishi o'ziniki. Ularning hammasi bir xil to'rt darajadan birini tanlaydi.
| Maydon | Tur | Standart | Tavsif | Qo'llaydi |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Model javob berishdan oldin qanchalik chuqur mulohaza qiladi: off, low, medium yoki high. | Xostingdagi open-weight modellar |
reasoning | object | string | /v1/chat/completions. Xuddi shu qiymat {"effort": "low"} yoki oddiy satr sifatida. Ikkala maydon yuborilsa, reasoning_effort hisobga olinadi. | Xostingdagi open-weight modellar | |
reasoning.effort | string | high | /v1/responses. {"effort": "low"} obyekti sifatida yoziladi. | Xostingdagi open-weight modellar |
thinking | object | /v1/messages. {"type": "enabled", "budget_tokens": n} yoki {"type": "disabled"}. Byudjet darajalardan birini tanlaydi; pastdagi jadvalga qarang. | Xostingdagi open-weight modellar |
{
"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?"}]
} | Qiymat | Yana qabul qilinadi | Ta'siri |
|---|---|---|
off | none, minimal | Mulohazasiz. Javob mulohaza matnini olib kelmaydi. |
low | Qisqa mulohaza. | |
medium | default | O'rta chuqurlik. |
high | max | Eng chuqur daraja. Qiymat yubormaydigan so'rovning darajasi shu. |
- Qiymatlar katta-kichik harfga e'tibor bermay o'qiladi.
defaultqiymatimediumni bildiradi. Maydonni qoldirishhighni bildiradi.- Shannon modellari (
shannon-*) har bir so'rovda chuqurlikni o'zlari belgilaydi;GET /v1/modelsular uchunreasoning_effort: falseni ko'rsatadi.
/v1/messages dagi thinking byudjeti
/v1/messages da thinking maydoni darajani tanlaydi. budget_tokens yuqoridagi darajalardan birini tanlaydi; u o'z token limiti emas. adaptive enabled kabi o'qiladi.
| Siz yuborasiz | Daraja |
|---|---|
{"type": "disabled"} | off |
{"type": "enabled", "budget_tokens": n}, n 2,048 gacha | low |
n 2,049 dan 8,192 gacha | medium |
Kattaroq n yoki budget_tokenssiz enabled | high |
thinking maydoni yo'q | high |
Mulohaza matni qayerga keladi
Mulohaza matni doim javobdan alohida. Har bir formatning buning uchun o'z joyi bor:
| Endpoint | Oqimsiz | Oqimli |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: satr, model hech narsa hosil qilmagan bo'lsa null. | delta.contentli chunk'lardan oldin choices[0].delta.reasoning_contentli chunk'lar. |
/v1/responses | message elementidan oldin output elementi {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]}. Mulohaza bo'lmasa element yo'q. | reasoning elementi bilan response.output_item.added, so'ng response.reasoning_summary_text.delta hodisalari va bitta response.reasoning_summary_text.done. |
/v1/messages | Birinchi kontent bloki {"type": "thinking", "thinking": "…"}, keyin text bloki. Mulohaza bo'lmasa thinking bloki yo'q. | thinking kontent bloki: content_block_start, thinking_deltali content_block_delta hodisalari, content_block_stop. Matn bloki ergashadi. |
{
"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
}
} Qayerga qarash kerak, model bo'yicha:
| Modellar | Matn qayerga keladi |
|---|---|
| Xostingdagi open-weight modellar | Har bir endpointda, oqimli yoki oqimsiz. off darajali yoki response_format / text.formatli so'rovga mulohaza matnisiz javob beriladi. |
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Har bir endpointda, oqimli yoki oqimsiz, model mulohaza matnini hosil qilganda. |
shannon-2-lite, shannon-2-pro | /v1/chat/completions, oqimsiz: message.reasoning_contentda. tools yoki response_formatsiz so'rovda oqimli: model mulohaza qilayotganda oqim : thinking izoh satrlarini, so'ng javob chunk'larini olib keladi. /v1/messages, oqimli: matn blokidan oldin thinking bloki. |
shannon-1.6-pro, shannon-coder-1 | Oqimli javoblarda va toolsni olib keladigan so'rovlarga javoblarda, model mulohaza matnini hosil qilganda. |
/v1/responses da oqimsiz javob Shannon 3 oilasi va xostingdagi open-weight modellar uchun reasoning elementini olib keladi.
Oqimni o'qish
Oqimda mulohaza matni birinchi, o'z deltalarida keladi, javob undan keyin. Ikkalasini alohida chop eting yoki saqlang:
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?"}
]
}' Xostingdagi open-weight modelning birinchi chunk'i, mulohaza yoki javob, delta.role: "assistant"ni ham olib keladi. Oqim
Mulohaza tokenlari va hisob-kitob
Xostingdagi open-weight modellarda mulohaza tokenlari chiqish tokenlari: ular modelning chiqish narxida hisoblanadi va chiqish soni ularni allaqachon o'z ichiga oladi. usage bu yerda mulohaza ulushini ko'rsatadi:
| Endpoint | Maydon | Izoh |
|---|---|---|
/v1/chat/completions | usage.completion_tokens_details.reasoning_tokens | completion_tokensga allaqachon kiritilgan. |
/v1/responses | usage.output_tokens_details.reasoning_tokens | output_tokensga allaqachon kiritilgan. |
/v1/messages | usage.output_tokens | Mulohaza va javob birgalikda. Bu formatda alohida son yo'q. |
- Xostingdagi open-weight modellarda
max_tokensjavob matnini cheklaydi. Mulohaza tokenlari unga hisoblanmaydi. - Mulohaza chiqish sifatida hisoblangani uchun daraja ayni paytda xarajat sozlamasi ham:
offmulohaza tokenlarini hosil qilmaydi. - Shannon modellari
prompt_tokens,completion_tokensvatotal_tokensni (/v1/messagesdainput_tokensvaoutput_tokens) mulohaza ulushisiz ko'rsatadi va har bir token uchun bitta qat'iy narxda hisoblaydi. Modellar va narxlar
Keyingi so'rovdagi mulohaza
Mulohazani qaytarib yuborishingiz shart emas. Yuboradigan suhbatingizdagi thinking bloki yoki reasoning elementi modelga uzatilmaydi, shuning uchun assistant navbati u bilan ham, usiz ham qaytishi mumkin. thinking blokida type va thinking ikki maydoni bor; signature yo'q.
Xatolar
| Holat | Tur | Xabar | Qachon |
|---|---|---|---|
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Xostingdagi open-weight model ro'yxatdan tashqari qiymat oldi, masalan xhigh. Balansingizdan hech narsa yechilmaydi. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | reasoning_effort satr emas. |
Autentifikatsiya, balans va server xatolari har bir so'rovdagi bilan bir xil. Xatolarni boshqarish