İçeriğe geç
Akıl yürütme çabası

Akıl yürütme çabası

Yeni

Akıl yürüten bir model, akıl yürütme metnini yanıtın yanında kendi alanında döndürür. Host edilen açık ağırlıklı modellerde bir istek alanı, modelin yanıt vermeden önce ne kadar derin akıl yürüteceğini belirler.

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)

Yanıt, akıl yürütme metnini reasoning_content içinde, yanıtı content içinde ve akıl yürütme token'larını usage içinde taşı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}
  }
}

Hangi modeller akıl yürütür

Model Akıl yürütme metni döndürür Effort alanını uygular
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 Evet —
Host edilen her açık ağırlıklı model Evet Evet

Bunlar GET /v1/models yanıtının her kimlik için bildirdiği capabilities.reasoning ve capabilities.reasoning_effort bayraklarıdır. Bir yanıt, akıl yürütme metnini yalnızca model ürettiyse taşır. Modeller ve fiyatlandırma

Effort'u ayarlama

Her uç noktanın effort için kendi yazımı vardır. Hepsi aynı dört düzeyden birini seçer.

Alan Tür Varsayılan Açıklama Uygulayan
reasoning_effort string high /v1/chat/completions. Modelin yanıt vermeden önce ne kadar derin akıl yürüttüğü: off, low, medium veya high. Host edilen açık ağırlıklı modeller
reasoning object | string /v1/chat/completions. {"effort": "low"} ya da çıplak bir dize olarak aynı değer. İki alan da gönderilirse reasoning_effort geçerlidir. Host edilen açık ağırlıklı modeller
reasoning.effort string high /v1/responses. {"effort": "low"} nesnesi olarak yazılır. Host edilen açık ağırlıklı modeller
thinking object /v1/messages. {"type": "enabled", "budget_tokens": n} veya {"type": "disabled"}. Bütçe düzeylerden birini seçer; aşağıdaki tabloya bakın. Host edilen açık ağırlıklı modeller
{
  "model": "Kimi-K3-3BIT-REAP",
  "reasoning_effort": "low",
  "messages": [{"role": "user", "content": "Is 221 a prime number?"}]
}
Değer Ayrıca kabul edilen Etki
off none, minimal Akıl yürütme yok. Yanıt akıl yürütme metni taşımaz.
low Kısa akıl yürütme.
medium default Orta derinlik.
high max En derin düzey. Hiçbir değer göndermeyen bir isteğin düzeyi budur.
  • Değerler büyük ve küçük harf ayrımı yapılmadan okunur.
  • default değeri medium anlamına gelir. Alanı hiç göndermemek high anlamına gelir.
  • Shannon modelleri (shannon-*) derinliklerini her istekte kendileri belirler; GET /v1/models bunlar için reasoning_effort: false bildirir.

/v1/messages üzerinde thinking bütçesi

/v1/messages üzerinde düzeyi thinking alanı seçer. budget_tokens yukarıdaki düzeylerden birini seçer; kendi başına bir token sınırı değildir. adaptive, enabled gibi okunur.

Gönderdiğiniz Düzey
{"type": "disabled"} off
n en fazla 2,048 olan {"type": "enabled", "budget_tokens": n} low
n 2,049 ile 8,192 arası medium
Daha büyük bir n ya da budget_tokens olmadan enabled high
thinking alanı yok high

Akıl yürütme metninin geldiği yer

Akıl yürütme metni her zaman yanıttan ayrıdır. Her biçimin onun için kendi yeri vardır:

Uç nokta Stream edilmeyen Stream edilen
/v1/chat/completions choices[0].message.reasoning_content: bir dize ya da model hiç üretmediyse null. delta.content içeren chunk'lardan önce gelen, choices[0].delta.reasoning_content içeren chunk'lar.
/v1/responses message öğesinden önce bir output öğesi {"type": "reasoning", "summary": [{"type": "summary_text", "text": "…"}]}. Akıl yürütme yoksa öğe olmaz. Bir reasoning öğesiyle response.output_item.added, ardından response.reasoning_summary_text.delta olayları ve bir response.reasoning_summary_text.done.
/v1/messages İlk içerik bloğu {"type": "thinking", "thinking": "…"}, ardından text bloğu. Akıl yürütme yoksa thinking bloğu olmaz. Bir thinking içerik bloğu: content_block_start, thinking_delta içeren content_block_delta olayları, content_block_stop. Metin bloğu onu izler.
{
  "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}
  }
}

