ഉള്ളടക്കത്തിലേക്ക് പോകുക
റീസണിംഗ് എഫർട്ട്

റീസണിംഗ് എഫർട്ട്

പുതിയത്

റീസൺ ചെയ്യുന്ന മോഡൽ ഉത്തരത്തിനൊപ്പം, സ്വന്തം ഫീൽഡിൽ, റീസണിംഗ് ടെക്സ്റ്റ് തിരികെ നൽകുന്നു. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകളിൽ, ഉത്തരം നൽകുന്നതിന് മുമ്പ് മോഡൽ എത്ര ആഴത്തിൽ റീസൺ ചെയ്യണമെന്ന് ഒരു റിക്വസ്റ്റ് ഫീൽഡ് നിശ്ചയിക്കുന്നു.

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_content-ലും ഉത്തരം content-ലും റീസണിംഗ് ടോക്കണുകൾ 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}
  }
}

ഏതൊക്കെ മോഡലുകൾ റീസൺ ചെയ്യുന്നു

മോഡൽ റീസണിംഗ് ടെക്സ്റ്റ് തിരികെ നൽകുന്നു എഫർട്ട് ഫീൽഡ് പ്രയോഗിക്കുന്നു
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 അതെ —
ഹോസ്റ്റ് ചെയ്ത എല്ലാ ഓപ്പൺ-വെയിറ്റ് മോഡലും അതെ അതെ

GET /v1/models ഓരോ ഐഡിക്കും റിപ്പോർട്ട് ചെയ്യുന്ന capabilities.reasoning, capabilities.reasoning_effort ഫ്ലാഗുകളാണ് ഇവ. മോഡൽ റീസണിംഗ് ടെക്സ്റ്റ് ഉണ്ടാക്കിയാൽ മാത്രമേ മറുപടിയിൽ അത് ഉണ്ടാകൂ. മോഡലുകളും വിലയും

എഫർട്ട് സജ്ജമാക്കൽ

ഓരോ എൻഡ്‌പോയിന്റിനും എഫർട്ട് എഴുതാൻ സ്വന്തം രീതിയുണ്ട്. എല്ലാം ഒരേ നാല് നിലകളിൽ ഒന്ന് തിരഞ്ഞെടുക്കുന്നു.

ഫീൽഡ് ടൈപ്പ് ഡിഫോൾട്ട് വിവരണം ബാധകമാക്കുന്നത്
reasoning_effort string high /v1/chat/completions. ഉത്തരം നൽകുന്നതിന് മുമ്പ് മോഡൽ എത്ര ആഴത്തിൽ റീസൺ ചെയ്യുന്നു: off, low, medium അല്ലെങ്കിൽ high. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
reasoning object | string /v1/chat/completions. {"effort": "low"} ആയോ വെറും സ്ട്രിംഗ് ആയോ അതേ മൂല്യം. രണ്ട് ഫീൽഡുകളും അയച്ചാൽ reasoning_effort പരിഗണിക്കും. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
reasoning.effort string high /v1/responses. {"effort": "low"} ഒബ്ജക്റ്റ് ആയി എഴുതുന്നു. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
thinking object /v1/messages. {"type": "enabled", "budget_tokens": n} അല്ലെങ്കിൽ {"type": "disabled"}. ബജറ്റ് നിലകളിൽ ഒന്ന് തിരഞ്ഞെടുക്കുന്നു; താഴെയുള്ള പട്ടിക കാണുക. ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
മൂല്യം ഇവയും സ്വീകരിക്കും ഫലം
off none, minimal റീസണിംഗ് ഇല്ല. മറുപടിയിൽ റീസണിംഗ് ടെക്സ്റ്റ് ഉണ്ടാകില്ല.
low ചുരുങ്ങിയ റീസണിംഗ്.
medium default ഇടത്തരം ആഴം.
high max ഏറ്റവും ആഴമേറിയ നില. മൂല്യം അയയ്ക്കാത്ത റിക്വസ്റ്റിന്റെ നില ഇതാണ്.
  • മൂല്യങ്ങൾ വലിയക്ഷര/ചെറിയക്ഷര വ്യത്യാസം നോക്കാതെ വായിക്കും.
  • default എന്ന മൂല്യം medium എന്നാണ് അർത്ഥമാക്കുന്നത്. ഫീൽഡ് ഒഴിവാക്കിയാൽ high എന്നാണ് അർത്ഥം.
  • Shannon മോഡലുകൾ (shannon-*) ഓരോ റിക്വസ്റ്റിലും സ്വന്തം ആഴം സജ്ജമാക്കുന്നു; GET /v1/models അവയ്ക്ക് reasoning_effort: false റിപ്പോർട്ട് ചെയ്യുന്നു.

