Ugrás a tartalomra
Reasoning effort

Reasoning effort

Új

A gondolkodó modell a gondolkodási szövegét a válasz mellett, külön mezőben adja vissza. A hosztolt nyílt súlyú modelleknél egyetlen kérésmező állítja be, mennyire mélyen gondolkodik a modell a válasz előtt.

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)

A válasz a gondolkodási szöveget a reasoning_content, a választ a content, a gondolkodási tokeneket pedig a usage mezőben hordozza:

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

Mely modellek gondolkodnak

Modell Gondolkodási szöveget ad vissza Érvényesíti az effort mezőt
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 Igen —
Minden hosztolt nyílt súlyú modell Igen Igen

Ezek a capabilities.reasoning és capabilities.reasoning_effort jelzők, amelyeket a GET /v1/models minden azonosítóhoz jelent. A válasz csak akkor hordoz gondolkodási szöveget, ha a modell hozott létre ilyet. Modellek és árak

Az effort beállítása

Minden végpontnak saját írásmódja van az effortra. Mindegyik ugyanazon négy szint egyikét választja.

Mező Típus Alapérték Leírás Alkalmazza
reasoning_effort string high /v1/chat/completions. Mennyire mélyen gondolkodik a modell a válasz előtt: off, low, medium vagy high. Hosztolt nyílt súlyú modellek
reasoning object | string /v1/chat/completions. Ugyanaz az érték {"effort": "low"} alakban vagy sima stringként. Ha mindkét mezőt elküldöd, a reasoning_effort számít. Hosztolt nyílt súlyú modellek
reasoning.effort string high /v1/responses. A {"effort": "low"} objektumként írva. Hosztolt nyílt súlyú modellek
thinking object /v1/messages. {"type": "enabled", "budget_tokens": n} vagy {"type": "disabled"}. A budget a szintek egyikét választja; lásd lejjebb a táblázatot. Hosztolt nyílt súlyú modellek
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
Érték Szintén elfogadott Hatás
off none, minimal Nincs gondolkodás. A válasz nem hordoz gondolkodási szöveget.
low Rövid gondolkodás.
medium default Közepes mélység.
high max A legmélyebb szint. Ez annak a kérésnek a szintje, amely nem küld értéket.
  • Az értékeket kis- és nagybetűre való tekintet nélkül olvassa.
  • A default érték medium-ot jelent. Ha a mezőt kihagyod, az high.
  • A Shannon modellek (shannon-*) minden kérésnél maguk állítják be a mélységet; a GET /v1/models náluk reasoning_effort: false értéket jelent.

A thinking budget a /v1/messages végponton

A /v1/messages végponton a thinking mező választja ki a szintet. A budget_tokens a fenti szintek egyikét választja; nem önálló tokenkorlát. Az adaptive értéket úgy olvassa, mint az enabled értéket.

Te ezt küldöd Szint
{"type": "disabled"} off
{"type": "enabled", "budget_tokens": n}, ahol az n legfeljebb 2,048 low
Az n 2,049 és 8,192 között medium
Nagyobb n, vagy enabled budget_tokens nélkül high
Nincs thinking mező high

Hol érkezik a gondolkodási szöveg

A gondolkodási szöveg mindig elkülönül a választól. Minden formátumnak saját helye van rá:

Végpont Nem streamelve Streamelve
/v1/chat/completions choices[0].message.reasoning_content: string, vagy null, ha a modell nem hozott létre semmit. A choices[0].delta.reasoning_content mezőt tartalmazó chunkok, a delta.content chunkok előtt.
/v1/responses Egy output elem {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} alakban a message elem előtt. Ha nincs gondolkodás (reasoning), nincs elem. response.output_item.added egy reasoning elemmel, majd response.reasoning_summary_text.delta események és egy response.reasoning_summary_text.done.
/v1/messages Az első tartalmi blokk {"type": "thinking", "thinking": "…"}, utána a text blokk. Ha nincs gondolkodás (reasoning), nincs thinking blokk. Egy thinking tartalmi blokk: content_block_start, thinking_delta értékű content_block_delta események, content_block_stop. A szövegblokk követi.
{
  "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}
  }
}

Hol keresd, modellenként:

Modellek Hol érkezik a szöveg
Hosztolt nyílt súlyú modellek Minden végponton, streamelve vagy anélkül. Az off effortú, vagy response_format / text.format mezőt tartalmazó kérésre gondolkodási szöveg nélkül válaszol.
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Minden végponton, streamelve vagy anélkül, ha a modell gondolkodási szöveget hozott létre.
shannon-2-lite, shannon-2-pro /v1/chat/completions, nem streamelve: a message.reasoning_content mezőben. Streamelve, tools vagy response_format nélküli kérésnél: a stream : thinking megjegyzéssorokat hordoz, amíg a modell gondolkodik, majd a válasz chunkjait. /v1/messages, streamelve: egy thinking blokk a szövegblokk előtt.
shannon-1.6-pro, shannon-coder-1 Streamelt válaszokban és a tools mezőt tartalmazó kérések válaszaiban, ha a modell gondolkodási szöveget hozott létre.

A /v1/responses végponton a nem streamelt válasz a Shannon 3 családnál és a hosztolt nyílt súlyú modelleknél hordozza a reasoning elemet.

Stream olvasása

Streamben a gondolkodási szöveg érkezik először, saját deltákban, utána a válasz. A kettőt külön írasd ki vagy tárold:

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

A hosztolt nyílt súlyú modell első chunkja, akár gondolkodás, akár válasz, a delta.role: "assistant" mezőt is hordozza. Streaming

Gondolkodási tokenek és számlázás

A hosztolt nyílt súlyú modelleknél a gondolkodási tokenek kimeneti tokenek: a modell kimeneti árán számlázódnak, és a kimeneti szám már tartalmazza őket. A usage itt megmutatja a gondolkodási részt:

Végpont Mező Megjegyzés
/v1/chat/completions usage.completion_tokens_details.reasoning_tokens Már benne van a completion_tokens értékben.
/v1/responses usage.output_tokens_details.reasoning_tokens Már benne van az output_tokens értékben.
/v1/messages usage.output_tokens A gondolkodás és a válasz együtt. Ennek a formátumnak nincs külön számlálója.
  • A hosztolt nyílt súlyú modelleknél a max_tokens a válaszszöveget korlátozza. A gondolkodási tokenek nem számítanak bele.
  • Mivel a gondolkodást kimenetként számlázza, az effort szint költségbeállítás is: az off nem hoz létre gondolkodási tokeneket.
  • A Shannon modellek a prompt_tokens, completion_tokens és total_tokens értéket (a /v1/messages végponton input_tokens és output_tokens) gondolkodási rész nélkül jelentik, és tokenenként egy egységes árat számláznak. Modellek és árak

Gondolkodás a következő kérésben

A gondolkodást nem kell visszaküldened. A küldött beszélgetésben szereplő thinking blokkot vagy reasoning elemet nem adja tovább a modellnek, így az assistant forduló vele vagy nélküle is mehet vissza. A thinking blokknak két mezője van, a type és a thinking; nincs signature mezője.

Hibák

Státusz Típus Üzenet Mikor
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Egy hosztolt nyílt súlyú modell a listán kívüli értéket kapott, például xhigh-t. Az egyenlegedből semmi nem vonódik.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … A reasoning_effort nem string.

A hitelesítési, egyenleg- és szerverhibák ugyanazok, mint minden kérésnél. Hibakezelés