Lumaktaw sa nilalaman
Reasoning effort

Reasoning effort

Bago

Ibinabalik ng model na nag-re-reason ang reasoning text nito katabi ng sagot, sa sarili nitong field. Sa mga hosted open-weight model, isang request field ang nagtatakda kung gaano kalalim mag-reason ang model bago sumagot.

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)

Dala ng reply ang reasoning text sa reasoning_content, ang sagot sa content, at ang mga reasoning token sa 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}
  }
}

Aling mga model ang nag-re-reason

Model Nagbabalik ng reasoning text Ina-apply ang effort field
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 Oo —
Bawat hosted open-weight model Oo Oo

Ito ang mga flag na capabilities.reasoning at capabilities.reasoning_effort na iniuulat ng GET /v1/models para sa bawat id. May dalang reasoning text ang reply kapag may nabuo lamang ang model. Mga model at presyo

Pagtatakda ng effort

May sariling baybay ng effort ang bawat endpoint. Lahat ay pumipili ng isa sa parehong apat na antas.

Field Type Default Paglalarawan Ina-apply ng
reasoning_effort string high /v1/chat/completions. Gaano kalalim mag-reason ang model bago sumagot: off, low, medium o high. Mga hosted open-weight model
reasoning object | string /v1/chat/completions. Ang parehong value bilang {"effort": "low"} o bilang payak na string. Kapag parehong field ang ipinadala, ang reasoning_effort ang nasusunod. Mga hosted open-weight model
reasoning.effort string high /v1/responses. Isinusulat bilang object na {"effort": "low"}. Mga hosted open-weight model
thinking object /v1/messages. {"type": "enabled", "budget_tokens": n} o {"type": "disabled"}. Pumipili ang budget ng isa sa mga antas; tingnan ang talahanayan sa ibaba. Mga hosted open-weight model
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
Value Tinatanggap din Epekto
off none, minimal Walang reasoning. Walang dalang reasoning text ang reply.
low Maikling reasoning.
medium default Katamtamang lalim.
high max Ang pinakamalalim na antas. Ito ang antas ng request na walang ipinapadalang value.
  • Binabasa ang mga value nang hindi isinasaalang-alang ang malaki o maliit na titik.
  • Ang value na default ay nangangahulugang medium. Ang pag-alis ng field ay nangangahulugang high.
  • Itinatakda ng mga Shannon model (shannon-*) ang sarili nilang lalim sa bawat request; iniuulat ng GET /v1/models ang reasoning_effort: false para sa kanila.

Ang thinking budget sa /v1/messages

Sa /v1/messages, pinipili ng field na thinking ang antas. Pumipili ang budget_tokens ng isa sa mga antas sa itaas; hindi ito sariling limitasyon ng token. Binabasa ang adaptive na parang enabled.

Ipinapadala mo Antas
{"type": "disabled"} off
{"type": "enabled", "budget_tokens": n} na ang n ay hanggang 2,048 low
n mula 2,049 hanggang 8,192 medium
Mas malaking n, o enabled na walang budget_tokens high
Walang thinking field high

Kung saan dumarating ang reasoning text

Laging hiwalay sa sagot ang reasoning text. May sariling lugar para dito ang bawat format:

Endpoint Hindi naka-stream Naka-stream
/v1/chat/completions choices[0].message.reasoning_content: isang string, o null kapag walang nabuo ang model. Mga chunk na may choices[0].delta.reasoning_content, bago ang mga chunk na may delta.content.
/v1/responses Isang output item na {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} bago ang message item. Walang item kapag walang reasoning. response.output_item.added na may reasoning item, saka mga event na response.reasoning_summary_text.delta at isang response.reasoning_summary_text.done.
/v1/messages Unang content block na {"type": "thinking", "thinking": "…"}, saka ang text block. Walang thinking block kapag walang reasoning. Isang thinking content block: content_block_start, mga content_block_delta event na may thinking_delta, content_block_stop. Sumusunod ang text block.
{
  "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}
  }
}

Kung saan titingin, kada model:

Mga model Kung saan dumarating ang text
Mga hosted open-weight model Sa bawat endpoint, naka-stream man o hindi. Ang request na may effort na off, o may response_format / text.format, ay sinasagot nang walang reasoning text.
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Sa bawat endpoint, naka-stream man o hindi, kailanman may nabuong reasoning text ang model.
shannon-2-lite, shannon-2-pro /v1/chat/completions, hindi naka-stream: sa message.reasoning_content. Naka-stream, sa request na walang tools o response_format: may dalang mga comment line na : thinking ang stream habang nag-re-reason ang model, saka ang mga chunk ng sagot. /v1/messages, naka-stream: isang thinking block bago ang text block.
shannon-1.6-pro, shannon-coder-1 Sa mga naka-stream na reply at sa mga reply sa request na may dalang tools, kailanman may nabuong reasoning text ang model.

Sa /v1/responses, ang reply na hindi naka-stream ay may dalang reasoning item para sa pamilyang Shannon 3 at sa mga hosted open-weight model.

Pagbasa ng stream

Sa isang stream, nauuna ang reasoning text, sa sarili nitong mga delta, at sumusunod ang sagot. I-print o itago nang hiwalay ang dalawa:

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

Ang unang chunk ng hosted open-weight model, reasoning man o sagot, ay may dala ring delta.role: "assistant". Pag‑stream

Mga reasoning token at billing

Sa mga hosted open-weight model, ang mga reasoning token ay output tokens: sinisingil ang mga ito sa output price ng model, at kasama na sila sa output count. Ipinapakita rito ng usage ang bahagi ng reasoning:

Endpoint Field Tala
/v1/chat/completions usage.completion_tokens_details.reasoning_tokens Kasama na sa completion_tokens.
/v1/responses usage.output_tokens_details.reasoning_tokens Kasama na sa output_tokens.
/v1/messages usage.output_tokens Reasoning at sagot na pinagsama. Walang hiwalay na bilang ang format na ito.
  • Sa mga hosted open-weight model, nililimitahan ng max_tokens ang text ng sagot. Hindi binibilang laban dito ang mga reasoning token.
  • Dahil sinisingil bilang output ang reasoning, setting din ng gastos ang antas ng effort: ang off ay hindi gumagawa ng reasoning token.
  • Iniuulat ng mga Shannon model ang prompt_tokens, completion_tokens at total_tokens (input_tokens at output_tokens sa /v1/messages) nang walang bahagi ng reasoning, at naniningil ng isang flat na presyo kada token. Mga model at presyo

Reasoning sa susunod na request

Hindi mo kailangang ipadala pabalik ang reasoning. Ang thinking block o reasoning item sa conversation na ipinapadala mo ay hindi ipinapasa sa model, kaya ang assistant turn ay maaaring bumalik na may kasama nito o wala. Ang thinking block ay may dalawang field na type at thinking; wala itong signature.

Mga error

Status Type Mensahe Kailan
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Nakatanggap ang hosted open-weight model ng value na wala sa listahan, halimbawa xhigh. Walang kinukuha sa iyong balance.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … Hindi string ang reasoning_effort.

Pareho ng sa bawat request ang mga error sa authentication, balance at server. Paghawak ng Error