Kalo te përmbajtja
Përpjekja e arsyetimit

Përpjekja e arsyetimit

E re

Një model që arsyeton e kthen tekstin e arsyetimit pranë përgjigjes, në një fushë më vete. Te modelet open-weight të hostuara një fushë kërkese cakton sa thellë arsyeton modeli para se të përgjigjet.

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)

Përgjigjja e mban tekstin e arsyetimit te reasoning_content, përgjigjen te content, dhe tokens-at e arsyetimit te 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}
  }
}

Cilët modele arsyetojnë

Modeli Kthen tekst arsyetimi Zbaton fushën e përpjekjes
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 Po —
Çdo model open-weight i hostuar Po Po

Këto janë flag-et capabilities.reasoning dhe capabilities.reasoning_effort që GET /v1/models i raporton për çdo id. Një përgjigje mban tekst arsyetimi vetëm kur modeli ka prodhuar ndonjë. Modelet dhe çmimet

Caktimi i përpjekjes

Çdo endpoint ka shkrimin e vet të përpjekjes. Të gjitha zgjedhin një nga të njëjtat katër nivele.

Fusha Lloji Parazgjedhja Përshkrimi Zbatohet nga
reasoning_effort string high /v1/chat/completions. Sa thellë arsyeton modeli para se të përgjigjet: off, low, medium ose high. Modele open-weight të hostuara
reasoning object | string /v1/chat/completions. E njëjta vlerë si {"effort": "low"} ose si string i zhveshur. Kur dërgohen të dyja fushat, vlen reasoning_effort. Modele open-weight të hostuara
reasoning.effort string high /v1/responses. Shkruhet si objekti {"effort": "low"}. Modele open-weight të hostuara
thinking object /v1/messages. {"type": "enabled", "budget_tokens": n} ose {"type": "disabled"}. Buxheti zgjedh një nga nivelet; shihni tabelën më poshtë. Modele open-weight të hostuara
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
Vlera Pranohet edhe Efekti
off none, minimal Pa arsyetim. Përgjigjja nuk mban tekst arsyetimi.
low Arsyetim i shkurtër.
medium default Thellësi mesatare.
high max Niveli më i thellë. Ky është niveli i një kërkese që nuk dërgon vlerë.
  • Vlerat lexohen pa marrë parasysh shkronjat e mëdha ose të vogla.
  • Vlera default nënkupton medium. Heqja e fushës nënkupton high.
  • Modelet Shannon (shannon-*) e caktojnë vetë thellësinë në çdo kërkesë; GET /v1/models raporton reasoning_effort: false për to.

Buxheti thinking në /v1/messages

Në /v1/messages fusha thinking zgjedh nivelin. budget_tokens zgjedh një nga nivelet më sipër; nuk është kufi tokens-ash më vete. adaptive lexohet si enabled.

Ju dërgoni Niveli
{"type": "disabled"} off
{"type": "enabled", "budget_tokens": n} me n deri në 2,048 low
n nga 2,049 deri 8,192 medium
Një n më i madh, ose enabled pa budget_tokens high
Pa fushë thinking high

Ku arrin teksti i arsyetimit

Teksti i arsyetimit është gjithmonë i ndarë nga përgjigjja. Çdo format ka vendin e vet për të:

Endpoint Pa stream Me stream
/v1/chat/completions choices[0].message.reasoning_content: një string, ose null kur modeli nuk prodhoi asnjë. Pjesë me choices[0].delta.reasoning_content, para pjesëve me delta.content.
/v1/responses Një element output {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]} para elementit message. Pa element kur nuk ka arsyetim. response.output_item.added me një element reasoning, pastaj ngjarje response.reasoning_summary_text.delta dhe një response.reasoning_summary_text.done.
/v1/messages Një bllok i parë përmbajtjeje {"type": "thinking", "thinking": "…"}, pastaj blloku text. Pa bllok thinking kur nuk ka arsyetim. Një bllok përmbajtjeje thinking: content_block_start, ngjarje content_block_delta me thinking_delta, content_block_stop. Blloku i tekstit vijon.
{
  "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}
  }
}

Ku të shikoni, për model:

Modelet Ku arrin teksti
Modele open-weight të hostuara Në çdo endpoint, me stream ose pa. Një kërkesë me përpjekje off, ose me response_format / text.format, merr përgjigje pa tekst arsyetimi.
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Në çdo endpoint, me stream ose pa, sa herë që modeli prodhoi tekst arsyetimi.
shannon-2-lite, shannon-2-pro /v1/chat/completions, pa stream: te message.reasoning_content. Me stream, në një kërkesë pa tools ose response_format: stream-i mban rreshta komenti : thinking ndërsa modeli arsyeton, pastaj pjesët e përgjigjes. /v1/messages, me stream: një bllok thinking para bllokut të tekstit.
shannon-1.6-pro, shannon-coder-1 Në përgjigjet me stream dhe në përgjigjet ndaj kërkesave që mbajnë tools, sa herë që modeli prodhoi tekst arsyetimi.

Në /v1/responses, një përgjigje pa stream e mban elementin reasoning për familjen Shannon 3 dhe modelet open-weight të hostuara.

Leximi i një stream-i

Në një stream teksti i arsyetimit vjen i pari, në delta më vete, dhe përgjigjja vijon. Printojini ose ruajini të dyja veçmas:

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

Pjesa e parë e një modeli open-weight të hostuar, arsyetim ose përgjigje, mban edhe delta.role: "assistant". Transmetim

Tokens-at e arsyetimit dhe faturimi

Te modelet open-weight të hostuara, tokens-at e arsyetimit janë tokens dalje: faturohen me çmimin e daljes së modelit, dhe numri i daljes i përfshin tashmë. usage e tregon këtu pjesën e arsyetimit:

Endpoint Fusha Shënim
/v1/chat/completions usage.completion_tokens_details.reasoning_tokens I përfshirë tashmë te completion_tokens.
/v1/responses usage.output_tokens_details.reasoning_tokens I përfshirë tashmë te output_tokens.
/v1/messages usage.output_tokens Arsyetimi dhe përgjigjja së bashku. Ky format nuk ka numërim të veçantë.
  • Te modelet open-weight të hostuara max_tokens kufizon tekstin e përgjigjes. Tokens-at e arsyetimit nuk numërohen kundër tij.
  • Meqë arsyetimi faturohet si dalje, niveli i përpjekjes është edhe një cilësim kostoje: off nuk prodhon tokens arsyetimi.
  • Modelet Shannon raportojnë prompt_tokens, completion_tokens dhe total_tokens (input_tokens dhe output_tokens në /v1/messages) pa pjesë arsyetimi, dhe faturojnë një çmim fiks për token. Modelet dhe çmimet

Arsyetimi në kërkesën tjetër

Nuk keni nevojë ta dërgoni arsyetimin mbrapsht. Një bllok thinking ose një element reasoning në bisedën që dërgoni nuk i kalohet modelit, kështu që një radhë e assistant mund të kthehet me ose pa të. Një bllok thinking ka dy fushat type dhe thinking; nuk ka signature.

Gabimet

Statusi Lloji Mesazhi Kur
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Një model open-weight i hostuar mori një vlerë jashtë listës, për shembull xhigh. Nga bilanci juaj nuk tërhiqet asgjë.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … reasoning_effort nuk është string.

Gabimet e autentikimit, bilancit dhe serverit janë të njëjta si për çdo kërkesë. Trajtimi i gabimeve