Sforz ta' raġunament
ĠdidMudell li jirraġuna jagħti lura t-test tar-raġunament tiegħu maġenb it-tweġiba, f'qasam tiegħu. Fuq il-mudelli open-weight ospitati qasam wieħed tat-talba jistabbilixxi kemm jirraġuna fil-fond il-mudell qabel ma jwieġeb.
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?"}
]
}' It-tweġiba iġġorr it-test tar-raġunament f'reasoning_content, it-tweġiba f'content, u t-tokens tar-raġunament f'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}
}
} Liema mudelli jirraġunaw
| Mudell | Jagħti lura test tar-raġunament | Japplika l-qasam 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 | Iva | — |
| Kull mudell open-weight ospitat | Iva | Iva |
Dawn huma l-flags capabilities.reasoning u capabilities.reasoning_effort li GET /v1/models jirrapporta għal kull id. Tweġiba iġġorr test tar-raġunament biss meta l-mudell ipproduċa xi ftit. Mudelli u prezzijiet
Kif issettja l-effort
Kull endpoint għandu l-ikteb tiegħu tal-effort. Kollha jagħżlu wieħed mill-istess erba' livelli.
| Qasam | Tip | Default | Deskrizzjoni | Applikat minn |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Kemm jirraġuna fil-fond il-mudell qabel ma jwieġeb: off, low, medium jew high. | Mudelli open-weight ospitati |
reasoning | object | string | /v1/chat/completions. L-istess valur bħal {"effort": "low"} jew bħala string waħdu. Meta jintbagħtu ż-żewġ kampi, reasoning_effort jgħodd. | Mudelli open-weight ospitati | |
reasoning.effort | string | high | /v1/responses. Miktub bħala l-oġġett {"effort": "low"}. | Mudelli open-weight ospitati |
thinking | object | /v1/messages. {"type": "enabled", "budget_tokens": n} jew {"type": "disabled"}. Il-baġit jagħżel wieħed mil-livelli; ara t-tabella aktar 'l isfel. | Mudelli open-weight ospitati |
{
"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?"}]
} | Valur | Jiġi aċċettat ukoll | Effett |
|---|---|---|
off | none, minimal | L-ebda raġunament. It-tweġiba ma ġġorr l-ebda test tar-raġunament. |
low | Raġunament qasir. | |
medium | default | Fond medju. |
high | max | L-aktar livell fil-fond. Dan huwa l-livell ta' talba li ma tibgħat l-ebda valur. |
- Il-valuri jinqraw mingħajr ma jitqiesu l-ittri kbar jew żgħar.
- Il-valur
defaultifissermedium. Jekk titlaq il-qasam barra, ifisserhigh. - Il-mudelli Shannon (
shannon-*) jistabbilixxu l-fond tagħhom stess f'kull talba;GET /v1/modelsjirrapportareasoning_effort: falsegħalihom.
Il-baġit tat-thinking fuq /v1/messages
Fuq /v1/messages il-qasam thinking jagħżel il-livell. budget_tokens jagħżel wieħed mil-livelli ta' hawn fuq; mhuwiex limitu ta' tokens tiegħu. adaptive jinqara bħal enabled.
| Inti tibgħat | Livell |
|---|---|
{"type": "disabled"} | off |
{"type": "enabled", "budget_tokens": n} b'n sa 2,048 | low |
n minn 2,049 sa 8,192 | medium |
n akbar, jew enabled mingħajr budget_tokens | high |
L-ebda qasam thinking | high |
Fejn jasal it-test tar-raġunament
It-test tar-raġunament huwa dejjem separat mit-tweġiba. Kull format għandu l-post tiegħu għalih:
| Endpoint | Mhux fi stream | Fi stream |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: string, jew null meta l-mudell ma pproduċa xejn. | Chunks b'choices[0].delta.reasoning_content, qabel il-chunks b'delta.content. |
/v1/responses | Element ta' output {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} qabel l-element message. L-ebda element meta ma jkun hemm raġunament. | response.output_item.added b'element reasoning, imbagħad avvenimenti response.reasoning_summary_text.delta u avveniment wieħed response.reasoning_summary_text.done. |
/v1/messages | Ewwel blokk tal-kontenut {"type": "thinking", "thinking": "…"}, imbagħad il-blokk text. L-ebda blokk thinking meta ma jkun hemm raġunament. | Blokk tal-kontenut thinking: content_block_start, avvenimenti content_block_delta b'thinking_delta, content_block_stop. Il-blokk tat-test isegwi. |
{
"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
}
} Fejn tħares, għal kull mudell:
| Mudelli | Fejn jasal it-test |
|---|---|
| Mudelli open-weight ospitati | Fuq kull endpoint, fi stream jew le. Talba b'effort off, jew b'response_format / text.format, titwieġeb mingħajr test tar-raġunament. |
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | Fuq kull endpoint, fi stream jew le, kull meta l-mudell ipproduċa test tar-raġunament. |
shannon-2-lite, shannon-2-pro | /v1/chat/completions, mhux fi stream: f'message.reasoning_content. Fi stream, f'talba mingħajr tools jew response_format: l-istream iġorr linji ta' kummentarju : thinking waqt li l-mudell jirraġuna, imbagħad il-chunks tat-tweġiba. /v1/messages, fi stream: blokk thinking qabel il-blokk tat-test. |
shannon-1.6-pro, shannon-coder-1 | Fi tweġibiet fi stream u fi tweġibiet għal talbiet li jġorru tools, kull meta l-mudell ipproduċa test tar-raġunament. |
Fuq /v1/responses, tweġiba li ma tiġix fi stream iġġorr l-element reasoning għall-familja Shannon 3 u l-mudelli open-weight ospitati.
Kif taqra stream
Fi stream it-test tar-raġunament jiġi l-ewwel, f'deltas tiegħu, u t-tweġiba ssegwi. Stampa jew aħżen it-tnejn separatament:
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?"}
]
}' L-ewwel chunk ta' mudell open-weight ospitat, raġunament jew tweġiba, iġorr ukoll delta.role: "assistant". Streaming
Tokens tar-raġunament u ħlas
Fuq il-mudelli open-weight ospitati, it-tokens tar-raġunament huma tokens tal-output: jitħallsu bil-prezz tal-output tal-mudell, u l-għadd tal-output diġà jinkludihom. usage juri hawn is-sehem tar-raġunament:
| Endpoint | Qasam | Nota |
|---|---|---|
/v1/chat/completions | usage.completion_tokens_details.reasoning_tokens | Diġà inkluż f'completion_tokens. |
/v1/responses | usage.output_tokens_details.reasoning_tokens | Diġà inkluż f'output_tokens. |
/v1/messages | usage.output_tokens | Ir-raġunament u t-tweġiba flimkien. Dan il-format m'għandux għadd separat. |
- Fuq il-mudelli open-weight ospitati
max_tokensjillimita t-test tat-tweġiba. It-tokens tar-raġunament ma jingħaddux miegħu. - Peress li r-raġunament jitħallas bħala output, il-livell tal-effort huwa wkoll setting tal-ispiża:
offma jipproduċi l-ebda tokens ta' raġunament. - Il-mudelli Shannon jirrapportaw
prompt_tokens,completion_tokensutotal_tokens(input_tokensuoutput_tokensfuq/v1/messages) mingħajr sehem ta' raġunament, u jitolbu prezz wieħed fiss għal kull token. Mudelli u prezzijiet
Ir-raġunament fit-talba li jmiss
Ma teħtieġx tibgħat ir-raġunament lura. Blokk thinking jew element reasoning fil-konversazzjoni li tibgħat ma jiġix mgħoddi lill-mudell, għalhekk turn tal-assistent jista' jmur lura bih jew mingħajru. Blokk thinking għandu ż-żewġ kampi type u thinking; m'għandux signature.
Żbalji
| Status | Tip | Messaġġ | Meta |
|---|---|---|---|
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Mudell open-weight ospitat irċieva valur barra l-lista, pereżempju xhigh. Ma jittieħed xejn mill-bilanċ tiegħek. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | reasoning_effort mhuwiex string. |
L-iżbalji ta' awtentikazzjoni, bilanċ u server huma l-istess bħal għal kull talba. Ġestjoni tal-iżbalji