Salti al la enhavo
Peno de reasoning

Peno de reasoning

Nova

Modelo, kiu rezonas, redonas sian raciuman tekston apud la respondo, en propra kampo. Ĉe la gastigitaj malfermpezaj modeloj unu kampo de peto fiksas kiom profunde la modelo rezonas antaŭ ol respondi.

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)

La respondo portas la raciuman tekston en reasoning_content, la respondon en content, kaj la raciumajn tokenojn en usage:

200 JSON
{
  "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}
  }
}

Kiuj modeloj rezonas

Modelo Redonas raciuman tekston Aplikas la kampon 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 Jes —
Ĉiu gastigita malfermpeza modelo Jes Jes

Ĉi tiuj estas la flagoj capabilities.reasoning kaj capabilities.reasoning_effort, kiujn GET /v1/models raportas por ĉiu id. Respondo portas raciuman tekston nur kiam la modelo produktis iun. Modeloj kaj prezoj

Agordo de la peno

Ĉiu endpoint havas sian propran literumon de la peno. Ĉiuj elektas unu el la samaj kvar niveloj.

Kampo Tipo Defaŭlto Priskribo Aplikata de
reasoning_effort string high /v1/chat/completions. Kiom profunde la modelo rezonas antaŭ ol respondi: off, low, medium aŭ high. Gastigitaj malfermpezaj modeloj
reasoning object | string /v1/chat/completions. La sama valoro kiel {"effort": "low"} aŭ kiel nuda ĉeno. Kiam ambaŭ kampoj estas senditaj, reasoning_effort validas. Gastigitaj malfermpezaj modeloj
reasoning.effort string high /v1/responses. Skribita kiel la objekto {"effort": "low"}. Gastigitaj malfermpezaj modeloj
thinking object /v1/messages. {"type": "enabled", "budget_tokens": n} aŭ {"type": "disabled"}. La buĝeto elektas unu el la niveloj; vidu la tabelon pli sube. Gastigitaj malfermpezaj modeloj
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
Valoro Akceptitaj ankaŭ Efiko
off none, minimal Neniu rezonado. La respondo portas neniun raciuman tekston.
low Mallonga rezonado.
medium default Meza profundo.
high max La plej profunda nivelo. Tio estas la nivelo de peto, kiu sendas neniun valoron.
  • Valoroj estas legataj sen konsidero de majuskloj aŭ minuskloj.
  • La valoro default signifas medium. Lasi la kampon ekster signifas high.
  • La Shannon-modeloj (shannon-*) fiksas sian propran profundon en ĉiu peto; GET /v1/models raportas reasoning_effort: false por ili.

La buĝeto de pensado ĉe /v1/messages

Ĉe /v1/messages la kampo thinking elektas la nivelon. budget_tokens elektas unu el la supraj niveloj; ĝi ne estas propra limo de tokenoj. adaptive estas legata kiel enabled.

Vi sendas Nivelo
{"type": "disabled"} off
{"type": "enabled", "budget_tokens": n} kun n ĝis 2,048 low
n de 2,049 ĝis 8,192 medium
Pli granda n, aŭ enabled sen budget_tokens high
Neniu kampo thinking high

Kie la raciuma teksto alvenas

Raciuma teksto estas ĉiam aparta de la respondo. Ĉiu formato havas sian propran lokon por ĝi:

Endpoint Ne fluata Fluata
/v1/chat/completions choices[0].message.reasoning_content: ĉeno, aŭ null kiam la modelo produktis nenion. Pecoj kun choices[0].delta.reasoning_content, antaŭ la pecoj kun delta.content.
/v1/responses Ero de output {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} antaŭ la ero message. Neniu ero kiam ne ekzistas rezonado. response.output_item.added kun ero reasoning, poste eventoj response.reasoning_summary_text.delta kaj unu response.reasoning_summary_text.done.
/v1/messages Unua enhavbloko {"type": "thinking", "thinking": "…"}, poste la bloko text. Neniu bloko thinking kiam ne ekzistas rezonado. Enhavbloko thinking: content_block_start, eventoj content_block_delta kun thinking_delta, content_block_stop. La tekstbloko sekvas.
{
  "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}
  }
}

Kie serĉi, laŭ modelo:

Modeloj Kie la teksto alvenas
Gastigitaj malfermpezaj modeloj Ĉe ĉiu endpoint, fluata aŭ ne. Peto kun peno off, aŭ kun response_format / text.format, estas respondata sen raciuma teksto.
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Ĉe ĉiu endpoint, fluata aŭ ne, kiam ajn la modelo produktis raciuman tekston.
shannon-2-lite, shannon-2-pro /v1/chat/completions, ne fluata: en message.reasoning_content. Fluata, en peto sen tools aŭ response_format: la fluo portas komentliniojn : thinking dum la modelo rezonas, poste la pecojn de la respondo. /v1/messages, fluata: bloko thinking antaŭ la tekstbloko.
shannon-1.6-pro, shannon-coder-1 En fluataj respondoj kaj en respondoj al petoj kun tools, kiam ajn la modelo produktis raciuman tekston.

Ĉe /v1/responses, ne fluata respondo portas la eron reasoning por la familio Shannon 3 kaj la gastigitaj malfermpezaj modeloj.

Legado de fluo

En fluo la raciuma teksto venas unue, en propraj deltoj, kaj la respondo sekvas. Presu aŭ konservu la du aparte:

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

La unua peco de gastigita malfermpeza modelo, rezonado aŭ respondo, portas ankaŭ delta.role: "assistant". Fluigo

Raciumaj tokenoj kaj fakturado

Ĉe la gastigitaj malfermpezaj modeloj, raciumaj tokenoj estas eligaj tokenoj: ili estas kalkulataj laŭ la elig-prezo de la modelo, kaj la eliga nombro jam inkluzivas ilin. usage montras la raciuman parton ĉi tie:

Endpoint Kampo Noto
/v1/chat/completions usage.completion_tokens_details.reasoning_tokens Jam inkluzivita en completion_tokens.
/v1/responses usage.output_tokens_details.reasoning_tokens Jam inkluzivita en output_tokens.
/v1/messages usage.output_tokens Rezonado kaj respondo kune. Ĉi tiu formato ne havas apartan nombron.
  • Ĉe la gastigitaj malfermpezaj modeloj max_tokens limigas la tekston de la respondo. Raciumaj tokenoj ne kalkuliĝas kontraŭ ĝi.
  • Ĉar rezonado estas kalkulata kiel eligo, la nivelo de peno estas ankaŭ agordo de kosto: off produktas neniujn raciumajn tokenojn.
  • La Shannon-modeloj raportas prompt_tokens, completion_tokens kaj total_tokens (input_tokens kaj output_tokens ĉe /v1/messages) sen raciuma parto, kaj kalkulas unu ebenan prezon por tokeno. Modeloj kaj prezoj

Rezonado en la sekva peto

Vi ne devas resendi rezonadon. Bloko thinking aŭ ero reasoning en la konversacio, kiun vi sendas, ne estas transdonata al la modelo, do vico de la asistanto povas reiri kun aŭ sen ĝi. Bloko thinking havas la du kampojn type kaj thinking; ĝi ne havas signature.

Eraroj

Stato Tipo Mesaĝo Kiam
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Gastigita malfermpeza modelo ricevis valoron ekster la listo, ekzemple xhigh. Nenio estas prenita el via saldo.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … reasoning_effort ne estas ĉeno.

Aŭtentigo, saldo kaj servilaj eraroj estas samaj kiel ĉe ĉiu peto. Erarotraktado