Ana içeriğe atla

Kimi K3: Özellikler, Karşılaştırmalar, API ve 5 Uygulamalı Örnek

Kimi K3’ün ne olduğunu, nasıl erişeceğinizi ve beş uygulamalı örnekle akıl yürütme, araçlar, uzun bağlam ve görmeyi nasıl ele aldığını öğrenin.
Güncel 21 Tem 2026  · 12 dk. oku

Yapay Zekâyla Keşfet

ChatGPT'de açClaude'da açPerplexity'de aç

Açık model yarışı 16 Temmuz 2026’da yeniden hareketlendi; Moonshot AI, 1 milyon belirteçlik bağlam penceresine ve doğal görme yeteneğine sahip, 2,8 trilyon parametreli Kimi K3’ü yayımladı. Bu, Moonshot’ın bugüne kadar sunduğu en büyük açık model; boyut olarak Kimi K2’nin çok ötesinde ve ilk kez 3 trilyon parametre sınıfına ulaştığını belirttikleri model.

Lansman hikâyesini, mimariye derin bakışı, karşılaştırma grafikleriyle Claude, GPT ve diğer Çin laboratuvarlarıyla kıyaslamayı ve Moonshot’ın sınırlamalar listesini istiyorsanız, tüm bunları Kimi K3 blog yazımız kapsıyor. Bu eğitim ise uygulamalı tarafı; nasıl erişileceğini ve kullanmaya başladığınızda nasıl davrandığını içeriyor. Toplam beş küçük örnek üzerinden ilerleyeceğim; dördü API üzerinden, gerçek belirteç kullanımı ve maliyeti göstereceğim ve ikisi kimi.com web uygulamasında. Birlikte, K3’ün şunları nasıl ele aldığını göreceğiz:

  • Araç çağırma ve katı JSON döndürme
  • Bir araç tanımını anında yükleme
  • Otomatik önbellekleme ile uzun-bağlam maliyetini düşürme
  • Bir ekran görüntüsünü okuyup yerleşimi düzeltme
  • Tek bir istemden etkileşimli pano oluşturma

Dört API örneği, kimi-k3 modeliyle 17 Temmuz 2026’da çalıştırıldı ve soğuk çalıştırmada yaklaşık 11 sent tuttu; önbellek devreye girdikten sonra birkaç sente düştü.

Kimi K3’e Nasıl Erişilir

Modeli denemenin en hızlı yolu kimi.com; web ve mobil uygulamalar, genel ajan görevleri için Kimi K3’ü kurulum gerektirmeden çalıştırır.

Raporlar ve panolar gibi daha ağır işler için Kimi Work adlı bir masaüstü uygulaması var.

Terminalde yaşayanlar için Kimi Code, npm üzerinden @moonshot-ai/kimi-code olarak kurulan bir kodlama ajanıdır ve modeli /model komutuyla seçersiniz. Kimi Code’da K3 kullanımı ücretli üyelik gerektirir ve tam 1 milyon belirteçlik pencere daha yüksek bir kademede sunulur.

Bu eğitim, ham API ve web uygulamasına odaklanıyor; ancak isterseniz terminal ajanı da mevcut.

K3, kardeşlerinin yerini almıyor. Aşağıdaki tablo, mevcut serinin nasıl bölündüğünü gösteriyor.

Model

Bağlam penceresi

En uygun kullanım

kimi-k3

1.048.576 belirteç

Amiral gemisi işler: uzun kodlama, görme, bilgi görevleri

kimi-k2.7-code

262.144 belirteç

Adanmış kodlama, daha hızlı bir yüksek-hız seçeneğiyle

kimi-k2.6

262.144 belirteç

Genel metin, görüntü ve video sohbet

