Kimi K3 Uygulama Kılavuzu: Yeni Parametreler ve API Destek Matrisi

AIHubMix8 dk okuma
Kimi K3 Uygulama Kılavuzu: Yeni Parametreler ve API Destek Matrisi

Bu makale, Kimi K3 için yeni parametreleri ve kullanım notlarını kapsamaktadır. AIHubMix'te, K3, Sohbet Tamamlamaları, Yanıtlar ve Claude uyumlu Mesajlar API'leri aracılığıyla mevcuttur. Ayrıca bakınız: Moonshot resmi platform belgeleri.

Her bölümdeki "Doğrulanmış" sonuçlar ve örnek yanıtlar, 2026-07-17 tarihinde AIHubMix API'leri (Sohbet Tamamlamaları / Yanıtlar / Mesajlar) üzerinden yapılan gerçek çağrılardan gelmektedir.

1. Model Özellikleri Kısaca

Öğe Değer
Bağlam penceresi 1M token
Maksimum çıktı max_completion_tokens varsayılan olarak 131,072, maksimum 1,048,576
Girdi modları Metin, görseller (video girişi için Moonshot resmi belgelerine bakın)
Düşünme modu Varsayılan olarak açık; reasoning_effort yalnızca "max" desteği sunar
Durdurma dizileri stop en fazla 5 girişe izin verir, her biri 32 bayttan uzun olmamalıdır
Doğrulanmış: her iki stop sınırı doğrulanmıştır ve herhangi birini aşmak 400 döner; Mesajlar API'si stop_sequences için aynı doğrulamayı uygular.

Bir durdurma dizisi tetiklendiğinde, Mesajlar API'si Anthropic anlamlarını takip etmez: testlerde, stop_reason "end_turn" (yerine "stop_sequence" değil), stop_sequence null ve durdurma kelimesinden önceki görünür metin boş olabilir. Kısmi kesme tespiti için bu iki alana güvenen istemcilerin dikkatli olması gerekir.
# 6 girişle durdurma / 33 baytlık bir giriş -> HTTP 400
"Geçersiz istek: durdurma dizisi çok uzun. Maksimum uzunlukta 5 olan bir dizi bekleniyordu, ancak bunun yerine 6 uzunluğunda bir dizi alındı"
"Geçersiz istek: durdurma dizisi 32 bayttan uzun olmamalıdır, ancak bunun yerine 33 alındı"

2. Düşünme Modu: reasoning_effort Yalnızca max Desteği Sunar

K3'ün düşünmesi varsayılan olarak açıktır ve reasoning_effort yalnızca tek bir seviyeyi destekler: "max".

Çok aşamalı konuşmalar, düşünme geçmişini tam olarak geri iletmelidir: Moonshot'un resmi belgelerine göre, K3, korunmuş düşünme ile eğitilmiştir, bu nedenle çok aşamalı konuşmalarda önceki asistan mesajı tam ve değiştirilmemiş olarak iletilmelidir (düşünme içeriği dahil). Eksik düşünme geçmişi, kararsız çıktı kalitesine yol açar. Bir oturum yönetim çerçevesi veya bir proxy katmanı kullanıyorsanız, düşünme içeriğinin kesilmeden geri iletildiğinden emin olun.
Sohbet Tamamlamaları

Düşünme içeriği, yanıtın reasoning_content alanında döner; çok aşamalı konuşmalarda, önceki asistan mesajını (düşünme içeriği dahil) tam olarak geri iletin.

from openai import OpenAI

client = OpenAI(
    base_url="https://aihubmix.com/v1",
    api_key="<AIHUBMIX_API_KEY>",
)

completion = client.chat.completions.create(
    model="kimi-k3",
    reasoning_effort="max",
    messages=[
        {"role": "user", "content": "Bir salyangoz 10 metrelik bir kuyunun dibinde. Her gün 3 metre tırmanıyor, ama her gece 2 metre kayıyor. Üstüne ulaşması ne kadar sürer?"}
    ],
)

