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 ikistopsınırı doğrulanmıştır ve herhangi birini aşmak 400 döner; Mesajlar API'sistop_sequencesiç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_sequencenullve 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ıtreasoning_contentdö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_tokensiç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_tokensiç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



