Məzmuna keç
Reasoning effort

Reasoning effort

Yeni

Reasoning edən model cavabın yanında öz reasoning mətnini ayrıca sahədə qaytarır. Host edilən açıq çəkili modellərdə bir sorğu sahəsi modelin cavab verməzdən əvvəl nə qədər dərin reasoning etdiyini təyin edir.

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)

Cavab reasoning mətnini reasoning_content-də, cavabı content-də, reasoning tokenlərini isə usage-də daşıyır:

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

Hansı modellər reasoning edir

Model Reasoning mətni qaytarır Effort sahəsini tətbiq edir
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 Bəli —
Hər host edilən açıq çəkili model Bəli Bəli

Bunlar GET /v1/models-in hər id üçün bildirdiyi capabilities.reasoning və capabilities.reasoning_effort bayraqlarıdır. Cavab reasoning mətnini yalnız model yaratdıqda daşıyır. Modellər və qiymətlər

Effort-un təyin edilməsi

Hər endpoint-in effort üçün öz yazılışı var. Hamısı eyni dörd səviyyədən birini seçir.

Sahə Tip Defolt Təsvir Tətbiq edən
reasoning_effort string high /v1/chat/completions. Modelin cavab verməzdən əvvəl nə qədər dərin reasoning etməsi: off, low, medium və ya high. Host edilən açıq çəkili modellər
reasoning object | string /v1/chat/completions. {"effort": "low"} ilə eyni dəyər və ya sadə sətir kimi. Hər iki sahə göndərildikdə reasoning_effort nəzərə alınır. Host edilən açıq çəkili modellər
reasoning.effort string high /v1/responses. {"effort": "low"} obyekti kimi yazılır. Host edilən açıq çəkili modellər
thinking object /v1/messages. {"type": "enabled", "budget_tokens": n} və ya {"type": "disabled"}. Büdcə səviyyələrdən birini seçir; aşağıdakı cədvələ baxın. Host edilən açıq çəkili modellər
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
Dəyər Həmçinin qəbul edilir Təsir
off none, minimal Reasoning yoxdur. Cavab reasoning mətni daşımır.
low Qısa reasoning.
medium default Orta dərinlik.
high max Ən dərin səviyyə. Dəyər göndərməyən sorğunun səviyyəsi budur.
  • Dəyərlər böyük və kiçik hərfə baxılmadan oxunur.
  • default dəyəri medium deməkdir. Sahəni buraxmaq high deməkdir.
  • Shannon modelləri (shannon-*) hər sorğuda dərinliyi özü təyin edir; GET /v1/models onlar üçün reasoning_effort: false bildirir.

/v1/messages-də thinking büdcəsi

/v1/messages-də thinking sahəsi səviyyəni seçir. budget_tokens yuxarıdakı səviyyələrdən birini seçir; o, öz token limiti deyil. adaptive enabled kimi oxunur.

Siz göndərirsiniz Səviyyə
{"type": "disabled"} off
n 2,048-ə qədər olan {"type": "enabled", "budget_tokens": n} low
n 2,049-dan 8,192-yə qədər medium
Daha böyük n və ya budget_tokens-siz enabled high
thinking sahəsi yoxdur high

Reasoning mətni harada gəlir

Reasoning mətni həmişə cavabdan ayrıdır. Hər formatın bunun üçün öz yeri var:

Endpoint Axınsız Axınla
/v1/chat/completions choices[0].message.reasoning_content: sətir, model heç nə yaratmadıqda isə null. choices[0].delta.reasoning_content olan chunk-lar, delta.content olan chunk-lardan əvvəl.
/v1/responses message elementindən əvvəl output elementi {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]}. Reasoning olmadıqda element olmur. reasoning elementi ilə response.output_item.added, sonra response.reasoning_summary_text.delta hadisələri və bir response.reasoning_summary_text.done.
/v1/messages İlk məzmun bloku {"type": "thinking", "thinking": "…"}, sonra text bloku. Reasoning olmadıqda thinking bloku olmur. thinking məzmun bloku: content_block_start, thinking_delta ilə content_block_delta hadisələri, content_block_stop. Mətn bloku ardınca gəlir.
{
  "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}
  }
}

Hara baxmaq, model üzrə:

Modellər Mətn harada gəlir
Host edilən açıq çəkili modellər Hər endpoint-də, axınla və ya axınsız. Effort-u off olan, response_format / text.format daşıyan sorğu reasoning mətni olmadan cavablandırılır.
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Hər endpoint-də, axınla və ya axınsız, model reasoning mətni yaratdıqda.
shannon-2-lite, shannon-2-pro /v1/chat/completions, axınsız: message.reasoning_content-də. Axınla, tools və ya response_format olmayan sorğuda: model reasoning edərkən axın : thinking şərh sətirləri, sonra cavab chunk-ları daşıyır. /v1/messages, axınla: mətn blokundan əvvəl thinking bloku.
shannon-1.6-pro, shannon-coder-1 Axınlı cavablarda və tools daşıyan sorğuların cavablarında, model reasoning mətni yaratdıqda.

/v1/responses-da axınsız cavab Shannon 3 ailəsi və host edilən açıq çəkili modellər üçün reasoning elementini daşıyır.

Axının oxunması

Axında reasoning mətni əvvəl, öz delta-larında gəlir, cavab ardınca. İkisini ayrıca çap edin və ya saxlayın:

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

Host edilən açıq çəkili modelin ilk chunk-ı, reasoning və ya cavab, həmçinin delta.role: "assistant" daşıyır. Axın

Reasoning tokenləri və ödəniş

Host edilən açıq çəkili modellərdə reasoning tokenləri çıxış tokenləridir: onlar modelin çıxış qiyməti ilə hesablanır və çıxış sayı onları artıq daxil edir. usage reasoning payını burada göstərir:

Endpoint Sahə Qeyd
/v1/chat/completions usage.completion_tokens_details.reasoning_tokens Artıq completion_tokens-ə daxildir.
/v1/responses usage.output_tokens_details.reasoning_tokens Artıq output_tokens-ə daxildir.
/v1/messages usage.output_tokens Reasoning və cavab birlikdə. Bu formatda ayrıca say yoxdur.
  • Host edilən açıq çəkili modellərdə max_tokens cavab mətnini məhdudlaşdırır. Reasoning tokenləri ona daxil edilmir.
  • Reasoning çıxış kimi hesablandığı üçün effort səviyyəsi eyni zamanda xərc parametridir: off reasoning tokenləri yaratmır.
  • Shannon modelləri prompt_tokens, completion_tokens və total_tokens-i (/v1/messages-də input_tokens və output_tokens) reasoning payı olmadan bildirir və hər token üçün vahid qiymətlə hesablayır. Modellər və qiymətlər

Növbəti sorğuda reasoning

Reasoning-i geri göndərmək məcburi deyil. Göndərdiyiniz söhbətdəki thinking bloku və ya reasoning elementi modelə ötürülmür, ona görə assistant növbəsi onunla da, onsuz da geri göndərilə bilər. thinking blokunun type və thinking iki sahəsi var; signature-i yoxdur.

Xətalar

Status Tip Mesaj Nə vaxt
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Host edilən açıq çəkili model siyahıdan kənar dəyər aldı, məsələn xhigh. Balansınızdan heç nə çıxılmır.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … reasoning_effort sətir deyil.

Doğrulama, balans və server xətaları hər sorğu üçün olduğu kimidir. Xəta idarəetməsi