Joan edukira
Arrazonamendu-esfortzua

Arrazonamendu-esfortzua

Berria

Arrazoitzen duen modelo batek bere arrazonamendu-testua erantzunaren ondoan itzultzen du, eremu propio batean. Pisu irekiko modelo ostatatuetan eskaera-eremu batek ezartzen du modeloak erantzun aurretik zein sakonki arrazoitzen duen.

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)

Erantzunak arrazonamendu-testua reasoning_content-en darama, erantzuna content-en, eta arrazonamendu-tokenak usage-n:

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}
  }
}

Zein modelok arrazoitzen duten

Modeloa Arrazonamendu-testua itzultzen du Esfortzu-eremua aplikatzen du
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 Bai —
Pisu irekiko modelo ostatatu guztiak Bai Bai

Hauek dira GET /v1/models-ek id bakoitzeko jakinarazten dituen capabilities.reasoning eta capabilities.reasoning_effort flag-ak. Erantzun batek arrazonamendu-testua darama modeloak sortu duenean bakarrik. Modeloak eta prezioak

Esfortzua ezartzea

Endpoint bakoitzak bere idazkera du esfortzurako. Guztiek lau maila berberetako bat hautatzen dute.

Eremua Mota Lehenetsia Deskribapena Aplikatzen duena
reasoning_effort string high /v1/chat/completions. Modeloak erantzun aurretik zein sakonki arrazoitzen duen: off, low, medium edo high. Pisu irekiko modelo ostatatuak
reasoning object | string /v1/chat/completions. Balio bera {"effort": "low"} gisa edo kate huts gisa. Bi eremuak bidaltzen direnean, reasoning_effort hartzen da kontuan. Pisu irekiko modelo ostatatuak
reasoning.effort string high /v1/responses. {"effort": "low"} objektu gisa idatzia. Pisu irekiko modelo ostatatuak
thinking object /v1/messages. {"type": "enabled", "budget_tokens": n} edo {"type": "disabled"}. Aurrekontuak mailetako bat hautatzen du; ikus beheko taula. Pisu irekiko modelo ostatatuak
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
Balioa Onartzen dira ere Eragina
off none, minimal Arrazonamendurik ez. Erantzunak ez du arrazonamendu-testurik.
low Arrazonamendu laburra.
medium default Sakonera ertaina.
high max Maila sakonena. Baliorik bidaltzen ez duen eskaeraren maila da hau.
  • Balioak maiuskulak eta minuskulak bereizi gabe irakurtzen dira.
  • default balioak medium esan nahi du. Eremua kanpoan uzteak high esan nahi du.
  • Shannon modeloek (shannon-*) eskaera bakoitzean ezartzen dute beren sakonera; GET /v1/models-ek reasoning_effort: false jakinarazten du haientzat.

Pentsamendu-aurrekontua /v1/messages endpoint-ean

/v1/messages endpoint-ean thinking eremuak maila hautatzen du. budget_tokens-ek goiko mailetako bat aukeratzen du; ez da token-muga propio bat. adaptive enabled bezala irakurtzen da.

Zuk bidaltzen duzu Maila
{"type": "disabled"} off
{"type": "enabled", "budget_tokens": n} non n 2,048 arte den low
n 2,049tik 8,192ra medium
n handiago bat, edo enabled budget_tokens gabe high
thinking eremurik ez high

Arrazonamendu-testua non iristen den

Arrazonamendu-testua beti erantzunetik bereizita dago. Formatu bakoitzak bere lekua du horretarako:

Endpoint-a Streamik gabe Stream bidez
/v1/chat/completions choices[0].message.reasoning_content: kate bat, edo null modeloak ezer sortu ez duenean. choices[0].delta.reasoning_content duten chunk-ak, delta.content duten chunk-en aurretik.
/v1/responses {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} output elementu bat message elementuaren aurretik. Elementurik ez arrazonamendurik ez dagoenean. response.output_item.added reasoning elementu batekin, gero response.reasoning_summary_text.delta gertaerak eta response.reasoning_summary_text.done bat.
/v1/messages {"type": "thinking", "thinking": "…"} lehen eduki-bloke gisa, gero text blokea. thinking blokerik ez arrazonamendurik ez dagoenean. thinking eduki-bloke bat: content_block_start, thinking_delta duten content_block_delta gertaerak, content_block_stop. Testu-blokea ondoren dator.
{
  "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}
  }
}