Kısa özeti şu: Bir iş kod, araçlar, belgeler ve görselleri bir araya getiriyorsa ya da gerçekten 1 milyon belirteçlik pencereye ihtiyacınız varsa, başlangıç için K3 doğru modeldir. Saf kod üretiminde hız bağlamdan önemliyse, kimi-k2.7-code hâlâ daha mantıklı bir seçim; bu yüzden en yeni modelin her zaman en doğru seçenek olduğunu varsaymayın.

Kimi K3 API’sini Kurma

API, OpenAI SDK ile uyumludur; daha önce onu kullandıysanız burada neredeyse hiçbir şey yeni değil. Python 3.9 veya üstü ve bir API anahtarına ihtiyacınız var.

Adım 1: API anahtarı oluşturma

Önce Kimi platformuna giriş yapın ve konsolda API Keys sayfasını açın. Bir anahtar oluşturun, bir kez kopyalayın ve güvenli bir yerde saklayın; çünkü tekrar göremeyeceksiniz. Ayrıca çağrı yapabilmek için hesapta küçük bir bakiye gerekir; bu eğitim için birkaç dolar fazlasıyla yeterlidir.

API anahtarı oluştur düğmesini gösteren Kimi platformu konsol API anahtarları sayfası.

Kimi K3 API anahtarı oluşturma. Görsel: Yazar.

Adım 2: SDK’yı yükleme

Sonraki adımda, OpenAI SDK’yı ortamınıza kurun. Tek bir komut yeterli.

python -m pip install --upgrade "openai>=1.0"

Bu komut, kalan örneklerin kullandığı istemci kitaplığını indirir ve Kimi’ye özgü kurulacak bir şey yoktur.

Adım 3: Anahtarı saklama ve istemciyi başlatma

Anahtarı kodunuza yapıştırmak yerine bir ortam değişkeninden okumanız daha iyidir. Kabukta veya bir .env dosyasında MOONSHOT_API_KEY ayarlayın, ardından istemciyi Moonshot’ın temel URL’sine yönlendirin.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MOONSHOT_API_KEY"],
    base_url="https://api.moonshot.ai/v1",
)

Standart bir OpenAI kurulumundan farklı olan yalnızca iki şey vardır: base_url ve model adı kimi-k3. Bunlar tamam olduğunda, çağrı yapmaya hazırsınız.

Adım 4: İlk çağrınızı yapma

Şimdi ilk istek. Modelle kendini bir cümlede tanıtmasını istedim; küçük ama dürüst bir ana dönüştü.

completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Introduce Kimi K3 in one sentence."}],
    max_completion_tokens=800,
)
print(completion.choices[0].message.content)

Yanıt, tahminde bulunmayı nazikçe reddetti: Model, kendi sürümünden önce eğitildiği için Kimi K3 hakkında güvenilir bilgisi olmadığını söyledi ve bunun yerine Moonshot’ın duyurularına yönlendirdi. Bu, bir modelin kendisi hakkında bilgi sahibi olmadığını hatırlatması açısından faydalı. Yaptığım bu API çağrısı yaklaşık yedi onda bir sent tuttu. Faturayı kabartmasın diye bu eğitimdeki her çağrıda koyduğum max_completion_tokens sınırına dikkat edin.

Kimi K3’ün kendisi hakkında güvenilir bilgisi olmadığını söylediği terminal çıktısı.

Kimi K3 ilk API çağrısı çıktısı. Görsel: Yazar.

Örnek 1: Akışlı Akıl Yürütme ve Nihai Yanıt

K3 her zaman akıl yürütür ve API, yanıtla akıl yürütmeyi ayrı bir kanalda döndürür. Akış kullanırken her parça reasoning_content, nihai content ya da her ikisini birden taşıyabilir; böylece düşünme süreci ile yanıtı ayrı ayrı konumlandırabilirsiniz.

stream = client.chat.completions.create(
    model="kimi-k3",
    messages=[{"role": "user", "content": "A bat and a ball cost $1.10 together. The bat costs $1.00 more than the ball. How much is the ball?"}],
    max_completion_tokens=1200,
    stream=True,
    stream_options={"include_usage": True},
)

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)
    if delta.content:
        print(delta.content, end="", flush=True)