Model başına nereye bakılacağı:

Modeller Metnin geldiği yer
Host edilen açık ağırlıklı modeller Her uç noktada, stream edilsin ya da edilmesin. Effort değeri off olan ya da response_format / text.format içeren bir istek akıl yürütme metni olmadan yanıtlanır.
shannon-3, shannon-3-pro, shannon-3.1, shannon-3.1-pro Model akıl yürütme metni ürettiğinde, her uç noktada, stream edilsin ya da edilmesin.
shannon-2-lite, shannon-2-pro /v1/chat/completions, stream edilmeyen: message.reasoning_content içinde. tools veya response_format içermeyen bir istekte stream edilen: model akıl yürütürken stream : thinking yorum satırlarını, sonra yanıt chunk'larını taşır. /v1/messages, stream edilen: metin bloğundan önce bir thinking bloğu.
shannon-1.6-pro, shannon-coder-1 Model akıl yürütme metni ürettiğinde, stream edilen yanıtlarda ve tools taşıyan isteklerin yanıtlarında.

/v1/responses üzerinde, stream edilmeyen bir yanıt Shannon 3 ailesi ve host edilen açık ağırlıklı modeller için reasoning öğesini taşır.

Bir stream'i okuma

Bir stream'de akıl yürütme metni önce, kendi delta'larında gelir ve yanıt onu izler. İkisini ayrı ayrı yazdırın ya da saklayı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 edilen açık ağırlıklı bir modelin ilk chunk'ı, akıl yürütme ya da yanıt olsun, ayrıca delta.role: "assistant" taşır. Akış

Akıl yürütme token'ları ve faturalandırma

Host edilen açık ağırlıklı modellerde akıl yürütme token'ları çıktı token'ıdır: modelin çıktı fiyatından faturalandırılırlar ve çıktı sayısı onları zaten içerir. usage burada akıl yürütme payını gösterir:

Uç nokta Alan Not
/v1/chat/completions usage.completion_tokens_details.reasoning_tokens completion_tokens içinde zaten dahildir.
/v1/responses usage.output_tokens_details.reasoning_tokens output_tokens içinde zaten dahildir.
/v1/messages usage.output_tokens Akıl yürütme ve yanıt birlikte. Bu biçimde ayrı bir sayı yoktur.
  • Host edilen açık ağırlıklı modellerde max_tokens yanıt metnini sınırlar. Akıl yürütme token'ları buna sayılmaz.
  • Akıl yürütme çıktı olarak faturalandırıldığı için effort düzeyi aynı zamanda bir maliyet ayarıdır: off hiç akıl yürütme token'ı üretmez.
  • Shannon modelleri prompt_tokens, completion_tokens ve total_tokens değerlerini (/v1/messages üzerinde input_tokens ve output_tokens) akıl yürütme payı olmadan bildirir ve token başına tek bir sabit fiyat uygular. Modeller ve fiyatlandırma

Sonraki istekte akıl yürütme

Akıl yürütmeyi geri göndermeniz gerekmez. Gönderdiğiniz konuşmadaki bir thinking bloğu veya reasoning öğesi modele iletilmez; bu yüzden bir asistan turu onunla ya da onsuz geri gönderilebilir. Bir thinking bloğunun type ve thinking olmak üzere iki alanı vardır; signature alanı yoktur.

Hatalar

Durum Tür Mesaj Ne zaman
400 invalid_request_error unknown reasoning effort '<value>'; expected off, low, medium or high Host edilen açık ağırlıklı bir model, listenin dışında bir değer aldı, örneğin xhigh. Bakiyenizden hiçbir şey düşülmez.
422 invalid_request_error Failed to deserialize the JSON body into the target type: … reasoning_effort bir dize değil.

Kimlik doğrulama, bakiye ve sunucu hataları her istekteki gibidir. Hata yönetimi