Conatus ratiocinationis
NovumModellum quod ratiocinatur textum ratiocinationis suae iuxta responsionem reddit, in campo proprio. In modellis open-weight hosted unus campus petitionis ponit quam alte modellum ratiocinetur antequam respondet.
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?"}
]
}' Responsio textum ratiocinationis in reasoning_content, responsionem in content, et tokens ratiocinationis in usage fert:
{
"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}
}
} Quae modelli ratiocinentur
| Modellum | Textum ratiocinationis reddit | Campum effort applicat |
|---|---|---|
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 | Ita | — |
| Omne modellum open-weight hosted | Ita | Ita |
Hae sunt notae capabilities.reasoning et capabilities.reasoning_effort quas GET /v1/models pro quoque id nuntiat. Responsio textum ratiocinationis fert tantum cum modellum aliquem produxit. Modella et pretia
Effort ponere
Quodque endpoint suam scripturam effort habet. Omnes unum ex iisdem quattuor gradibus eligunt.
| Campus | Genus | Default | Descriptio | Applicatur a |
|---|---|---|---|---|
reasoning_effort | string | high | /v1/chat/completions. Quam alte modellum ratiocinetur antequam respondet: off, low, medium vel high. | Modelli open-weight hosted |
reasoning | object | string | /v1/chat/completions. Idem valor ut {"effort": "low"} vel ut string nudus. Cum ambo campi mittuntur, reasoning_effort valet. | Modelli open-weight hosted | |
reasoning.effort | string | high | /v1/responses. Scriptum ut objectum {"effort": "low"}. | Modelli open-weight hosted |
thinking | object | /v1/messages. {"type": "enabled", "budget_tokens": n} vel {"type": "disabled"}. Budget unum e gradibus eligit; vide tabulam infra. | Modelli open-weight hosted |
{
"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?"}]
} | Valor | Etiam accepta | Effectus |
|---|---|---|
off | none, minimal | Nulla ratiocinatio. Responsio nullum textum ratiocinationis fert. |
low | Ratiocinatio brevis. | |
medium | default | Profunditas media. |
high | max | Gradus profundissimus. Hic est gradus petitionis quae nullum valorem mittit. |
- Valores sine respectu litterarum maiusculorum vel minusculorum leguntur.
- Valor
defaultsignificatmedium. Campum omittere significathigh. - Modelli Shannon (
shannon-*) profunditatem suam in omni petitione ponunt;GET /v1/modelspro eisreasoning_effort: falsenuntiat.
Budget thinking in /v1/messages
In /v1/messages campus thinking gradum eligit. budget_tokens unum e gradibus supra eligit; non est limes tokenum proprius. adaptive ut enabled legitur.
| Tu mittis | Gradus |
|---|---|
{"type": "disabled"} | off |
{"type": "enabled", "budget_tokens": n} cum n ad 2,048 | low |
n a 2,049 ad 8,192 | medium |
n maior, aut enabled sine budget_tokens | high |
Nullus campus thinking | high |
Ubi textus ratiocinationis adveniat
Textus ratiocinationis semper a responsione separatus est. Quaeque forma locum suum pro eo habet:
| Endpoint | Non streamed | Streamed |
|---|---|---|
/v1/chat/completions | choices[0].message.reasoning_content: string, aut null cum modellum nullam produxit. | Chunks cum choices[0].delta.reasoning_content, ante chunks cum delta.content. |
/v1/responses | Elementum output {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} ante elementum message. Nullum elementum cum nulla ratiocinatio est. | response.output_item.added cum elemento reasoning, deinde eventus response.reasoning_summary_text.delta et unum response.reasoning_summary_text.done. |
/v1/messages | Primus content block {"type": "thinking", "thinking": "…"}, deinde block text. Nullus block thinking cum nulla ratiocinatio est. | Content block thinking: content_block_start, eventus content_block_delta cum thinking_delta, content_block_stop. Block textus sequitur. |
{
"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
}
} Ubi spectandum sit, per modellum:
| Modelli | Ubi textus adveniat |
|---|---|
| Modelli open-weight hosted | In omni endpoint, streamed aut non. Petitio cum effort off, vel cum response_format / text.format, sine textu ratiocinationis respondetur. |
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro | In omni endpoint, streamed aut non, quotiens modellum textum ratiocinationis produxit. |
shannon-2-lite, shannon-2-pro | /v1/chat/completions, non streamed: in message.reasoning_content. Streamed, in petitione sine tools vel response_format: stream lineas commentarii : thinking fert dum modellum ratiocinatur, deinde chunks responsionis. /v1/messages, streamed: block thinking ante block textus. |
shannon-1.6-pro, shannon-coder-1 | In responsionibus streamed et in responsionibus ad petitiones quae tools ferunt, quotiens modellum textum ratiocinationis produxit. |
In /v1/responses, responsio non streamed elementum reasoning pro familia Shannon 3 et modellis open-weight hosted fert.
Stream legere
In stream textus ratiocinationis primus venit, in deltas propriis, et responsio sequitur. Utrumque separatim imprime vel serva:
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?"}
]
}' Primus chunk modelli open-weight hosted, ratiocinationis aut responsionis, etiam delta.role: "assistant" fert. Fluens
Tokens ratiocinationis et factura
In modellis open-weight hosted tokens ratiocinationis sunt tokens output: ad pretium output modelli computantur, et numerus output eos iam includit. usage hic partem ratiocinationis ostendit:
| Endpoint | Campus | Nota |
|---|---|---|
/v1/chat/completions | usage.completion_tokens_details.reasoning_tokens | Iam in completion_tokens inclusum. |
/v1/responses | usage.output_tokens_details.reasoning_tokens | Iam in output_tokens inclusum. |
/v1/messages | usage.output_tokens | Ratiocinatio et responsio simul. Haec forma numerum separatum non habet. |
- In modellis open-weight hosted
max_tokenstextum responsionis limitat. Tokens ratiocinationis contra eum non computantur. - Quia ratiocinatio ut output computatur, gradus effort etiam statutum sumptus est:
offnullos tokens ratiocinationis producit. - Modelli Shannon
prompt_tokens,completion_tokensettotal_tokens(input_tokensetoutput_tokensin/v1/messages) sine parte ratiocinationis nuntiant, et unum pretium planum per token computant. Modella et pretia
Ratiocinatio in petitione proxima
Ratiocinationem remittere non debes. Block thinking vel elementum reasoning in conversatione quam mittis ad modellum non transmittitur, itaque turnus assistentis cum eo vel sine eo redire potest. Block thinking duos campos type et thinking habet; signature non habet.
Errores
| Status | Genus | Nuntius | Quando |
|---|---|---|---|
400 | invalid_request_error | unknown reasoning effort '<value>'; expected off, low, medium or high | Modellum open-weight hosted valorem extra indicem accepit, exempli gratia xhigh. Nihil de saldo tuo trahitur. |
422 | invalid_request_error | Failed to deserialize the JSON body into the target type: … | reasoning_effort non est string. |
Errores authenticationis, saldi et servientis eidem sunt ac pro omni petitione. Tractatio errorum