Chat Completion API: Nasıl Çalışır ve Nasıl Kullanılır

Chat Completion API'nin nasıl çalıştığını keşfedin, Python ile nasıl entegre edileceğini öğrenin, temel parametreleri, akışlı yanıtları ve araç çağrılarını anlayın; Kimi API gibi OpenAI uyumlu sağlayıcıların esnek AI uygulamaları geliştirmeyi nasıl desteklediğini görün.

9 dakikalık okumaGüncellendi: 2026-11-14
Chat Completion API istek ve yanıt akışı

Bir AI sohbet robotu geliştiriyor veya bir uygulamaya konuşma özellikleri ekliyor olun, AI'ın konuşmaları nasıl işlediğini anlamak önemlidir. Chat Completion API, ilgili ve insan benzeri yanıtlar üretmek için uygulamaları AI modelleriyle bağlayarak bunu mümkün kılar. Python entegrasyonu, akışlı yanıtlar ve araç çağrıları gibi özelliklerle geliştiriciler daha etkileşimli uygulamalar oluşturabilir. Nasıl çalıştığını, nasıl kullanılacağını ve Kimi API gibi sağlayıcıların esnek AI geliştirmeyi nasıl desteklediğini inceleyelim.

Chat Completions API nedir

Chat Completions API, uygulamaların bir AI modeline mesaj dizisi göndermesine ve hem tek turlu hem de çok turlu konuşmaları destekleyen bir asistan yanıtı almasına olanak tanıyan bir arayüzdür. Örneğin, Python dekoratörleriyle ilgili bir soruyu yanıtlamak için Kimi K3.1 Pro'yu kullanabilir, ardından bir takip sorusu sorabilirsiniz:

  • İlk istek: Kullanıcı mesajını gönderin: "Python dekoratörü nedir?" Kimi, kavramı açıklayan bir asistan mesajı döndürür.

  • İkinci istek: Konuşmaya devam etmek için önceki kullanıcı mesajını, Kimi'nin eksiksiz asistan mesajını ve yeni bir kullanıcı mesajını gönderin: "Bana bir örnek verebilir misin?"

messages dizisi, her istek için gereken bağlamı taşır. Üç temel tasarım kararı, bu arayüzün yaygın olarak benimsenmesini sağlamıştır:

  • Uygulama tarafından yönetilen geçmiş: Uygulamalar konuşma geçmişini yönetir ve ilgili bağlamı her isteğe ekler; böylece geliştiriciler modelin neyi göreceğini kontrol edebilir.

  • Yaygın mesaj rolleri: Yaygın roller arasında system (talimatlar), user (girdi), assistant (model çıktısı, çok turlu bağlam için yeniden iletilir) ve tool (fonksiyon çağrısı sonuçları) bulunur. Bunlar birlikte talimatları, diyaloğu ve araç etkileşimlerini ifade etmeye yardımcı olur.

  • Esnek yetenekler: Model desteğine bağlı olarak arayüz; akış, araç çağrısı, görsel girdiler ve yapılandırılmış çıktıları işleyebilir. Kimi K3.1 Pro bu yetenekleri destekler.

Chat Completions API'yi Kimi ile kullanma

Aşağıdaki örneklerde, istemcinin nasıl yapılandırılacağını, isteklerin nasıl gönderileceğini, yanıtların nasıl işleneceğini ve araç çağrısının nasıl uygulanacağını göstermek için Kimi K3.1 Pro ve OpenAI Python SDK kullanılır:

Hızlı başlangıç: OpenAI Python SDK ile Kimi çağırma

OpenAI Python SDK'yı yükleyin:

pip install --upgrade openai

Kimi API anahtarınızı ortam değişkeni olarak ayarlayın:

export MOONSHOT_API_KEY="sk-your-kimi-key"

OpenAI API anahtarına ihtiyacınız yoktur. OpenAI Python SDK istemci kitaplığı görevi görürken Kimi API anahtarınız ve temel URL'niz isteklerin Kimi'ye yönlendirilmesini ve kimlik doğrulamasını sağlar.

İstemciyi başlatın ve ilk isteğinizi gönderin:

import os from openai import OpenAI client = OpenAI( api_key=os.environ["MOONSHOT_API_KEY"], base_url="https://api.moonshot.ai/v1", ) resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ {"role": "user", "content": "Explain REST in one paragraph."} ], ) print(resp.choices[0].message.content)

Bu örnekte Kimi'nin uluslararası API uç noktası kullanılmaktadır. Resmî kurulum ve model ayrıntıları için Kimi K3.1 Pro Hızlı Başlangıç sayfasına bakın.

Temel parametreler

Bu parametreler, Chat Completions API üzerinden Kimi K3.1 Pro çağrılırken kullanılabilen başlıca seçenekleri kapsar:

ParametreAmaç
modelkimi-k3.1-pro gibi model kimliğini belirtir.
messagesÖnceki kullanıcı girdileri ve asistan yanıtları dahil olmak üzere konuşma mesajlarını sağlar. Metin ve çok modlu içerikleri destekler.
reasoning_effortMuhakeme derinliğini kontrol eder. low, high veya max (varsayılan) değerlerini kabul eder.
max_completion_tokensMuhakeme token'ları ve nihai yanıt token'ları dahil olmak üzere maksimum üretim bütçesini belirler. Girdi token'ları ayrı sayılır; ancak girdi ve üretilen token'ların toplamı modelin bağlam penceresine sığmalıdır.
streamYanıtın tamamını beklemek yerine kademeli olarak almak için true olarak ayarlayın.
toolsModelin uygulamadan çalıştırmasını isteyebileceği işlevleri tanımlar.
response_formatÇıktı biçimlendirmesini kontrol eder. JSON modu için json_object ve şemayla kısıtlanmış yapılandırılmış çıktı için json_schema desteklenir.

Not: Kimi K3.1 Pro sabit örnekleme ayarları kullanır. İsteklere temperature veya top_p eklemeyin. Parametre ayrıntıları ve desteklenen değerler için Chat Completions API başvuru belgesine bakın.

Yanıtı okuma

İstek başarıyla tamamlandıktan sonra, döndürülen completion nesnesi aracılığıyla ana yanıt alanlarına erişebilirsiniz:

  • choices[0].message – Model bir fonksiyon istediğinde content veya tool_calls dâhil olmak üzere asistanın yanıtını içerir.

  • choices[0].finish_reason – Üretimin neden durduğunu; örneğin stop, length veya tool_calls ile belirtir.

  • usage – Mevcut olduğunda girdi, çıktı ve önbelleğe alınmış token sayıları dâhil token kullanımı bilgilerini sağlar.

Temel bir metin yanıtı için choices[0].message.content alanını okuyun. Model tool_calls döndürürse uygulamanızın istenen fonksiyonları yürütmesi ve sonuçlarını takip eden bir istekte göndermesi gerekir

Akış örneği

Kimi'nin yanıtını artımlı parçalar hâlinde almak için stream=True ayarlayın. Aşağıdaki örnek, yukarıda yapılandırılan client nesnesini yeniden kullanır ve nihai yanıt geldikçe yazdırır:

stream = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ {"role": "user", "content": "Write a haiku about autumn."} ], stream=True, ) for chunk in stream: if not chunk.choices: continue delta = chunk.choices[0].delta if delta.content: print(delta.content, end="", flush=True)

Kimi K3.1 Pro, muhakeme içeriğini nihai yanıttan ayrı döndürür. Bu örnek yalnızca delta.content değerini yazdırır; dolayısıyla ayrı reasoning_content alanını işlemeden nihai yanıtı görüntüler.

Kısaca araç çağrısı

Araç çağrısı, bir görev modelin kendi yanıtının ötesinde bilgi veya işlem gerektirdiğinde Kimi'nin harici fonksiyonlar istemesini sağlar. Örneğin bir kullanıcı "Bugün Tokyo'da şemsiye götürmeli miyim?" diye sorarsa Kimi, hava tahminini almak için get_weather fonksiyonunu isteyebilir.

İş akışı üç adımdan oluşur:

  1. Fonksiyonu tanımlayın: get_weather fonksiyonunu ve beklenen bağımsız değişkenlerini tools parametresi altında tanımlayın.

  2. Aracı yürütün: Kimi, fonksiyon adı ve bağımsız değişkenleriyle birlikte bir tool_calls girdisi döndürür. Uygulamanız ilgili fonksiyonu yürütür ve hava durumu verilerini alır.

  3. Sonucu geri gönderin: Kimi'nin tam asistan mesajını ve araç sonucunu (eşleşen tool_call_id kullanarak) konuşmaya ekleyin, ardından kullanıcıya yönelik bir yanıt oluşturmak için Kimi'yi yeniden çağırın.

Aşağıdaki örnek, yukarıda yapılandırılan client nesnesini yeniden kullanır. Çalıştırmadan önce JSON ile serileştirilebilir hava durumu verileri döndüren bir get_weather(city) fonksiyonu uyguladığınızdan emin olun. Fonksiyon Kimi tarafından değil, uygulamanız tarafından yürütülür.

