Yazılım Geliştirme 4 dakika okuma

Claude veya OpenAI API ile Kendi AI Uygulamanı Yazma: Başlangıç Rehberi

LLM API'lerinin temel çalışma mantığı, ilk API isteğini gönderme, system prompt kullanımı ve basit bir Python örneğiyle kendi AI aracını kodlama.

E
Emre Cihan
· · 23 görüntüleme

Neden Sohbet Arayüzü Değil de API?

ChatGPT veya Claude'un web arayüzü, günlük kullanım için harika, ama kendi uygulamana AI entegre etmek istediğinde (bir müşteri destek botu, bir içerik üretim aracı, bir veri analiz sistemi) API'ye ihtiyacın oluyor. API, modelin yeteneklerini kendi kodunun içinden programatik olarak çağırmanı sağlıyor.

Temel Çalışma Mantığı

Bir LLM API'si temelde basit: kod tarafından bir HTTP isteği gönderiyorsun (genelde bir "mesajlar" listesiyle), model bir cevap üretip geri döndürüyor. Bu döngü, sohbet arayüzünde gördüğün etkileşimin arka planda nasıl çalıştığının ta kendisi.

İlk API İsteğini Göndermek

Basit bir Python örneği (Anthropic'in Claude API'si için):

import anthropic

client = anthropic.Anthropic(api_key="API_ANAHTARIN")

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Python'da bir liste nasıl ters çevrilir?"}
    ]
)

print(message.content[0].text)

Bu kod, modele bir soru gönderip cevabını alıyor. max_tokens parametresi, cevabın en fazla ne kadar uzun olabileceğini sınırlıyor — daha uzun cevaplar için bu değeri artırman gerekiyor.

System Prompt: Asistanın "Kişiliğini" Belirleme

Çoğu API, bir "system prompt" (sistem talimatı) belirlemene izin veriyor — bu, kullanıcının her mesajında tekrar açıklamak zorunda kalmayacağın, sabit bir bağlam/davranış kuralı:

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system="Sen bir Python öğretmenisin. Cevaplarını her zaman basit bir örnek kodla destekle, karmaşık jargon kullanma.",
    messages=[
        {"role": "user", "content": "Decorator nedir?"}
    ]
)

Bu sayede, uygulamanın her kullanıcı sorgusunda aynı "kişiliği" ve davranış kalıbını koruyor — bu, tutarlı bir kullanıcı deneyimi için kritik.

Konuşma Geçmişini Yönetmek

API'ler varsayılan olarak "hafızasız" — her istek bağımsız. Bir sohbet deneyimi (önceki mesajları hatırlayan) oluşturmak istiyorsan, konuşma geçmişini kendi kodunda tutup her istekte tekrar göndermen gerekiyor:

conversation = [
    {"role": "user", "content": "Merhaba, adım Ahmet."},
    {"role": "assistant", "content": "Merhaba Ahmet! Nasıl yardımcı olabilirim?"},
    {"role": "user", "content": "Adımı hatırlıyor musun?"}
]

message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    messages=conversation
)

Bu listeyi her yeni mesajda güncelleyip tekrar göndermek, modelin "hafızası" varmış gibi davranmasını sağlıyor — aslında her seferinde tüm geçmişi yeniden okuyor.

Streaming: Cevabı Parça Parça Almak

Uzun cevaplarda, kullanıcının tüm cevabın tamamlanmasını beklemek yerine, kelimeler üretildikçe ekranda görmesi (ChatGPT/Claude arayüzlerindeki "yazıyor" efekti) çok daha iyi bir deneyim sunuyor. Çoğu API bunu streaming ile destekliyor — cevap, tek seferde değil, küçük parçalar halinde geliyor ve uygulaman bu parçaları geldikçe ekrana yazdırabiliyor.

Maliyet Yönetimi

API kullanımı, model boyutuna ve işlenen token (kelime parçası) sayısına göre ücretlendiriliyor. Pratik ipuçları:

  • Doğru model boyutunu seç: Basit görevler için küçük/hızlı modeller yeterli olabilir, en pahalı/güçlü modeli her şey için kullanmak gereksiz maliyet yaratır
  • max_tokens'ı gereksiz yüksek tutma: Kısa bir cevap bekliyorsan, bu limiti düşük tutmak hem maliyeti hem gecikmeyi azaltır
  • Prompt'u optimize et: Gereksiz uzun system prompt'lar veya tekrar eden bağlam, her istekte ekstra token maliyeti demek

Basit Bir Uygulama Fikri: Metin Özetleyici

Yukarıdaki parçaları birleştirerek, kullanıcının yapıştırdığı bir metni özetleyen basit bir araç kurulabilir: kullanıcı arayüzü (web formu) → metni al → API'ye "bu metni 3 cümlede özetle" system prompt'uyla gönder → cevabı ekrana bas. Bu, API tabanlı bir AI uygulamasının en temel iskeleti — buradan RAG, agent mimarisi gibi daha karmaşık yapılara genişletilebilir (bkz. ilgili yazılarım).

Özet

LLM API'leri, sohbet arayüzünün arkasındaki gücü kendi uygulamana taşımanı sağlıyor. Temel istek/cevap döngüsünü, system prompt kullanımını ve konuşma geçmişi yönetimini anladıktan sonra, kendi AI destekli aracını kodlamak aslında oldukça erişilebilir bir başlangıç noktası.

Paylaş: Twitter / X
E
Emre Cihan
Sistem Yöneticisi · Maker · Elektronik Meraklısı

İlgili yazılar

Yazılım Geliştirme
Python mu JavaScript mi? Hangisini Öğrenmelisin?
1 dk
Yazılım Geliştirme
Programlama Öğrenmek İçin Matematik Bilmek Gerekir mi?
1 dk
Yazılım Geliştirme
Yazılımcı Olmak İçin Üniversite Şart mı?
1 dk
Yazılım Geliştirme
2026'da En Çok Kazandıran Yazılım Alanları
1 dk