Spriešanas apjoms
JaunsModelis, kas spriež, atgriež savu spriešanas tekstu līdzās atbildei, savā laukā. Hostētajiem atvērto svaru modeļiem viens pieprasījuma lauks nosaka, cik dziļi modelis spriež pirms atbildes.
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?"}
]
}' Atbilde nes spriešanas tekstu laukā reasoning_content, atbildi laukā content un spriešanas tokenus laukā 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}
}
} Kuri modeļi spriež
| Modelis | Atgriež spriešanas tekstu | Piemēro piepūles lauku |
|---|---|---|
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 | Jā | — |
| Katrs hostētais atvērto svaru modelis | Jā | Jā |
Tie ir karogi capabilities.reasoning un capabilities.reasoning_effort, ko GET /v1/models ziņo katram id. Atbilde nes spriešanas tekstu tikai tad, ja modelis kādu radīja. Modeļi un cenas
Piepūles iestatīšana
Katram galapunktam ir savs piepūles pieraksts. Visi tie izvēlas vienu un to pašu četru līmeņu.
| Lauks | Tips | Noklusējums | Apraksts | Piemēro |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Cik dziļi modelis spriež pirms atbildes: off, low, medium vai high. | Hostētie atvērto svaru modeļi |
reasoning | object | string | /v1/chat/completions. Tā pati vērtība kā {"effort": "low"} vai kā vienkārša virkne. Ja nosūtīti abi lauki, tiek ņemts reasoning_effort. | Hostētie atvērto svaru modeļi | |
reasoning.effort | string | high | /v1/responses. Rakstīts kā objekts {"effort": "low"}. | Hostētie atvērto svaru modeļi |
thinking | object | /v1/messages. {"type": "enabled", "budget_tokens": n} vai {"type": "disabled"}. Budžets izvēlas vienu no līmeņiem; skatiet tabulu zemāk. | Hostētie atvērto svaru modeļi |
{
"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?"}]
} | Vērtība | Pieņem arī | Iedarbība |
|---|---|---|
off | none, minimal | Bez spriešanas. Atbilde nenes spriešanas tekstu. |
low | Īsa spriešana. | |
medium | default | Vidējs dziļums. |
high | max | Dziļākais līmenis. Šāds ir līmenis pieprasījumam, kas nesūta nekādu vērtību. |
- Vērtības tiek lasītas, neņemot vērā lielos un mazos burtus.
- Vērtība
defaultnozīmēmedium. Ja lauku izlaiž, tas nozīmēhigh. - Shannon modeļi (
shannon-*) katrā pieprasījumā paši nosaka savu dziļumu;GET /v1/modelstiem ziņoreasoning_effort: false.
Spriešanas budžets galapunktā /v1/messages
Galapunktā /v1/messages līmeni izvēlas lauks thinking. budget_tokens izvēlas vienu no iepriekš minētajiem līmeņiem; tas nav atsevišķs tokenu ierobežojums. adaptive tiek lasīts kā enabled.
| Jūs sūtāt | Līmenis |
|---|---|
{"type": "disabled"} | off |
{"type": "enabled", "budget_tokens": n} ar n līdz 2,048 | low |
n no 2,049 līdz 8,192 | medium |
Lielāks n vai enabled bez budget_tokens | high |
Nav lauka thinking | high |
Kur ierodas spriešanas teksts
Spriešanas teksts vienmēr ir atsevišķs no atbildes. Katram formātam tam ir sava vieta:
| Galapunkts | Nestraumēts | Straumēts |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: virkne vai null, ja modelis neko neradīja. | Daļas ar choices[0].delta.reasoning_content pirms daļām ar delta.content. |
/v1/responses | Elements output {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} pirms elementa message. Ja spriešanas nav, elementa nav. | response.output_item.added ar elementu reasoning, tad notikumi response.reasoning_summary_text.delta un viens response.reasoning_summary_text.done. |
/v1/messages | Pirmais satura bloks {"type": "thinking", "thinking": "…"}, tad bloks text. Ja spriešanas nav, bloka thinking nav. | Satura bloks thinking: content_block_start, notikumi content_block_delta ar thinking_delta, content_block_stop. Tam seko teksta bloks. |
{
"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
}
} Kur skatīties, katram modelim:
| Modeļi | Kur teksts ierodas |
|---|---|
| Hostētie atvērto svaru modeļi | Katrā galapunktā, straumēts vai nē. Uz pieprasījumu ar piepūli off vai ar response_format / text.format atbild bez spriešanas teksta. |
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Katrā galapunktā, straumēts vai nē, kad vien modelis radīja spriešanas tekstu. |
shannon-2-lite, shannon-2-pro | /v1/chat/completions, nestraumēts: laukā message.reasoning_content. Straumēts, pieprasījumā bez tools vai response_format: straume, kamēr modelis spriež, nes komentāru rindas : thinking, pēc tam atbildes daļas. /v1/messages, straumēts: bloks thinking pirms teksta bloka. |
shannon-1.6-pro, shannon-coder-1 | Straumētās atbildēs un atbildēs uz pieprasījumiem, kas nes tools, kad vien modelis radīja spriešanas tekstu. |
Galapunktā /v1/responses nestraumēta atbilde Shannon 3 saimei un hostētajiem atvērto svaru modeļiem nes elementu reasoning.
Straumes lasīšana
Straumē spriešanas teksts nāk pirmais, savās delta, un atbilde seko. Izdrukājiet vai saglabājiet abus atsevišķi:
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?"}
]
}' Hostētā atvērto svaru modeļa pirmā daļa, spriešana vai atbilde, nes arī delta.role: "assistant". Straumēšana
Spriešanas tokeni un rēķināšana
Hostētajiem atvērto svaru modeļiem spriešanas tokeni ir izvades tokeni: tie tiek rēķināti par modeļa izvades cenu, un izvades skaits tos jau ietver. usage šeit rāda spriešanas daļu:
| Galapunkts | Lauks | Piezīme |
|---|---|---|
/v1/chat/completions | usage.completion_tokens_details.reasoning_tokens | Jau iekļauts completion_tokens. |
/v1/responses | usage.output_tokens_details.reasoning_tokens | Jau iekļauts output_tokens. |
/v1/messages | usage.output_tokens | Spriešana un atbilde kopā. Šim formātam nav atsevišķa skaita. |
- Hostētajiem atvērto svaru modeļiem
max_tokensierobežo atbildes tekstu. Spriešanas tokeni pret to netiek skaitīti. - Tā kā spriešana tiek rēķināta kā izvade, piepūles līmenis ir arī izmaksu iestatījums:
offneveido spriešanas tokenus. - Shannon modeļi ziņo
prompt_tokens,completion_tokensuntotal_tokens(input_tokensunoutput_tokensgalapunktā/v1/messages) bez spriešanas daļas un rēķina vienu vienotu cenu par tokenu. Modeļi un cenas
Spriešana nākamajā pieprasījumā
Spriešanu nav obligāti sūtīt atpakaļ. Bloks thinking vai elements reasoning jūsu nosūtītajā sarunā netiek nodots modelim, tāpēc asistenta gājienu var sūtīt atpakaļ ar to vai bez tā. Blokam thinking ir divi lauki type un thinking; tam nav signature.
Kļūdas
| Statuss | Veids | Ziņojums | Kad |
|---|---|---|---|
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Hostētais atvērto svaru modelis saņēma vērtību ārpus saraksta, piemēram, xhigh. No jūsu atlikuma nekas netiek norakstīts. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | reasoning_effort nav virkne. |
Autentifikācijas, atlikuma un servera kļūdas ir tādas pašas kā jebkuram pieprasījumam. Kļūdu apstrāde