Model önce çözümleme sürecini akışla verdi: Sopa-topu sorusunu klasik Bilişsel Yansıtma Testi olarak tanıdı, sezgisel yanlış yanıt olan 0,10 $’ı işaretledi; ardından cebirle topun 0,05 $ tuttuğunu buldu ve 1,05 $ artı 0,05 $’ın 1,10 $ ettiğini kontrol etti. Ayrım yararlı: Gerçek bir uygulamada kullanıcılara content gösterip reasoning_content’i günlüklerde tutarsınız; ham akıl yürütmeyi üretimde göstermek nadiren istenen bir şeydir. Bu çağrı 488 çıktı belirteci kullandı ve bir sentin altına mal oldu.

Terminal, Kimi K3’ün adım adım akıl yürütmesini ardından topun beş sent tuttuğu nihai yanıtı akışladığını gösteriyor.

Önce akıl yürütme, sonra nihai yanıtın akışlanması. Görsel: Yazar.

Örnek 2: Yapılandırılmış Çıktıyla Araç Çağırma

Kimi K3, bir turda en az bir araç çağrısını zorunlu kılan tool_choice="required" seçeneğini destekleyen modeldir. Bu, modelin yanıtlamadan önce veri çekmesini istediğinizde, tahminde bulunmak yerine işe yarar. Burada ona iki sahte araç verdim: bir fiyat sorgulama ve bir stok kontrolü; araç çağrısını zorladım, araçları yerelde çalıştırdım ve sonra sonucu response_format kullanarak katı JSON biçiminde istedim.

first = client.chat.completions.create(
    model="kimi-k3",
    messages=messages,
    tools=TOOLS,
    tool_choice="required",
    max_completion_tokens=2500,
)
assistant_message = first.choices[0].message
messages.append(assistant_message)

for tool_call in assistant_message.tool_calls or []:
    args = json.loads(tool_call.function.arguments)
    messages.append({"role": "tool", "tool_call_id": tool_call.id, "content": run_tool(tool_call.function.name, args)})

Model, doğru ürün koduyla her iki aracı da çağırdı ve ardından temiz bir sipariş özetini JSON olarak döndürdü: tanesi 89 $’dan beş mekanik klavye, toplam 445 $ ve stok bayrağı true. Bunu pratikte çalıştıran iki ayrıntı var. Araç sonuçlarını eklemeden önce, eksiksiz asistan mesajını konuşmaya geri eklemelisiniz ve JSON için yalnızca content alanını ayrıştırmalısınız; asla akıl yürütme alanını değil. Bu iki çağrı birlikte bir sentin altına mal oldu.

İki araç çağrısını takiben dört yüz kırk beş dolar tutarında yapılandırılmış bir JSON sipariş özetini gösteren terminal

Araç çağrıları ve yapılandırılmış JSON çıktısı. Görsel: Yazar.

Örnek 3: Araçları Dinamik Yükleme

Düzinelerce aracınız varsa, her istekte tüm tanımlarını göndermek belirteç israfıdır ve istemi kalabalıklaştırır. Kimi K3, content içermeyen ve bir tools alanı taşıyan bir system mesajıyla araç tanımını konuşmanın ortasında enjekte etmenizi sağlar. Araç, o noktadan itibaren kullanılabilir hâle gelir; bu da, büyük araç kataloglarını, bir araca gerçekten ihtiyaç duyulana kadar önbelleğe alınmış önekten uzak tutar.

messages = [
    {"role": "user", "content": "Convert 100 US dollars to euros at a rate of 0.92."},
    {"role": "system", "tools": [{
        "type": "function",
        "function": {
            "name": "convert_currency",
            "description": "Convert an amount from one currency to another",
            "parameters": {
                "type": "object",
                "properties": {"amount": {"type": "number"}, "rate": {"type": "number"}},
                "required": ["amount", "rate"],
            },
        },
    }]},
]
completion = client.chat.completions.create(model="kimi-k3", messages=messages)
print(completion.choices[0].message.tool_calls)