import json tools = [ { "type": "function", "function": { "name": "get_weather", "description": "Get the weather forecast for a city.", "parameters": { "type": "object", "properties": { "city": {"type": "string"} }, "required": ["city"] } } } ] messages = [ {"role": "user", "content": "Should I bring an umbrella in Tokyo today?"} ] # Ask Kimi whether it needs to call a tool resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=messages, tools=tools, ) assistant_message = resp.choices[0].message # Preserve the complete assistant message, including tool_calls messages.append(assistant_message) # Execute the requested function in your application for tool_call in assistant_message.tool_calls or []: if tool_call.function.name == "get_weather": args = json.loads(tool_call.function.arguments) # Call your own weather service or API weather_result = get_weather(city=args["city"]) messages.append({ "role": "tool", "tool_call_id": tool_call.id, "content": json.dumps(weather_result) }) # Let Kimi interpret the tool result and answer the user final_resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=messages, tools=tools, ) print(final_resp.choices[0].message.content)

Burada get_weather(), Kimi tarafından doğrudan yürütülen bir fonksiyonu değil, uygulamanızın uyguladığı bir fonksiyonu temsil eder. Kimi ne zaman isteneceğine karar verir ve bağımsız değişkenleri sağlar; asıl işlemi uygulamanız gerçekleştirir ve sonucu döndürür.

Üretimde, her araç çağrısını işleyen, ilgili sonuçları konuşmaya ekleyen ve güncellenmiş mesajları Kimi'ye geri gönderen bir döngü uygulayın. Model ek araç istemeden nihai bir yanıt döndürene kadar bu döngüyü tekrarlayın.

Sağlayıcı seçerken "OpenAI uyumlu" olmasının önemi

Birçok sağlayıcı OpenAI Chat Completions biçimini destekler; bu da geliştiricilerin aşina oldukları SDK'ları ve istek yapılarını yeniden kullanmalarına olanak tanır. Geçiş için genellikle temel URL'yi, API anahtarını ve model kimliğini güncellemek; ardından desteklenen parametreleri ve yanıt işlemeyi kontrol etmek yeterlidir. Sağlayıcıları karşılaştırırken aşağıdaki unsurları göz önünde bulundurun:

  1. Uyumluluk doğruluğu: Akışın, araç çağrısının, yapılandırılmış çıktıların ve usage raporlamasının uygulamanızın beklediği şekilde çalıştığını doğrulayın. Aynı API biçimiyle uyumluluk, sağlayıcılar arasında özellik desteğinin veya yanıt davranışının aynı olacağını garanti etmez.

  2. İş yükünüze uygun model kalitesi: Dil dağılımınız ve görev türleriniz, genel kıyaslamalardan daha önemlidir.

  3. Bağlam penceresi: Uzun bağlamlı modeller, tek bir istekte daha fazla kaynak materyal işleyerek bazı belge iş akışlarını basitleştirebilir.

  4. Maliyet yapısı: Önbelleğe alma ve toplu işlem indirimleri, çoğu zaman öne çıkan token başına fiyatlardan daha belirleyicidir.

  5. Ekosistemin genişliği: Responses ve Anthropic Messages gibi ek uyumlu uç noktalar, uygulamanız geliştikçe daha fazla entegrasyon seçeneği ve esneklik sağlayabilir.

Kimi API: Öne çıkan OpenAI uyumlu bir sağlayıcı

Moonshot AI tarafından geliştirilen Kimi API, özellikle Çince uygulamalar, uzun belge işleme ve kodlama ajanları için OpenAI uyumlu bir sağlayıcı arıyorsanız değerlendirmeye değerdir. Alışıldık API entegrasyon kalıplarını Kimi'nin uzun bağlam ve muhakeme yetenekleriyle birleştirir.

Doğrudan uyumlu

Uygulamanız hâlihazırda OpenAI Python SDK kullanıyorsa, tüm istek akışınızı yeniden yazmadan Kimi'yi entegre edebilirsiniz. Alışık olduğunuz Chat Completions arayüzünü korurken base_url, api_key ve model kimliği dâhil API yapılandırmasını güncellemeniz yeterlidir.

Örneğin aşağıdaki kod, report.txt dosyasındaki yerel bir raporu okur, içeriğini özetlenmesi için Kimi K3.1 Pro'ya gönderir ve oluşturulan yanıtı akış olarak iletir:

from pathlib import Path report_text = Path("report.txt").read_text(encoding="utf-8") resp = client.chat.completions.create( model="kimi-k3.1-pro", messages=[ { "role": "user", "content": f"Summarize the following report:\n\n{report_text}" } ], stream=True, ) for chunk in resp: if not chunk.choices: continue content = chunk.choices[0].delta.content if content: print(content, end="", flush=True)

Burada client, API anahtarınız ortam değişkeninden okunarak daha önce başlatılan Kimi istemcisini yeniden kullanır. Temel URL'yi bölgenize göre seçin: uluslararası platform için https://api.moonshot.ai/v1, API'ye Çin ana karasından erişen kullanıcılar için ise https://api.moonshot.cn/v1.

