Kod yapay zekâsı dünyası kısaca
Cursor, Aider, Cline, Continue.dev, Claude Code'un kendisi — bunların tümü aynı üç veya dört öncü LLM'in üzerinde çalışır. Farkı yaratan model değil; etrafındaki ajan döngüsü, dosya indeksleme, fark uygulama ve kullanıcı deneyimidir. Bunlardan birini (veya kendi geliştirici ürününüzün içine bir kodlama yardımcı pilotu) oluşturuyorsanız bu sayfa model menüsünü, gerçek maliyeti ve gecikme bütçesini sunar.
Kod iş akışları için model menüsü
- Claude Haiku 4.5 (
claude-haiku-4-5) — otomatik tamamlama (tamamlama başına yaklaşık $0,0001-0.0005). Gecikme lideri; sağlayıcıyı doğrudan çağırmayla eşleşen akışlı ilk token süresi - Claude Sonnet 5 (
claude-sonnet-5) — kod tabanıyla sohbet, çok dosyalı düzenlemeler, ajan döngüleri. 1M başına $1,40 / $7,00 ile Cursor düzeyinde iş gücü - Claude Opus 5 (
claude-opus-5) — derin inceleme, mimari eleştiri, güvenlik denetimi. Daha yavaş (P50 yaklaşık 3 sn), ancak 1M başına $3,50 / $17,50 ile en güçlü akıl yürütücü - GPT-5.6 Sol (
gpt-5-6-sol) — OpenAI'nin kod için ayarlanmış modeli: benzer kalite, farklı üslup tercihleri
İki temel akış
import json
from openai import OpenAI
client = OpenAI(api_key="sk-kn-...", base_url="https://api.kunavo.com/v1")
# Code completion (autocomplete-as-you-type)
def complete(file_content: str, cursor_offset: int, file_path: str) -> str:
before = file_content[:cursor_offset]
after = file_content[cursor_offset:]
resp = client.chat.completions.create(
model="claude-haiku-4-5", # FAST for IDE latency
messages=[
{"role": "system", "content": (
"Complete the code at the cursor. Output ONLY the inserted "
"text — no markdown, no explanation."
)},
{"role": "user", "content": (
f"<file path=\"{file_path}\">\n{before}<CURSOR>{after}\n</file>"
)},
],
max_tokens=200,
stop=["<CURSOR>", "</file>"],
)
return resp.choices[0].message.content
# Code review (heavier model). Claude enforces a json_schema
# response_format; json_object it does not.
REVIEW = {
"type": "object",
"properties": {
"comments": {"type": "array", "items": {
"type": "object",
"properties": {"file": {"type": "string"},
"line": {"type": "integer"},
"comment": {"type": "string"}},
"required": ["file", "line", "comment"],
"additionalProperties": False,
}},
"verdict": {"type": "string", "enum": ["approve", "request_changes"]},
},
"required": ["comments", "verdict"],
"additionalProperties": False,
}
def review(diff: str, conventions: str) -> dict:
resp = client.chat.completions.create(
model="claude-opus-5",
messages=[
{"role": "system", "content": [{
"type": "text",
"text": conventions, # team style guide, security policy
"cache_control": {"type": "ephemeral"},
}]},
{"role": "user", "content": f"Review this diff.\n\n{diff}"},
],
response_format={"type": "json_schema",
"json_schema": {"name": "review", "schema": REVIEW}},
max_tokens=2000,
)
return json.loads(resp.choices[0].message.content)Özelliğe göre gecikme bütçesi
- Satır içi otomatik tamamlama: TTFT <200ms olmalıdır. Claude Haiku 4.5. Çıktıyı akışla gönderin, imleç hareket ettiğinde durdurun
- Kod tabanıyla sohbet: TTFT <500ms kabul edilebilir. Sonnet + akış. Yanıtı oluşturuldukça gösterin
- Çok dosyalı düzenleme / yeniden düzenleme: 5-30 sn normaldir. İlerlemeyi gösterin, arka planda çalıştırın ve farkı inceleme için sunun
- PR incelemesi: 10-60 sn kabul edilebilir. Derin analizi Opus gerçekleştirsin; sonucu uygulanabilir yorumlar biçiminde sunun
Bir kod ürünü için maliyet ekonomisi
Geliştirici başına aylık gerçekçi tüketim (yoğun kullanıcı):
- Günde yaklaşık 500 tamamlama × Haiku yaklaşık $0,0003 = günde $0,15 = ayda $4-5
- Günde yaklaşık 30 sohbet oturumu × Sonnet yaklaşık $0,05 = günde $1,50 = ayda $30-45
- Haftada yaklaşık 3 PR incelemesi × Opus yaklaşık $0,30 = haftada $1 = ayda $4
- Yoğun güç kullanıcısı: API maliyetlerinde ayda yaklaşık $40-55
- Ortalama kullanıcı: ayda yaklaşık $10-15
Çoğu kod yapay zekâsı ürünü kullanıcı başına aylık $20 ücret alır — kâr marjı için alan vardır, ancak yoğun kullanım yapan kullanıcılarda bu alan dardır. İstem önbelleğe alma çok önemlidir: çalışma alanı bağlamı (dosya yapısı, kurallar, son dosyalar) önbelleğe alınır; her çağrıda yalnızca o anki düzenleme bağlamı yenidir. Girdilerde %50-70 tasarruf sağlar. Önbelleğe alma kurulumu.
Kopyalanabilecek mimari kalıplar
- FIM (Fill-in-Middle) istemi: "buradan tamamla" demek yerine
before<CURSOR>aftergönderin; böylece model her iki tarafı da kullanır - Durdurma dizileri:
stop=["<CURSOR>", "</file>", "```\n"], modelin istenen tamamlamanın ötesinde içerik uydurmasını önler - Çok dosyalı düzenlemeler için araç kullanımı: modelden tek yanıtta 5 dosya çıktısı istemeyin. Yapılandırılmış düzenlemeler üretmesi için
tools=[{name: 'edit_file', ...}]kullanın; bunları atomik olarak uygulayın - Akış üzerinden spekülatif kod çözme: ilk yaklaşık 50 token'ı gelir gelmez gösterin; kullanıcılar tam yanıt tamamlanmadan bile doğru olanı seçer
Sağlayıcılar arasında saniyeler içinde geçiş
Kunavo, OpenAI'nin API iletişim biçimiyle uyumludur. Yardımcınızı OpenAI SDK'sı üzerinde oluşturduysanız base_url değerini değiştirerek Claude ve GPT'ye aynı kod üzerinden erişebilirsiniz. Geçiş için OpenAI SDK'sı ile Claude çağırma bölümüne bakın.
Başlangıç: /app/signup — $10 yüklemeyle başlayan kullandıkça öde modeli (yaklaşık 30.000 otomatik tamamlama çağrısı), bakiyenin süresi dolmaz. Uç nokta referans dokümantasyonu /docs/chat, Anthropic'e özgü Messages API ise /docs/messages adresindedir.
SSS
Bir AI kodlama asistanının yoğun kullanıcısının API maliyeti ne kadardır?
Kullanıcı başına $20 fiyatlandırmada aylık yaklaşık $40–55. Bu marj ancak istem önbellekleme girdi maliyetini %50–70 düşürdüğü için mümkündür.
Kodlama asistanının hangi işlevinde hangi model kullanılmalı?
Satır içi otomatik tamamlamada ilk tokena kadar geçen süre 200ms'nin altında olmalıdır; bu, Claude Haiku 4.5'e işaret eder. Kod tabanıyla sohbet için 500ms'nin altı gerekir; bu da Claude Sonnet 4.6'dır. PR incelemesinde 10–60 saniye kabul edilebilir, bu yüzden Claude Opus 4.7 uygundur.
Otomatik tamamlama istemleri nasıl biçimlendirilmelidir?
Fill-in-Middle istemini kullanın: modelin imlecin her iki tarafını da görmesi için isteği before<CURSOR>after biçiminde düzenleyin ve taşmayı önlemek için stop=['<CURSOR>', '</file>'] ayarlayın.
Bir asistan çok dosyalı düzenlemeleri nasıl ele almalı?
Modelden birkaç dosyanın tüm içeriğini tek yanıtta dökmesini istemek yerine tools=[{name:'edit_file', ...}] gibi bir araç tanımı gönderin ve düzenlemeleri atomik olarak uygulayın.