K3, yeni yüklenen aracı algıladı ve tam amaçlandığı gibi tutarı 100, oranı 0,92 olacak şekilde convert_currency’yi çağırdı. Unutulmaması gereken bir nokta, sunucunun bu tanımı sizin için saklamadığıdır; bu nedenle aracın erişilebilir kalmasını istiyorsanız sonraki isteklerde sistem mesajını yeniden gönderirsiniz. Bu setin en ucuz çağrısıydı; yaklaşık iki onda bir sent.

Kimi K3’ün anında yüklenen bir para dönüştürme aracını tutar ve oranla çağırdığını gösteren terminal

Dinamik olarak yüklenen döviz aracını çağırma. Görsel: Yazar.

Örnek 4: Önbellekleme ile Uzun-Bağlam Maliyetini Düşürme

Bu örnek, 1 milyon belirteçlik pencerenin pratikleştiği yer. Bağlam önbellekleme otomatiktir; yönetilecek bir önbellek kimliği veya yaşam süresi yoktur. Büyük bir önek gönderirsiniz, sonraki isteklerde baytına kadar aynı tutarsınız ve tekrarlanan kısım, önbellek-isabet oranından faturalandırılır, kaçırma oranından değil. Farkı görünür kılmak için yaklaşık 33.000 belirteçlik bir bilgi tabanı kullandım ve onunla ilgili bir soru sordum.

knowledge = Path("knowledge_base.md").read_text(encoding="utf-8")
completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[
        {"role": "system", "content": knowledge},
        {"role": "user", "content": "What is the rated payload of the Atlas robot?"},
    ],
    max_completion_tokens=600,
)

Bu öneği ilk gönderdiğimde hiçbir kısmı önbellekte değildi ve istek yaklaşık 33.000 girdi belirteci için 9,9 sent tuttu. Önek görüldükten sonra, aynı istek 32.512 önek belirtecinin tamamında önbellek isabeti aldı ve yaklaşık 1,1 sent tuttu; neredeyse dokuz kat düşüş. Nedeni fiyat farkı: önbellekteki girdi milyon belirteç başına 0,30 $ iken önbelleksiz 3,00 $. Karşılaştığım bir tuhaflık, önbellek yazımlarının eş zamansız olması; bu yüzden isabet ardışık anlık çağrıda görünmüyor. Daha sonraki bir istekte devreye giriyor; dolayısıyla betiği bir dakika arayla iki kez çalıştırmak önce kaçırmayı sonra isabeti gösteriyor.

Önbellekleme betiğinin iki terminal çalıştırması; biri yaklaşık on sentlik kaçırma maliyetini, diğeri yaklaşık bir sentlik isabet maliyetini gösteriyor.

Önbellek kaçırma ile isabet maliyeti karşılaştırması. Görsel: Yazar.

Örnek 5: Ekran Görüntüsünde Yerleşim Hatalarını Yakalama

Görme K3’e yerleşik ve API bunu kullanmanın temiz bir yolunu sunuyor; ancak herkese açık bir görsel URL’sini kabul etmiyor. Görseli base64 veri URL’si olarak gönderiyorsunuz ve mesajın content alanını, biri görsel biri metin olmak üzere nesnelerden oluşan bir dizi yapıyorsunuz. Birkaç kasıtlı yerleşim hatası olan küçük bir pano oluşturdum, ekran görüntüsünü kaydettim ve K3’ten neyin yanlış olduğunu sordum.

Hizası bozuk bir kart, bir sayının üzerinde duran bir rozet ve grafikten taşan bir çubuk içeren bir pano ekran görüntüsü.

Kasıtlı yerleşim hataları olan pano. Görsel: Yazar.

import base64
from pathlib import Path