Bu yaklaşım, belge özetleme ve API destekli diğer uygulamalar gibi görevlerde Kimi modellerini kullanırken mevcut OpenAI SDK iş akışınızı korumanızı sağlar.

Kimi'nin ayrıştığı noktalar

  • 1M token bağlam penceresine sahip amiral gemisi model: Kimi K3.1 Pro, 1M tokene kadar bağlam penceresi ve yerel görsel anlama desteği sunar. Geliştiriciler kapsamlı kod tabanları, kitap uzunluğundaki belgeler ve görüntü girdileriyle tek bir iş akışında çalışabilir; bu da modeli karmaşık akıl yürütme, kodlama ve çok modlu uygulamalar için uygun hâle getirir.

  • Esnek maliyet optimizasyonu: Kimi API, yinelenen istek önekleri için otomatik bağlam önbelleğe alma ve gerçek zamanlı yanıt gerektirmeyen büyük ölçekli görevler için Batch API çıkarımı destekler. Önbellek ücretlendirmesi ve Batch fiyatları modele ve geçerli fiyatlandırma kurallarına bağlıdır. Güncel ücretler ve faturalandırma ayrıntıları için resmî Kimi API fiyatlandırmasına göz atın.

  • API ekosistemleri arasında uyumluluk: Kimi, OpenAI uyumlu Chat Completions ve Responses API uç noktalarının yanı sıra Anthropic Messages uyumlu bir uç nokta sunar. Geliştiriciler, uç noktaya ve desteklenen özelliklere göre gerekli uyarlamaları yaparak Kimi K3.1 Pro'yu alışık oldukları SDK'ler ve API biçimleriyle mevcut iş akışlarına entegre edebilir.

Sonuç

Chat Completions API ile başlamak kolaydır: API kimlik bilgilerinizi yapılandırın, bir istek gönderin ve oluşturulan yanıtı choices[0].message.content üzerinden okuyun. İlk API çağrınız çalıştıktan sonra, uygulamanızın ihtiyaçlarına göre çok turlu konuşmalar, akış yanıtları veya araç çağırma ekleyerek entegrasyonunuzu genişletebilirsiniz. Kimi ile geliştirmeye hazır mısınız? Kimi API anahtarınızı alın ve API istekleri göndermeye başlayın.

SSS

Hayır. Chat Completions API yalnızca OpenAI modellerine özgü değildir. Kimi dahil diğer AI sağlayıcıları, OpenAI uyumlu Chat Completions biçimini izleyen API'ler sunar. Bu sayede geliştiriciler, özellik desteği farklılık gösterebilse de farklı sağlayıcıların desteklenen modelleriyle alışık oldukları SDK'ları ve istek yapılarını yeniden kullanabilir.
Her iki API de uygulamaların AI modelleriyle etkileşim kurmasını sağlar, ancak farklı istek ve yanıt yapıları kullanırlar. Chat Completions, bir messages dizisi kullanır ve yanıtları choices dizisi aracılığıyla döndürür. Responses API ise farklı içerik türlerini ve araç etkileşimlerini destekleyen daha esnek bir girdi ve çıktı yapısı kullanır. Konuşma durumu yönetimi sağlayıcıya göre değişir. Kimi'nin Responses API'sinde uygulamalar, yanıt kimliği zincirlemesine güvenmek yerine her isteğe ilgili konuşma geçmişini eklemelidir.
Uygulamanız OpenAI SDK'yı kullanıyorsa genellikle üç yapılandırma değerini güncelleyerek Kimi'ye geçebilirsiniz: base_url değerini Kimi'nin API uç noktasına, api_key değerini Kimi API anahtarınıza ve model değerini desteklenen bir Kimi model kimliğine ayarlayın. Ardından, akışlı yanıtlar ve araç çağrıları gibi uygulamanızın kullandığı parametrelerin ve özelliklerin desteklendiğini doğrulamak için entegrasyonunuzu test edin.
Bunları da Beğenebilirsiniz
OpenAI Chat Completions API: Kapsamlı Rehber
OpenAI Chat Completions API: Kapsamlı Rehber
2026-11-14
AI Geliştirme için 10 Ücretsiz ve Ücretli LLM API'si
AI Geliştirme için 10 Ücretsiz ve Ücretli LLM API'si
2026-11-14
LLM API Rehberi: Özellikler, Faydalar ve Yaygın Uygulamalar
LLM API Rehberi: Özellikler, Faydalar ve Yaygın Uygulamalar
2026-11-14
Model API: Kimi API için Geliştirici Rehberi
Model API: Kimi API için Geliştirici Rehberi
2026-11-14
OpenAI Uyumlu API: Geliştiriciler İçin Pratik Rehber
OpenAI Uyumlu API: Geliştiriciler İçin Pratik Rehber
2026-11-14