print(completion.choices[0].message.reasoning_content)
print(completion.choices[0].message.content)
# Çok aşamalı: önceki asistan mesajını tam olarak geri iletin
messages = [
    {"role": "user", "content": "Fransa'nın başkenti nedir?"},
    {"role": "assistant", "content": "Paris.", "reasoning_content": "<önceki yanıttan reasoning_content>"},
    {"role": "user", "content": "Ve nüfusu?"},
]
Doğrulanmış: yanıt reasoning_content döner; önceki asistan mesajını (düşünme içeriği dahil) tam olarak geri ilettikten sonra, sonraki aşamalar normal şekilde yanıtlanır.
Yanıtlar

Düşünme içeriği, bir reasoning çıktı öğesi olarak döner; çok aşamalı konuşmalarda, önceki aşamanın çıktı öğelerini (reasoning + message) input içine tam olarak ekleyin.

from openai import OpenAI

client = OpenAI(
    base_url="https://aihubmix.com/v1",
    api_key="<AIHUBMIX_API_KEY>",
)

response = client.responses.create(
    model="kimi-k3",
    input="Bir kelimeyle yanıtlayın: Fransa'nın başkenti",
)

# Gözlemlenen response.output öğe türleri: ["reasoning", "message"]; metin: "Paris"
# Çok aşamalı: input = [ilk kullanıcı mesajı] + response.output + [sonraki kullanıcı mesajı]
# Gözlemlenen ikinci aşama yanıtı ile geri iletilen çıktı öğeleri: "Berlin"

Mesajlar

Düşünme içeriği, yerel thinking içerik blokları olarak döner; çok aşamalı konuşmalarda, önceki asistan içerik bloklarını (düşünme blokları dahil) tam olarak geri iletin.

from anthropic import Anthropic

client = Anthropic(
    api_key="<AIHUBMIX_API_KEY>",
    base_url="https://aihubmix.com"
)

response = client.messages.create(
    model="kimi-k3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Bir kelimeyle yanıtlayın: Fransa'nın başkenti"}
    ],
)

# Gözlemlenen response.content blok türleri: ["thinking", "text"]; metin: "Paris"
# Çok aşamalı: yanıtı asistan mesajı olarak tam olarak geri iletin

3. Örnekleme Parametreleri Sabittir

K3'ün örnekleme parametreleri model sağlayıcısı tarafından sabitlenmiştir: temperature 1.0, top_p 0.95, n 1 ve presence_penalty / frequency_penalty 0. Resmi öneri, bu parametrelerin isteklerden çıkarılmasıdır.

Not: sabit örnekleme değerleri resmi spesifikasyonun bir parçasıdır ve yanıt sinyallerinden doğrulanamaz; resmi öneriyi takip edin ve bu parametreleri çıkarın.

4. Araç Çağırma ve Dinamik Araç Yükleme

