Kimi K2.5 API, geliştiricilere Moonshot AI'nin amiral gemisi modeline programatik erişim sağlar. Bu kapsamlı rehber, kimlik doğrulamadan ileri düzey entegrasyon kalıplarına kadar her şeyi ele alarak Kimi K2.5 ile güçlü yapay zeka uygulamaları geliştirmenize yardımcı olur.
Kimi K2.5 API nedir?
Kimi K2.5 API, geliştiricilerin Kimi K2.5'in yeteneklerini uygulamalarına entegre etmesine olanak tanıyan RESTful bir arayüzdür. OpenAI uyumlu API formatı üzerine inşa edilmiştir; mevcut araç ve framework'lerle sorunsuz entegrasyon sunarken Kimi K2.5'in 256K context window ve multimodal girdiler gibi kendine özgü özelliklerini de destekler.
Temel Özellikler
| Özellik | Açıklama |
|---|---|
| 256K Context Window | ~200 sayfaya kadar belge işleme |
| Multimodal Destek | Metin, görsel ve belge girdileri |
| Streaming Yanıtlar | Gerçek zamanlı token üretimi |
| Function Calling | Araç kullanımı ve agentic iş akışları |
| OpenAI Uyumlu | OpenAI SDK için doğrudan yedek |
| Context Caching | Tekrarlanan bağlam için düşük maliyet |
Kimi K2.5 API ile Başlangıç
1. API Kimlik Bilgilerini Edinin
Moonshot AI Platform üzerinden bir API anahtarı için kaydolun:
- Moonshot AI geliştirici portalında bir hesap oluşturun
- API Keys bölümüne gidin
- Yeni bir API anahtarı oluşturun
- Güvenle saklayın (environment variable önerilir)
2. API Base URL
https://api.moonshot.cn/v1
3. Kimlik Doğrulama
Tüm API istekleri Bearer token ile kimlik doğrulaması gerektirir:
Authorization: Bearer YOUR_API_KEY
Kimi K2.5 API Kod Örnekleri
Python Entegrasyonu
Temel Chat Completion
import openai
# Client'ı yapılandır
client = openai.OpenAI(
api_key="your-kimi-api-key",
base_url="https://api.moonshot.cn/v1"
)
# Basit completion
response = client.chat.completions.create(
model="kimi-k2.5",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Makine öğrenimini basit terimlerle açıkla."}
],
temperature=0.7,
max_tokens=1000
)
print(response.choices[0].message.content)
Streaming Yanıtlar
import openai
client = openai.OpenAI(
api_key="your-kimi-api-key",
base_url="https://api.moonshot.cn/v1"
)
stream = client.chat.completions.create(
model="kimi-k2.5",
messages=[
{"role": "user", "content": "Fibonacci sayılarını hesaplayan bir Python fonksiyonu yaz."}
],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Görsel İçeren Multimodal İstek
import openai
import base64
client = openai.OpenAI(
api_key="your-kimi-api-key",
base_url="https://api.moonshot.cn/v1"
)
# Görseli oku ve encode et
with open("chart.png", "rb") as f:
image_data = base64.b64encode(f.read()).decode()
response = client.chat.completions.create(
model="kimi-k2.5",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Bu grafiği analiz et ve temel eğilimleri özetle."},
{
"type": "image_url",
"image_url": {
"url": f"data:image/png;base64,{image_data}"
}
}
]
}
]
)
print(response.choices[0].message.content)
JavaScript/Node.js Entegrasyonu
Fetch ile Temel İstek
const response = await fetch('https://api.moonshot.cn/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({
model: 'kimi-k2.5',
messages: [
{ role: 'system', content: 'You are a coding assistant.' },
{ role: 'user', content: 'Bir todo listesi için React bileşeni oluştur.' }
],
temperature: 0.7,
max_tokens: 2000
})
});
const data = await response.json();
console.log(data.choices[0].message.content);
OpenAI SDK Kullanımı
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'your-kimi-api-key',
baseURL: 'https://api.moonshot.cn/v1'
});
async function generateCode() {
const stream = await client.chat.completions.create({
model: 'kimi-k2.5',
messages: [
{ role: 'user', content: 'FastAPI ile bir Python API oluştur' }
],
stream: true
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
}
generateCode();
cURL Örnekleri
# Temel chat completion
curl https://api.moonshot.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "kimi-k2.5",
"messages": [
{"role": "user", "content": "Merhaba, Kimi!"}
]
}'
# System prompt ve parametrelerle
curl https://api.moonshot.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "kimi-k2.5",
"messages": [
{"role": "system", "content": "You are a Python expert."},
{"role": "user", "content": "Decorator'\''ları açıkla."}
],
"temperature": 0.3,
"max_tokens": 1500
}'
Kimi K2.5 API Gelişmiş Özellikleri
Function Calling / Araç Kullanımı
import openai
client = openai.OpenAI(
api_key="your-kimi-api-key",
base_url="https://api.moonshot.cn/v1"
)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get weather for a location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "City name"
}
},
"required": ["location"]
}
}
}
]
response = client.chat.completions.create(
model="kimi-k2.5",
messages=[
{"role": "user", "content": "What's the weather in Beijing?"}
],
tools=tools
)
# Modelin bir fonksiyon çağırmak isteyip istemediğini kontrol et
if response.choices[0].message.tool_calls:
tool_call = response.choices[0].message.tool_calls[0]
print(f"Function to call: {tool_call.function.name}")
print(f"Arguments: {tool_call.function.arguments}")
Uzun Bağlamlı Belge İşleme
import openai
client = openai.OpenAI(
api_key="your-kimi-api-key",
base_url="https://api.moonshot.cn/v1"
)
# Uzun bir belge oku
document = open("annual_report.txt", "r", encoding="utf-8").read()
response = client.chat.completions.create(
model="kimi-k2.5",
messages=[
{
"role": "user",
"content": f"Summarize the key financial metrics from this report:\n\n{document}"
}
],
max_tokens=2000
)
print(response.choices[0].message.content)
Kimi K2.5 API Fiyatlandırması
| Tür | Fiyat | Birim |
|---|---|---|
| Context Cache Hit | $0.10 | / 1M token |
| Context Cache Miss | $0.60 | / 1M token |
| Output Token | $3.00 | / 1M token |
Maliyet Optimizasyonu İpuçları
- Context Caching Kullanın: Tekrarlanan bağlamlarda caching maliyetleri önemli ölçüde düşürür
- Yanıtları Streaming Yapın: Gerçek zamanlı uygulamalarda streaming kullanıcı deneyimini iyileştirir
- Prompt'ları Optimize Edin: Açık ve öz prompt'lar token kullanımını azaltır
- İstekleri Batch'leyin: Mümkün olduğunda birden fazla öğeyi tek bir istekte işleyin
Hata Yönetimi
Yaygın HTTP Durum Kodları
| Kod | Anlamı | Çözüm |
|---|---|---|
| 200 | Başarılı | İstek başarıyla tamamlandı |
| 400 | Bad Request | İstek formatını ve parametreleri kontrol edin |
| 401 | Unauthorized | API anahtarını doğrulayın |
| 429 | Rate Limited | İstek sıklığını azaltın |
| 500 | Server Error | Exponential backoff ile yeniden deneyin |
Python Hata Yönetimi Örneği
import openai
from openai import RateLimitError, APIError
client = openai.OpenAI(
api_key="your-kimi-api-key",
base_url="https://api.moonshot.cn/v1"
)
try:
response = client.chat.completions.create(
model="kimi-k2.5",
messages=[{"role": "user", "content": "Hello"}]
)
except RateLimitError:
print("Rate limit exceeded. Please wait before retrying.")
except APIError as e:
print(f"API error: {e}")
except Exception as e:
print(f"Unexpected error: {e}")
Kimi K2.5 API için En İyi Uygulamalar
1. Güvenli API Anahtarı Yönetimi
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("KIMI_API_KEY")
client = openai.OpenAI(
api_key=api_key,
base_url="https://api.moonshot.cn/v1"
)
2. Retry Mantığı Uygulayın
import time
from functools import wraps
def retry_with_backoff(max_retries=3):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
for i in range(max_retries):
try:
return func(*args, **kwargs)
except Exception as e:
if i == max_retries - 1:
raise
time.sleep(2 ** i) # Exponential backoff
return None
return wrapper
return decorator
@retry_with_backoff(max_retries=3)
def call_kimi_api(messages):
return client.chat.completions.create(
model="kimi-k2.5",
messages=messages
)
3. İstek Batch'leme
# Birden fazla ayrı istek yerine
requests = [
"Summarize paragraph 1",
"Summarize paragraph 2",
"Summarize paragraph 3"
]
# Tek bir istekte birleştir
batch_prompt = "Summarize each of these paragraphs:\n\n" + "\n\n".join(
f"{i+1}. {req}" for i, req in enumerate(requests)
)
response = client.chat.completions.create(
model="kimi-k2.5",
messages=[{"role": "user", "content": batch_prompt}]
)
Entegrasyon Örnekleri
FastAPI Backend
from fastapi import FastAPI
from pydantic import BaseModel
import openai
app = FastAPI()
client = openai.OpenAI(
api_key="your-kimi-api-key",
base_url="https://api.moonshot.cn/v1"
)
class ChatRequest(BaseModel):
message: str
temperature: float = 0.7
@app.post("/chat")
async def chat(request: ChatRequest):
response = client.chat.completions.create(
model="kimi-k2.5",
messages=[{"role": "user", "content": request.message}],
temperature=request.temperature
)
return {"response": response.choices[0].message.content}
SSS
Kimi K2.5 API anahtarını nasıl alırım?
Moonshot AI Platform adresini ziyaret edin, bir hesap oluşturun ve geliştirici panelinden bir API anahtarı üretin.
Kimi K2.5 API, OpenAI ile uyumlu mu?
Evet, Kimi K2.5 API OpenAI uyumlu formatı kullanır. base_url değerini https://api.moonshot.cn/v1 olarak değiştirerek OpenAI SDK'yı kullanabilirsiniz.
Kimi K2.5 API için rate limit nedir?
Rate limitler, Free/Pro/Enterprise planlarına değil, kümülatif yükleme tutarına (Tier0-Tier5) dayanır. Örneğin Tier0 (¥0 yükleme) 1 eşzamanlı istek, 3 RPM, 500,000 TPM ve 1,500,000 TPD'dir. Güncel değerler için resmi limit sayfasını kontrol edin.
Kimi K2.5 API streaming destekliyor mu?
Evet, isteğinizde stream=True ayarlayarak token'ları üretildikçe alabilir ve gerçek zamanlı yanıtlar elde edebilirsiniz.
Kimi K2.5 API'yi görsel analizi için kullanabilir miyim?
Evet, Kimi K2.5 API görseller dahil multimodal girdileri destekler. Mesajlarınızda base64 ile kodlanmış görseller kullanın.
Kimi K2.5 API'nin maliyeti nedir?
Fiyatlandırma cache hit için $0.10/1M token, cache miss için $0.60/1M ve output token için $3.00/1M olarak başlar.