Non begiratu, modelo bakoitzeko:

Modeloak Testua non iristen den
Pisu irekiko modelo ostatatuak Endpoint guztietan, stream bidez edo gabe. off esfortzua duen eskaerari, edo response_format / text.format duenari, arrazonamendu-testurik gabe erantzuten zaio.
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Endpoint guztietan, stream bidez edo gabe, modeloak arrazonamendu-testua sortu duenean.
shannon-2-lite, shannon-2-pro /v1/chat/completions, stream gabe: message.reasoning_content-en. Stream bidez, tools edo response_format gabeko eskaeran: streamak : thinking iruzkin-lerroak darama modeloak arrazoitzen duen bitartean, gero erantzun-chunk-ak. /v1/messages, stream bidez: thinking bloke bat testu-blokearen aurretik.
shannon-1.6-pro, shannon-coder-1 Stream bidezko erantzunetan eta tools duten eskaeren erantzunetan, modeloak arrazonamendu-testua sortu duenean.

/v1/responses endpoint-ean, stream gabeko erantzun batek reasoning elementua darama Shannon 3 familiarentzat eta pisu irekiko modelo ostatatuentzat.

Stream bat irakurtzea

Stream batean arrazonamendu-testua lehenik dator, delta propioetan, eta erantzuna ondoren. Inprimatu edo gorde biak bereizita:

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

Pisu irekiko modelo ostatatu baten lehen chunk-ak, arrazonamenduarenak edo erantzunarenak, delta.role: "assistant" ere badu. Streaminga

Arrazonamendu-tokenak eta fakturazioa

Pisu irekiko modelo ostatatuetan, arrazonamendu-tokenak irteera-tokenak dira: modeloaren irteera-prezioan fakturatzen dira, eta irteera-kopuruak barne hartzen ditu jada. usage-k arrazonamenduaren zatia erakusten du hemen:

Endpoint-a Eremua Oharra
/v1/chat/completions usage.completion_tokens_details.reasoning_tokens completion_tokens-en barne dago jada.
/v1/responses usage.output_tokens_details.reasoning_tokens output_tokens-en barne dago jada.
/v1/messages usage.output_tokens Arrazonamendua eta erantzuna batera. Formatu honek ez du kontaketa bereizirik.
  • Pisu irekiko modelo ostatatuetan max_tokens-ek erantzun-testua mugatzen du. Arrazonamendu-tokenak ez dira kontatzen.
  • Arrazonamendua irteera gisa fakturatzen denez, esfortzu-maila kostu-ezarpen bat ere bada: off-ek ez du arrazonamendu-tokenik sortzen.
  • Shannon modeloek prompt_tokens, completion_tokens eta total_tokens jakinarazten dituzte (input_tokens eta output_tokens /v1/messages endpoint-ean) arrazonamendu-zatirik gabe, eta prezio finko bakarra fakturatzen dute tokeneko. Modeloak eta prezioak

Arrazonamendua hurrengo eskaeran

Ez duzu arrazonamendua berriro bidali behar. Bidaltzen duzun elkarrizketako thinking bloke bat edo reasoning elementu bat ez zaio modeloari pasatzen, beraz assistant txanda batek harekin edo gabe itzul daiteke. thinking blokeak bi eremu ditu, type eta thinking; ez du signature-rik.

Erroreak

Egoera Mota Mezua Noiz
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Pisu irekiko modelo ostatatu batek zerrendatik kanpoko balio bat jaso du, adibidez xhigh. Ez da ezer kentzen zure saldotik.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … reasoning_effort ez da kate bat.

Autentifikazio-, saldo- eta zerbitzari-erroreak eskaera guztietan bezalakoak dira. Errore‑kudeaketa