/v1/messages-ലെ തിങ്കിംഗ് ബജറ്റ്

/v1/messages-ൽ thinking ഫീൽഡ് നില തിരഞ്ഞെടുക്കുന്നു. budget_tokens മുകളിലെ നിലകളിൽ ഒന്ന് തിരഞ്ഞെടുക്കുന്നു; അത് സ്വന്തമായ ടോക്കൺ പരിധിയല്ല. adaptive എന്നത് enabled പോലെ വായിക്കും.

നിങ്ങൾ അയയ്ക്കുന്നത് നില
{"type": "disabled"} off
n 2,048 വരെയുള്ള {"type": "enabled", "budget_tokens": n} low
n 2,049 മുതൽ 8,192 വരെ medium
വലിയ n, അല്ലെങ്കിൽ budget_tokens ഇല്ലാത്ത enabled high
thinking ഫീൽഡ് ഇല്ല high

റീസണിംഗ് ടെക്സ്റ്റ് എവിടെ എത്തുന്നു

റീസണിംഗ് ടെക്സ്റ്റ് എപ്പോഴും ഉത്തരത്തിൽ നിന്ന് വേറിട്ടതാണ്. ഓരോ ഫോർമാറ്റിനും അതിനായി സ്വന്തം സ്ഥാനമുണ്ട്:

എൻഡ്‌പോയിന്റ് സ്ട്രീം ചെയ്യാത്തത് സ്ട്രീം ചെയ്തത്
/v1/chat/completions choices[0].message.reasoning_content: ഒരു സ്ട്രിംഗ്, മോഡൽ ഒന്നും ഉണ്ടാക്കിയില്ലെങ്കിൽ null. delta.content ഉള്ള ചങ്കുകൾക്ക് മുമ്പ്, choices[0].delta.reasoning_content ഉള്ള ചങ്കുകൾ.
/v1/responses message ഇനത്തിന് മുമ്പ് output ഇനം {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]}. റീസണിംഗ് ഇല്ലെങ്കിൽ ഇനമില്ല. reasoning ഇനത്തോടെ response.output_item.added, തുടർന്ന് response.reasoning_summary_text.delta ഇവന്റുകളും ഒരു response.reasoning_summary_text.done-ഉം.
/v1/messages ആദ്യ കണ്ടന്റ് ബ്ലോക്ക് {"type": "thinking", "thinking": "…"}, തുടർന്ന് text ബ്ലോക്ക്. റീസണിംഗ് ഇല്ലെങ്കിൽ thinking ബ്ലോക്ക് ഇല്ല. ഒരു thinking കണ്ടന്റ് ബ്ലോക്ക്: 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}
  }
}

എവിടെ നോക്കണം, ഓരോ മോഡലിനും:

മോഡലുകൾ ടെക്സ്റ്റ് എവിടെ എത്തുന്നു
ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾ എല്ലാ എൻഡ്‌പോയിന്റിലും, സ്ട്രീം ചെയ്താലും ഇല്ലെങ്കിലും. എഫർട്ട് off ഉള്ളതോ response_format / text.format ഉള്ളതോ ആയ റിക്വസ്റ്റിന് റീസണിംഗ് ടെക്സ്റ്റ് ഇല്ലാതെ ഉത്തരം ലഭിക്കും.
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro എല്ലാ എൻഡ്‌പോയിന്റിലും, സ്ട്രീം ചെയ്താലും ഇല്ലെങ്കിലും, മോഡൽ റീസണിംഗ് ടെക്സ്റ്റ് ഉണ്ടാക്കുമ്പോഴെല്ലാം.
shannon-2-lite, shannon-2-pro /v1/chat/completions, സ്ട്രീം ചെയ്യാത്തത്: message.reasoning_content-ൽ. സ്ട്രീം ചെയ്തത്, tools അല്ലെങ്കിൽ response_format ഇല്ലാത്ത റിക്വസ്റ്റിൽ: മോഡൽ റീസൺ ചെയ്യുമ്പോൾ സ്ട്രീം : thinking എന്ന കമന്റ് വരികൾ വഹിക്കുന്നു, പിന്നെ ഉത്തര ചങ്കുകൾ. /v1/messages, സ്ട്രീം ചെയ്തത്: ടെക്സ്റ്റ് ബ്ലോക്കിന് മുമ്പ് ഒരു thinking ബ്ലോക്ക്.
shannon-1.6-pro, shannon-coder-1 സ്ട്രീം ചെയ്ത മറുപടികളിലും tools ഉള്ള റിക്വസ്റ്റുകളുടെ മറുപടികളിലും, മോഡൽ റീസണിംഗ് ടെക്സ്റ്റ് ഉണ്ടാക്കുമ്പോഴെല്ലാം.