image_data = base64.b64encode(Path("broken_dashboard.png").read_bytes()).decode()
completion = client.chat.completions.create(
    model="kimi-k3",
    messages=[{
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_data}"}},
            {"type": "text", "text": "List the layout and alignment problems you can see, and give a short CSS fix for each."},
        ],
    }],
    max_completion_tokens=3500,
)
print(completion.choices[0].message.content)

K3 görseli iyi okudu. Sıranın altında duran ve komşusuyla çakışan kartı, bir sayının üstüne park etmiş rozeti (hatta örtülen 3.910’u 5.910 olarak yanlış okudu; bu da hatanın kendini kanıtlaması), son karttan önceki dengesiz boşluğu, yukarıdaki karta doğru sızan çubuğu ve çubukların üstünde duran araç ipucunu yakaladı ve her biri için kısa bir CSS düzeltmesi verdi; örneğin kartları tek bir ızgaraya taşımak gibi. Ancak, neredeyse görünmez düşük kontrastlı altyazıyı atladı; dolayısıyla görme, göze çarpanları ince ayrıntılardan daha iyi yakalıyor. Çağrı yaklaşık iki sent tuttu.

Kimi K3’ün Sınırlamaları

API örnekleri iyi gitti; fakat birkaç pürüzden bahsetmeye değer ki sürpriz olmasın. Çoğuyla bizzat karşılaştım.

  • Şimdilik yalnızca reasoning_effort="max" mevcut; dolayısıyla maliyetten tasarruf için düşünmeyi kısmak henüz mümkün değil.

  • Örnekleme ayarları sabit. temperature, top_p ve cezalar gibi değerler kilitli; bu yüzden ayarlamak yerine isteklerden çıkarın.

  • Çıktı uzun ve maliyetli olabilir. max_completion_tokens’ı örneklerdeki gibi sınırlandırın ve herhangi bir ajan döngüsünü doğrulayın.

  • Genel görsel URL’leri API üzerinden desteklenmiyor; bu nedenle orada görme için base64 ya da yüklenen dosyaları planlayın.

Bunların hiçbiri engelleyici değil; fakat modeli nasıl kullanacağınızı şekillendiriyor. En çok izleyeceğim husus çıktı maliyeti olurdu.

Sonuç

Çalıştırmalarımda iki şey öne çıktı. Araç çağırma ve yapılandırılmış çıktı yeniden denemeye ihtiyaç duymadı ve önbellekleme beklediğimden daha fazla önem taşıdı; çünkü aynı uzun öneği yeniden kullanmak, büyük bir isteği tekrar göndermeyi ucuzlaştırdı. Dolayısıyla depo ölçeğinde analiz, tekrarlanan uzun-bağlam çağrıları veya çok modlu mühendislik için K3 makul bir varsayılan; hızlı ve düşük maliyetli sohbet ya da hassas örnekleme kontrolü içinse daha küçük bir model daha kolay bir seçim. Daha önce işaret ettiğim açık-ağırlık ve lisans ayrıntıları, 27 Temmuz sürümünden sonra daha net olmalı.

Bu örneklerin kullandığı kalıplara dair daha fazla arka plan için, OpenAI API ile Yapay Zekâ Sistemleri Geliştirme kursumuz, Python’da fonksiyon çağırma ve modelleri harici araçlara bağlamayı kapsar.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Veri hatları, bulut ve YZ araçları üzerinde çalışan; aynı zamanda DataCamp ve gelişmekte olan geliştiriciler için pratik, yüksek etkili eğiticiler yazan bir veri mühendisi ve topluluk inşacısıyım.

Konular

DataCamp ile öğrenin

Program

Geliştiriciler için Yardımcı Yapay Zeka Mühendisi

26 sa
API'leri ve açık kaynak kütüphanelerini kullanarak yapay zekayı yazılım uygulamalarına nasıl entegre edeceğinizi öğrenin. Yapay Zeka Mühendisi olma yolculuğunuza bugün başlayın!
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow