Անցնել բովանդակությանը
Reasoning effort

Reasoning effort

ՆՈՐ

Տրամաբանող մոդելը վերադարձնում է իր reasoning տեքստը պատասխանի կողքին՝ առանձին դաշտում։ Hosted open-weight մոդելների վրա հարցման մեկ դաշտը սահմանում է, թե որքան խորը է մոդելը տրամաբանում պատասխանելուց առաջ։

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)

Պատասխանը reasoning տեքստը կրում է reasoning_content-ում, պատասխանը՝ content-ում, իսկ reasoning թոքենները՝ 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}
  }
}

Որ մոդելներն են տրամաբանում

Մոդել Վերադարձնում է reasoning տեքստ Կիրառում է 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 Այո —
Յուրաքանչյուր hosted open-weight մոդել Այո Այո

Սրանք capabilities.reasoning և capabilities.reasoning_effort դրոշներն են, որոնք GET /v1/models-ը վերադարձնում է յուրաքանչյուր id-ի համար։ Պատասխանը reasoning տեքստ կրում է միայն այն դեպքում, երբ մոդելը ստեղծել է այն։ Մոդելներ և գներ

Effort-ի սահմանում

Յուրաքանչյուր endpoint-ն ունի effort-ի իր գրելաձևը։ Դրանք բոլորն ընտրում են նույն չորս մակարդակներից մեկը։

Դաշտ Տեսակ Լռելյայն Նկարագրություն Կիրառվում է
reasoning_effort string high /v1/chat/completions։ Որքան խորը է մոդելը տրամաբանում պատասխանելուց առաջ՝ off, low, medium կամ high։ Hosted open-weight մոդելներ
reasoning object | string /v1/chat/completions։ Նույն արժեքը՝ որպես {"effort": "low"} կամ որպես պարզ տող։ Երբ ուղարկված են երկու դաշտերը, հաշվի է առնվում reasoning_effort-ը։ Hosted open-weight մոդելներ
reasoning.effort string high /v1/responses։ Գրվում է որպես {"effort": "low"} օբյեկտ։ Hosted open-weight մոդելներ
thinking object /v1/messages։ {"type": "enabled", "budget_tokens": n} կամ {"type": "disabled"}։ Բյուջեն ընտրում է մակարդակներից մեկը. տե՛ս ստորև բերված աղյուսակը։ Hosted open-weight մոդելներ
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
Արժեք Նաև ընդունվում է Ազդեցություն
off none, minimal Առանց reasoning-ի։ Պատասխանը reasoning տեքստ չի կրում։
low Կարճ reasoning։
medium default Միջին խորություն։
high max Ամենախորը մակարդակը։ Սա այն հարցման մակարդակն է, որը արժեք չի ուղարկում։
  • Արժեքները կարդացվում են առանց մեծատառ-փոքրատառ տարբերության։
  • default արժեքը նշանակում է medium։ Դաշտը բաց թողնելը նշանակում է high։
  • Shannon մոդելները (shannon-*) խորությունը սահմանում են ինքնուրույն՝ յուրաքանչյուր հարցման մեջ. GET /v1/models-ը նրանց համար վերադարձնում է reasoning_effort: false։

Thinking բյուջեն /v1/messages-ում

/v1/messages-ում մակարդակն ընտրում է thinking դաշտը։ budget_tokens-ը ընտրում է վերևի մակարդակներից մեկը. այն թոքենների առանձին սահման չէ։ adaptive-ը կարդացվում է ինչպես enabled։

Դուք ուղարկում եք Մակարդակ
{"type": "disabled"} off
{"type": "enabled", "budget_tokens": n}, որտեղ n-ը մինչև 2,048 է low
n՝ 2,049-ից 8,192 medium
Ավելի մեծ n, կամ enabled առանց budget_tokens-ի high
Առանց thinking դաշտի high

Որտեղ է գալիս reasoning տեքստը

Reasoning տեքստը միշտ առանձին է պատասխանից։ Յուրաքանչյուր ձևաչափ ունի դրա համար իր տեղը.

Endpoint Առանց streaming-ի Streaming-ով
/v1/chat/completions choices[0].message.reasoning_content. տող, կամ null, եթե մոդելը ոչինչ չի ստեղծել։ choices[0].delta.reasoning_content ունեցող chunk-եր՝ delta.content ունեցող chunk-երից առաջ։
/v1/responses output տարր՝ {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]}, message տարրից առաջ։ Եթե reasoning չկա, տարր չկա։ response.output_item.added reasoning տարրով, ապա response.reasoning_summary_text.delta իրադարձություններ և մեկ response.reasoning_summary_text.done։
/v1/messages Առաջին content բլոկը՝ {"type": "thinking", "thinking": "…"}, ապա text բլոկը։ Եթե reasoning չկա, thinking բլոկ չկա։ thinking content բլոկ՝ content_block_start, thinking_delta ունեցող content_block_delta իրադարձություններ, content_block_stop։ Հետո գալիս է տեքստի բլոկը։
{
  "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}
  }
}

Որտեղ նայել՝ ըստ մոդելի.

Մոդելներ Որտեղ է գալիս տեքստը
Hosted open-weight մոդելներ Բոլոր endpoint-ների վրա՝ streaming-ով կամ առանց։ off effort-ով կամ response_format / text.format-ով հարցումը պատասխանվում է առանց reasoning տեքստի։
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Բոլոր endpoint-ների վրա՝ streaming-ով կամ առանց, երբ մոդելը reasoning տեքստ է ստեղծել։
shannon-2-lite, shannon-2-pro /v1/chat/completions, առանց streaming-ի. message.reasoning_content-ում։ Streaming-ով, tools կամ response_format չունեցող հարցման դեպքում. մինչ մոդելը տրամաբանում է, հոսքը կրում է : thinking մեկնաբանության տողեր, ապա՝ պատասխանի chunk-երը։ /v1/messages, streaming-ով. thinking բլոկ՝ տեքստի բլոկից առաջ։
shannon-1.6-pro, shannon-coder-1 Streaming պատասխաններում և tools պարունակող հարցումների պատասխաններում, երբ մոդելը reasoning տեքստ է ստեղծել։

/v1/responses-ում streaming չունեցող պատասխանը Shannon 3 ընտանիքի և hosted open-weight մոդելների համար կրում է reasoning տարրը։

Հոսքի ընթերցում

Հոսքում reasoning տեքստը գալիս է առաջինը՝ իր delta-ներով, իսկ պատասխանը հետևում է նրան։ Երկուսը տպեք կամ պահեք առանձին.

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

Hosted open-weight մոդելի առաջին chunk-ը, լինի reasoning թե պատասխան, կրում է նաև delta.role: "assistant"։ Ստրիմինգ

Reasoning թոքեններ և վճարում

Hosted open-weight մոդելների վրա reasoning թոքենները ելքի թոքեններ են. դրանք գանձվում են մոդելի ելքի գնով, և ելքի հաշվարկն արդեն ներառում է դրանք։ usage-ը այստեղ ցույց է տալիս reasoning-ի բաժինը.

Endpoint Դաշտ Նշում
/v1/chat/completions usage.completion_tokens_details.reasoning_tokens Արդեն ներառված է completion_tokens-ում։
/v1/responses usage.output_tokens_details.reasoning_tokens Արդեն ներառված է output_tokens-ում։
/v1/messages usage.output_tokens Reasoning-ը և պատասխանը միասին։ Այս ձևաչափը առանձին հաշվարկ չունի։
  • Hosted open-weight մոդելների վրա max_tokens-ը սահմանափակում է պատասխանի տեքստը։ Reasoning թոքենները դրա մեջ չեն հաշվվում։
  • Քանի որ reasoning-ը գանձվում է որպես ելք, effort մակարդակը նաև ծախսի կարգավորում է. off-ը reasoning թոքեններ չի ստեղծում։
  • Shannon մոդելները հայտնում են prompt_tokens, completion_tokens և total_tokens (/v1/messages-ում՝ input_tokens և output_tokens) առանց reasoning բաժնի և գանձում են մեկ ֆիքսված գին մեկ թոքենի համար։ Մոդելներ և գներ

Reasoning-ը հաջորդ հարցման մեջ

Reasoning-ը հետ ուղարկել պետք չէ։ Ձեր ուղարկած զրույցի thinking բլոկը կամ reasoning տարրը մոդելին չի փոխանցվում, ուստի assistant-ի փուլը կարելի է հետ ուղարկել դրանցով կամ առանց դրանց։ thinking բլոկն ունի երկու դաշտ՝ type և thinking. signature չունի։

Սխալներ

Կարգավիճակ Տեսակ Հաղորդագրություն Երբ
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Hosted open-weight մոդելը ստացել է ցանկից դուրս արժեք, օրինակ՝ xhigh։ Ձեր մնացորդից ոչինչ չի գանձվում։
422 invalid_request_error Failed to deserialize the JSON body into the target type: … reasoning_effort-ը տող չէ։

Վավերացման, մնացորդի և սերվերի սխալները նույնն են, ինչ ցանկացած հարցման դեպքում։ Սխալների մշակում