/v1/responses-ൽ സ്ട്രീം ചെയ്യാത്ത മറുപടി Shannon 3 കുടുംബത്തിനും ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകൾക്കും reasoning ഇനം വഹിക്കുന്നു.

സ്ട്രീം വായിക്കൽ

സ്ട്രീമിൽ റീസണിംഗ് ടെക്സ്റ്റ് ആദ്യം, സ്വന്തം ഡെൽറ്റകളിൽ, വരുന്നു, ഉത്തരം പിന്നാലെ. ഇവ രണ്ടും പ്രത്യേകം പ്രിന്റ് ചെയ്യുകയോ സൂക്ഷിക്കുകയോ ചെയ്യുക:

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

ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലിന്റെ ആദ്യ ചങ്കിൽ, റീസണിംഗ് ആയാലും ഉത്തരം ആയാലും, delta.role: "assistant"-ഉം ഉണ്ടാകും. സ്റ്റ്രീമിംഗ്

റീസണിംഗ് ടോക്കണുകളും ബില്ലിംഗും

ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകളിൽ റീസണിംഗ് ടോക്കണുകൾ ഔട്ട്പുട്ട് ടോക്കണുകളാണ്: അവ മോഡലിന്റെ ഔട്ട്പുട്ട് വിലയിൽ ബിൽ ചെയ്യുന്നു, ഔട്ട്പുട്ട് എണ്ണത്തിൽ അവ ഇതിനകം ഉൾപ്പെടുന്നു. usage ഇവിടെ റീസണിംഗ് വിഹിതം കാണിക്കുന്നു:

എൻഡ്‌പോയിന്റ് ഫീൽഡ് കുറിപ്പ്
/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 റീസണിംഗും ഉത്തരവും ചേർന്നത്. ഈ ഫോർമാറ്റിൽ പ്രത്യേക എണ്ണം ഇല്ല.
  • ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലുകളിൽ max_tokens ഉത്തര ടെക്സ്റ്റിനെ പരിമിതപ്പെടുത്തുന്നു. റീസണിംഗ് ടോക്കണുകൾ ഇതിൽ കണക്കാക്കില്ല.
  • റീസണിംഗ് ഔട്ട്പുട്ടായി ബിൽ ചെയ്യപ്പെടുന്നതിനാൽ, എഫർട്ട് നില ഒരു ചെലവ് സെറ്റിംഗ് കൂടിയാണ്: off റീസണിംഗ് ടോക്കണുകൾ ഉണ്ടാക്കുന്നില്ല.
  • Shannon മോഡലുകൾ റീസണിംഗ് വിഹിതമില്ലാതെ prompt_tokens, completion_tokens, total_tokens (/v1/messages-ൽ input_tokens, output_tokens) റിപ്പോർട്ട് ചെയ്യുകയും ഓരോ ടോക്കണിനും ഒരു സ്ഥിര വില ബിൽ ചെയ്യുകയും ചെയ്യുന്നു. മോഡലുകളും വിലയും

അടുത്ത റിക്വസ്റ്റിലെ റീസണിംഗ്

റീസണിംഗ് തിരികെ അയയ്ക്കേണ്ടതില്ല. നിങ്ങൾ അയയ്ക്കുന്ന സംഭാഷണത്തിലെ thinking ബ്ലോക്കോ reasoning ഇനമോ മോഡലിലേക്ക് കൈമാറില്ല, അതിനാൽ അസിസ്റ്റന്റ് ടേൺ അതോടെയോ അതില്ലാതെയോ തിരികെ അയയ്ക്കാം. thinking ബ്ലോക്കിന് type, thinking എന്നീ രണ്ട് ഫീൽഡുകളുണ്ട്; അതിന് signature ഇല്ല.

പിശകുകൾ

സ്റ്റാറ്റസ് ടൈപ്പ് സന്ദേശം എപ്പോൾ
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high ഹോസ്റ്റ് ചെയ്ത ഓപ്പൺ-വെയിറ്റ് മോഡലിന് ലിസ്റ്റിന് പുറത്തുള്ള മൂല്യം ലഭിച്ചു, ഉദാഹരണത്തിന് xhigh. നിങ്ങളുടെ ബാലൻസിൽ നിന്ന് ഒന്നും എടുക്കില്ല.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … reasoning_effort ഒരു സ്ട്രിംഗ് അല്ല.

ഓതന്റിക്കേഷൻ, ബാലൻസ്, സെർവർ പിശകുകൾ എല്ലാ റിക്വസ്റ്റുകൾക്കും ഉള്ളതുപോലെ തന്നെയാണ്. എറർ ഹാൻഡ്ലിംഗ്