tools en fazla 128 aracı destekler; tool_choice araç çağrılarını zorlamak ve devre dışı bırakmak için destek sunar. K3 ayrıca dinamik araç yüklemeyi de destekler: bir sistem mesajının tools alanı aracılığıyla konuşma sırasında yeni araçlar enjekte edilebilir (Sohbet API'sine özgü bir mesaj şekli).
Sohbet Tamamlamaları

tool_choice auto / none / required destekler; required modelin bir aracı çağırmasını zorlar. Dinamik araç yükleme: araç enjekte eden sistem mesajı content taşımaz, enjekte edilen araçlar sonraki aşamalar için geçerli olur ve mesaj her istekte tekrar dahil edilmelidir.

messages = [
    {"role": "system", "content": "Sen yardımcı bir asistansın."},
    {"role": "user", "content": "Merhaba."},
    {"role": "assistant", "content": "Merhaba, sana nasıl yardımcı olabilirim?"},
    # Konuşma sırasında yeni bir aracı enjekte et: yalnızca tools alanı, içerik yok
    {
        "role": "system",
        "tools": [
            {
                "type": "function",
                "function": {
                    "name": "get_time",
                    "description": "Geçerli zamanı al",
                    "parameters": {"type": "object", "properties": {}},
                },
            }
        ],
    },
    {"role": "user", "content": "Şu an saat kaç?"},
]
# tool_choice="required" ile "Merhaba" istemi -> model aracı çağırmaya zorlanır
"finish_reason": "tool_calls",
"tool_calls": [{"function": {"name": "get_weather", "arguments": "{\"city\":\"New York\"}"}}]
Doğrulanmış: tool_choice: "required" bir araç çağrısını zorlar, hatta alakasız istemler için bile; "none" araç çağrılarını bastırır; içerik olmadan bir sistem mesajı aracılığıyla konuşma sırasında enjekte edilen araçlar normal şekilde çağrılabilir.
Yanıtlar

Araç tanımları düz bir yapı kullanır (name en üst düzeyde); bir çağrıyı zorlamak için de tool_choice: "required" kullanılır ve çağrılar function_call çıktı öğeleri olarak döner. Dinamik araç yükleme desteği devam etmektedir; şu anda, tüm araçları en üst düzey tools parametresinde tanımlayın.

response = client.responses.create(
    model="kimi-k3",
    input="Merhaba",
    tools=[{
        "type": "function",
        "name": "get_weather",
        "description": "Bir şehir için hava durumunu al",
        "parameters": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
    tool_choice="required",
)

# Gözlemlenen çıktı: {"type": "function_call", "name": "get_weather", "arguments": "{\"city\":\"London\"}"}

Mesajlar

Araçlar, Anthropic formatını kullanır (input_schema); bir çağrıyı tool_choice: {"type": "any"} ile zorlayın ve çağrıları {"type": "none"} ile devre dışı bırakın. ❗ Kimi K3'ün resmi Mesajlar (Anthropic uyumlu) uç noktası dinamik araç yüklemeyi desteklemez: testlerde, enjekte eden mesaj 200 döner, ancak enjekte edilen aracın hiçbir etkisi yoktur (model onu çağıramaz). Tüm araçları en üst düzey tools parametresinde tanımlayın.

response = client.messages.create(
    model="kimi-k3",
    max_tokens=4096,
    tools=[{
        "name": "get_weather",
        "description": "Bir şehir için hava durumunu al",
        "input_schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
    }],
    tool_choice={"type": "any"},
    messages=[{"role": "user", "content": "Merhaba"}],
)

# Gözlemlenen: stop_reason "tool_use"; içerik, get_weather çağıran bir tool_use bloğu içerir

5. Yapılandırılmış Çıktı

Yapılandırılmış çıktı, modelin belirli bir JSON Şemasına kesin olarak uyan içerik döndürmesini sağlar.
Sohbet Tamamlamaları

response_format json_schema ile strict modunu destekler.

completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "user", "content": "Paris Fransa'nın başkentidir. Şehir adını çıkar."}
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "extract",
            "strict": True,
            "schema": {
                "type": "object",
                "properties": {"city": {"type": "string"}},
                "required": ["city"],
            },
        },
    },
)

# Gözlemlenen yanıt içeriği: {"city":"Paris"}
Doğrulanmış: çıktı, şemaya uygun geçerli bir JSON'dur.
Yanıtlar

Yapılandırılmış çıktı, text.format aracılığıyla bildirilir.

response = client.responses.create(
    model="kimi-k3",
    input="Paris Fransa'nın başkentidir. Şehir adını çıkar.",
    text={
        "format": {
            "type": "json_schema",
            "name": "extract",
            "strict": True,
            "schema": {"type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"]},
        }
    },
)

# Gözlemlenen çıktı metni: {"city":"Paris"}

Mesajlar

Kimi K3'ün resmi Mesajlar (Anthropic uyumlu) uç noktası yapılandırılmış çıktıyı desteklemez: yapılandırılmış çıktı alanları sessizce göz ardı edilir: istek, serbest biçimli metin ile 200 döner ve hata veya geri dönüş bildirimi yoktur, ve aşağı akış JSON ayrıştırması başarısız olacaktır. Yapılandırılmış çıktıya ihtiyaç duyduğunuzda, Sohbet Tamamlamaları veya Yanıtlar API'sini kullanın.

6. Bağlam Önbelleklemesi Otomatik Olarak Yapılır

K3'ün bağlam önbelleklemesi otomatik olarak etkinleştirilmiştir, herhangi bir parametre gerektirmez. Tekrar eden uzun bir önek önbelleğe girdiğinde, vurma miktarı kullanımda rapor edilir (alan adı API'ye göre değişir). Önbellek fiyatlandırması model sayfasında bulunmaktadır.
Sohbet Tamamlamaları

# aynı uzun önek ile ikinci çağrının kullanımı
"prompt_tokens_details": {"cached_tokens": 1536}
Doğrulanmış: aynı uzun önek ile ikinci istek, usage.prompt_tokens_details.cached_tokens içinde vurmayı rapor eder.
Yanıtlar
# aynı uzun talimatlarla ikinci Yanıt çağrısının kullanımı
"input_tokens_details": {"cached_tokens": 1536}

Mesajlar

# aynı uzun sistem istemi ile ikinci Mesajlar çağrısının kullanımı
"cache_read_input_tokens": 1536

7. partial Önek Tamamlaması

Önek tamamlaması, modelin belirli bir önekten devam etmesini sağlar, bu da kod tamamlaması ve format kontrollü çıktı için uygundur.
Sohbet Tamamlamaları

Son asistan mesajında "partial": true geçirin.

messages = [
    {"role": "user", "content": "Deniz hakkında bir haiku yaz."},
    {"role": "assistant", "content": "Dalgalar köpüğe katlanır,", "partial": True},
]

# Önek: "Dalgalar köpüğe katlanır,"  ->  model tarafından dönen devam
# tuz havada asılı—
# ay gelgiti eve çekiyor.
Doğrulanmış: üretim, verilen önekten devam eder ve onu tekrarlamaz.
Yanıtlar

Öneki input dizisinin sonunda bir asistan mesajı olarak geçirin; partial parametresine gerek yoktur.

response = client.responses.create(
    model="kimi-k3",
    input=[
        {"role": "user", "content": "Deniz hakkında bir haiku yaz."},
        {"role": "assistant", "content": "Dalgalar köpüğe katlanır,"},
    ],
)

# Gözlemlenen devam: "tuz havada asılı— / ay gelgiti çekiyor."

Mesajlar

Aynı yetenek, protokolün yerel asistan önceden doldurması ile elde edilir, partial parametresine gerek yoktur: öneki son asistan mesajı olarak geçirin.

response = client.messages.create(
    model="kimi-k3",
    max_tokens=4096,
    messages=[
        {"role": "user", "content": "Deniz hakkında bir haiku yaz."},
        {"role": "assistant", "content": "Dalgalar köpüğe katlanır,"},
    ],
)

# Gözlemlenen devam: "tuz rüzgarı martının çığlığını taşır— / gelgit çekiyor ..."

8. Görsel Girdi

Görseller base64 olarak geçilir; içerik blok formatı API'ye göre değişir.
Sohbet Tamamlamaları

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Bu görüntünün baskın rengi nedir? Bir kelime."},
            {"type": "image_url", "image_url": {"url": "data:image/png;base64,<BASE64>"}},
        ],
    }
]

# Gözlemlenen yanıt içeriği: "Kırmızı"  (girdi: 64x64 katı kırmızı PNG)
Doğrulanmış: base64 görüntü girişi çalışır ve model test görüntüsünü doğru bir şekilde tanımlar.
Yanıtlar
input = [
    {
        "role": "user",
        "content": [
            {"type": "input_text", "text": "Bu görüntünün baskın rengi nedir? Bir kelime."},
            {"type": "input_image", "image_url": "data:image/png;base64,<BASE64>"},
        ],
    }
]

# Gözlemlenen çıktı metni: "Kırmızı"

Mesajlar

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Bu görüntünün baskın rengi nedir? Bir kelime."},
            {"type": "image", "source": {"type": "base64", "media_type": "image/png", "data": "<BASE64>"}},
        ],
    }
]

# Gözlemlenen yanıt metni: "Kırmızı"

9. Doğrulanmış Referans: Uzun Tek Çağrı Görevinin Gecikmesi ve Kullanımı

K3'ün düşünmesi maksimum seviyede sabitlenmiştir, bu nedenle karmaşık görevler için tek istekler, tipik modellere göre önemli ölçüde daha uzun sürer. Tek bir dosya HTML oyun üretim görevinden ölçülen veriler (bir istem ile bir referans görüntü, tek seferde ve yineleme olmadan üretilmiştir): tek istek 2,541 saniye (yaklaşık 42 dakika) sürdü, 74,994 tamamlama token'ı ile, bunlardan 54,486'sı (yüzde 73) düşünme token'ıydı; son çıktı 1,275 satır doğrudan çalıştırılabilir koddu, finish_reason stop ile.

İstemci tarafı önerileri:

  • İstemci zaman aşımını dakikalar veya daha uzun süreler için ayarlayın ve uzun görevler için akış kullanmayı tercih edin;
  • max_completion_tokens için yeterli boşluk bırakın: bu durumda düşünme yalnızca 54,486 token tüketti.

10. Yetenek × API Destek Matrisi

Aşağıdaki tablodaki her hücre, 2026-07-17 tarihinde AIHubMix üretim API'lerine yapılan gerçek çağrılarla doğrulanmıştır; her hücre, ilgili API için parametre / alan sözdizimini gösterir.

Yetenek Sohbet Tamamlamaları Yanıtlar Mesajlar
Yanıtta düşünme içeriği reasoning_content alanı reasoning çıktı öğesi thinking içerik bloğu
Düşünme geçmişini geri iletme ✅ asistan mesajı tam olarak geri iletildi ✅ çıktı öğeleri tam olarak geri iletildi ✅ içerik blokları tam olarak geri iletildi
Araç çağrılarını zorla / devre dışı bırak tool_choice: "required" / "none" tool_choice: "required" {"type": "any"} / {"type": "none"}
Dinamik araç yükleme ✅ sistem mesajı ile tools (içerik yok) ➖ Destek devam ediyor ❗ Resmi Mesajlar (Anthropic uyumlu) uç noktasında desteklenmiyor
Yapılandırılmış çıktı response_format (json_schema + strict) text.format (json_schema) ❗ Resmi uç noktada desteklenmiyor; alanlar sessizce göz ardı edilir (200 + serbest biçimli metin); bunun yerine Sohbet / Yanıtlar kullanın
Otomatik önbellek vurma ölçümü usage.prompt_tokens_details.cached_tokens usage.input_tokens_details.cached_tokens usage.cache_read_input_tokens
Önek tamamlaması "partial": true ✅ asistan önceden doldurma ✅ asistan önceden doldurma (protokol yerel)
Görsel girdi image_url (base64) input_image (base64) image içerik bloğu (base64)
Durdurma dizileri stop (sınırlar doğrulandı) ➖ Destek devam ediyor stop_sequences sınırları aynı şekilde doğrulanır, ancak bir vurma durumunda ne stop_reason: "stop_sequence" ne de stop_sequence değeri döner

SSS

K3, AIHubMix'te hangi API'leri destekliyor?
Sohbet Tamamlamaları (/v1/chat/completions), Yanıtlar (/v1/responses) ve Claude uyumlu Mesajlar API'si (/v1/messages).

Düşünme devre dışı bırakılabilir mi veya azaltılabilir mi?
Hayır. K3'ün düşünmesi varsayılan olarak açıktır ve reasoning_effort yalnızca tek "max" seviyesini destekler.

Neden reasoning_content çok aşamalı konuşmalarda geri iletilmelidir?
K3, korunmuş düşünme ile eğitilmiştir; Moonshot, önceki asistan mesajının tam ve değiştirilmemiş olarak geri iletilmesini gerektirir. Eksik düşünme geçmişi, kararsız çıktı kalitesine yol açar.

stop parametresinin sınırları nelerdir?
En fazla 5 durdurma dizisi, her biri 32 bayttan uzun olmamalıdır; herhangi bir sınırı aşmak 400 hatası döner.

Mesajlar API'si yapılandırılmış çıktıyı destekliyor mu?
❗ Hayır. Kimi K3'ün resmi Mesajlar (Anthropic uyumlu) uç noktası yapılandırılmış çıktı alanlarını sessizce göz ardı eder (serbest biçimli metin ile 200 döner ve hata yoktur). Yapılandırılmış çıktı için, Sohbet Tamamlamaları veya text.format kullanın.

Neden tek K3 istekleri bu kadar uzun sürüyor?
K3'ün düşünmesi maksimum seviyede sabitlenmiştir ve düşünme token'ları karmaşık görevlerde büyük bir paya sahiptir (ölçülen durumda tamamlama token'larının yüzde 73'ü). İstemci zaman aşımını dakikalar veya daha uzun süreler için ayarlayın ve akış kullanın.


Fiyatlandırma ve gerçek zamanlı durum için Kimi K3 model sayfasına bakın; daha fazla model için model galerisine gidin.

Son güncelleme: 2026-07-17