Haziran 17 2026

DSPy ile Prompt Mühendisliğine Veda: Algoritmik Prompt Optimizasyonu

Yapay zeka dünyasında son dönemde herkesin dilinde bir kelime var: Prompt Mühendisliği. Ancak dürüst olalım; saatlerce “Sen bir dünya klası yazarsın…” diye başlayıp sonu gelmeyen talimatlar yazmaktan, o sihirli kelimeleri ararken kaybolmaktan yorulmadık mı? İşte bu noktada Stanford Üniversitesi’nin geliştirdiği DSPy rehberi imdadımıza yetişiyor. Artık elle yazılan, en ufak model güncellemesinde çöken kırılgan promptlar yerine, programatik ve kendi kendini güncelleyen bir prompt optimizasyonu sürecine geçiyoruz. Bu yazıda, modern yapay zeka kodlama dünyasını kökten değiştirmeyi vadeden dspy vs prompt engineering savaşını mercek altına alacak ve DSPy’ın arkasındaki mantığı pratik örneklerle inceleyeceğiz.

[Görsel: Karmaşık prompt metinleri arasında kaybolmuş bir yazılımcının, düzenli ve şık bir kod arayüzüne geçişini gösteren illüstrasyon]

Prompt Mühendisliği Neden Tıkandı?

Mevcut yapay zeka geliştirme süreçlerinde büyük bir yapısal sorun var: “Kırılganlık”. Bugün GPT-4 için yazdığınız ve harika çalışan 500 kelimelik o detaylı prompt, yarın model güncellendiğinde veya daha ucuz olan Llama-3 modeline geçmek istediğinizde tamamen çöp olabiliyor. Prompt yazmak, mühendislikten ziyade modern simyacılığa benziyor; neyi değiştirdiğinizde neden çalıştığını tam olarak bilemiyorsunuz.

İşte “Neden böyle?” sorusunun cevabı burada gizli: LLM’leri (Büyük Dil Modelleri) metinsel şablonlarla yönlendirmeye çalışıyoruz, oysa onları birer yazılım bileşeni olarak görmeliyiz. DSPy (Declarative Self-improving Language Programs, pythonic tarzda beyan edilen ve kendini geliştiren dil programları), LLM entegrasyonlarını “metin manipülasyonu” olmaktan çıkarıp “programlama” haline getiriyor. Tıpkı PyTorch’un yapay sinir ağlarındaki ağırlıkları otomatik optimize etmesi gibi, DSPy de LLM’lere giden promptları otomatik olarak optimize ediyor.

DSPy Nedir? Temel Kavramlar

DSPy’ı anlamak için geleneksel yaklaşımları bir kenara bırakıp üç temel kavrama odaklanmamız gerekiyor:

  • Signatures (İmzalar): Prompt yazmak yerine, sistemin ne yapacağını deklaratif olarak tanımlarsınız. Örneğin: "doküman -> özet" veya "soru, bağlam -> cevap" gibi. Promptun nasıl görüneceğini DSPy halleder.
  • Modules (Modüller): LLM çağrılarını gerçekleştiren şablonlardır. Klasik bir LLM çağrısı (Predict), adım adım düşünme (ChainOfThought) veya araç kullanımını yöneten (ReAct) modüller hazır olarak sunulur.
  • Optimizers / Teleprompters (Optimizasyon Araçları): İşte işin sihirli kısmı. Elinizdeki birkaç örnek veriyi kullanarak, hedeflediğiniz imza için en ideal promptu ve “few-shot” örnekleri otomatik olarak seçip oluşturan algoritmalardır.

[Görsel: DSPy’ın Signature, Module ve Optimizer katmanlarının birbiriyle nasıl haberleştiğini gösteren akış şeması]

Uygulamalı Test: Klasik Prompt vs DSPy

Sözü daha fazla uzatmayalım ve teoriyi pratiğe dökelim. Basit bir duygu analizi ve sınıflandırma senaryosunu ele alalım. Önce kütüphanemizi kuralım:

pip install dspy-ai

Ardından, DSPy ile bir model tanımlayalım ve basit bir sınıflandırıcı oluşturalım. Bu testte yerel olarak çalıştırabileceğimiz ücretsiz bir model olan Ollama (Llama-3) veya OpenAI API kullanabiliriz.

import dspy

# LLM Konfigürasyonu (Yerel Ollama veya OpenAI kullanabilirsiniz)
# Biz burada kolaylık olsun diye OpenAI kullanıyoruz ancak ücretsiz alternatifleri de mevcut.
lm = dspy.OpenAI(model='gpt-3.5-turbo', api_key="YOUR_API_KEY")
dspy.settings.configure(lm=lm)

# 1. Signature (İmza) Tanımlama
class DuyguAnalizi(dspy.Signature):
    """Metnin duygu durumunu analiz et ve sadece POZİTİF, NEGATİF veya NÖTR olarak etiketle."""
    metin = dspy.InputField(desc="Analiz edilecek kullanıcı yorumu")
    duygu = dspy.OutputField(desc="Duygu kategorisi")

# 2. Modül Kullanımı (Chain of Thought - Düşünce Zinciri ile)
siniflandirici = dspy.ChainOfThought(DuyguAnalizi)

# 3. Çalıştırma
sonuc = siniflandirici(metin="Kertenkerem blogundaki yeni yazılım rehberleri gerçekten çok akıcı ve bilgilendirici.")
print("Düşünce Süreci:", sonuc.rationale)
print("Sonuç:", sonuc.duygu)

Bu kodda hiçbir “Prompt” yazmadık. Modelin nasıl davranacağını, hangi formatta çıktı vereceğini DuyguAnalizi sınıfıyla (Signature) belirledik. DSPy, kullandığımız modele göre arka planda en uygun prompt şablonunu kendisi oluşturdu. Eğer yarın gpt-3.5-turbo yerine Llama-3 kullanırsak, tek yapmamız gereken en üstteki konfigürasyon satırını değiştirmek olacak; kodun geri kalanı aynen çalışmaya devam edecek.

Karşılaştırma Tablosu: dspy vs prompt engineering

Yöntemleri daha net görebilmek adına iki yaklaşımı doğrudan karşılaştıralım:

Özellik Geleneksel Prompt Mühendisliği DSPy ile Programlama
Model Değişikliği Tüm promptların baştan yazılması ve test edilmesi gerekir. Sadece model tanımı değiştirilir, kod yapısı korunur.
Optimizasyon Tamamen manuel, deneme-yanılma ve tahmin odaklıdır. Algoritmik ve veri setine dayalı otomatik optimizasyon.
Kırılganlık Çok yüksek. Çıktı formatı sıklıkla bozulabilir. Çok düşük. Tip güvenliği ve yapılandırılmış çıktılar.
Geliştirme Hızı Başlangıçta hızlı, ölçeklendikçe aşırı yavaş ve hantal. Başlangıçta öğrenme eğrisi var, ölçeklendikçe çok hızlı.

Maliyetler ve Ücretsiz Alternatifler

DSPy tamamen açık kaynak kodlu ve kullanımı tamamen ücretsiz bir kütüphanedir. Ancak arka planda çalışan LLM’lerin bir maliyeti olabilir. Eğer ticari kapalı kaynaklı API’lar (OpenAI, Anthropic, Cohere) kullanırsanız, optimizasyon süreçleri (Teleprompter çalışırken birden fazla deneme yapacağı için) API kullanım faturanızı bir miktar artırabilir.

Hiç para harcamadan test etmek isterseniz:
Ollama aracılığıyla bilgisayarınıza indireceğiniz yerel modelleri (Llama-3, Mistral, Phi-3) DSPy ile tamamen ücretsiz olarak entegre edebilirsiniz. Ayrıca Google AI Studio üzerinden alacağınız ücretsiz Gemini API anahtarı da testleriniz için harika bir alternatif olacaktır.

Artıları ve Eksileri ile DSPy

Süper Güçleri (Artıları):

  • Sistemik Yaklaşım: Promptları birer kod satırı gibi derleyip optimize eder.
  • Geleceğe Yatırım: Yarın yeni bir LLM çıktığında projenizi 5 dakikada yeni modele göç ettirebilirsiniz.
  • Daha Az Kod, Daha Çok İş: Karmaşık mantıksal zincirleri (RAG sistemleri, ajanlar) yönetmek inanılmaz kolaylaşır.

Zayıf Yönleri (Eksileri):

  • Öğrenme Eğrisi: Python sınıflarına, nesne yönelimli programlamaya uzak olanlar için başlangıçta kafa karıştırıcı olabilir.
  • Veri İhtiyacı: Optimizasyon araçlarının gerçek performansını göstermesi için en az 10-20 adet örnek veri setine (input-output çifti) ihtiyacınız vardır.

Son Söz: Simyadan Kimyaya Geçiş

DSPy, yapay zeka kodlama süreçlerini bir sanat dalı olmaktan çıkarıp gerçek bir mühendislik disiplinine dönüştürüyor. Eğer sadece basit bir metin özeti almak istiyorsanız, ChatGPT arayüzüne prompt yazmaya devam edebilirsiniz. Ancak bir yazılımın içine entegre olacak, binlerce kez çalışacak ve farklı modellerle uyumlu olması gereken kararlı sistemler inşa ediyorsanız, DSPy sizin için kaçınılmaz bir durak olacaktır.

Kollarınızı sıvayıp kendi yerel modelinizle ilk DSPy optimizasyonunuzu denemenin tam zamanı. Bir sonraki LLM Tools incelememizde görüşmek üzere!

Category: Genel | LEAVE A COMMENT
Haziran 13 2025

Cursor IDE ve Claude ile Kod Yazma Sürecini 10 Kat Hızlandırma Rehberi

Yazılım dünyasında kartlar yeniden dağıtılıyor ve bu sefer masada oldukça dişli bir oyuncu var. Eskiden saatlerce Stack Overflow’da “bu hata neden kaynaklanıyor?” diye debelenirken, bugün yapay zeka asistanımıza sadece hata çıktısını verip saniyeler içinde çözümü alabiliyoruz. İşte tam bu noktada, geleneksel editörlerin pabucunu dama atma iddiasıyla ortaya çıkan cursor ide ve onun en büyük yardımcısı claude sonnet sahneye giriyor. Eğer siz de yapay zeka kodlama dünyasında kaybolmadan, üretkenliğinizi gerçekten artırmak ve modern bir ai developer olmak istiyorsanız, doğru yerdesiniz. Bu rehberde, lafı hiç dolandırmadan, kendi deneyimlerimize dayanarak bu ikilinin neler yapabildiğini inceleyeceğiz.

Cursor IDE Nedir? Neden VS Code’u Bırakalım?

Cursor, aslında popüler kod editörü VS Code’un “fork” edilmiş, yani çatalı alınarak üzerine yapay zeka entegrasyonu yapılmış bir versiyonu. Bu ne anlama geliyor? VS Code’da kullandığınız tüm eklentiler, temalar ve kısayollar Cursor’da da aynen çalışıyor. Geçiş yapmak tam olarak 30 saniyenizi alıyor.

Peki neden geçelim? Çünkü Cursor, yapay zekayı bir eklenti (Copilot gibi) olarak değil, editörün tam kalbine konumlandırıyor. Kod yazarken editörün projenizin tamamını (context) okuyabilmesi, sizinle birlikte dosyaları tarayıp hata ayıklayabilmesi muazzam bir konfor sunuyor.

[Görsel: Cursor IDE genel arayüzü ve entegre chat panelinin görünümü]

Claude 3.5 Sonnet: Neden GPT-4o Değil de Claude?

Yapay zeka modelleri arasında kıyasıya bir rekabet var ancak dürüst olalım: Kod yazma, mantık yürütme ve talimatları takip etme konusunda claude sonnet şu an pazarın tartışmasız lideri. GPT-4o hızlı ve pratik olabilir ancak karmaşık kod bloklarını analiz ederken veya “bunu şu mimariye göre baştan yaz” dediğinizde Claude Sonnet çok daha az hata (hallucination) yapıyor ve çok daha temiz, okunabilir kodlar üretiyor.

İki Dev Güç Birleşince Ne Oluyor?

Cursor IDE içinde Claude Sonnet’i aktif ettiğinizde, artık sadece bir otomatik tamamlayıcıya sahip olmuyorsunuz. Karşınızda projenizin tüm klasör yapısını bilen, yazdığınız kütüphaneleri anlayan ve sizinle bir Senior Developer gibi tartışabilen bir iş ortağı buluyorsunuz.

Gerçek Bir Senaryo: Sıfırdan Bir Express.js API ve Caching Mekanizması

Hemen teoriden pratiğe geçelim. Amacımız, harici bir hava durumu API’sinden veri çeken ve bu verileri Redis ile cache’leyen basit bir Express.js API’si yazmak. Cursor ve Claude ikilisini kullanarak bunu nasıl dakikalar içinde yapabileceğimizi görelim.

Öncelikle boş bir klasör açıp Cursor içindeki “Composer” modunu (Ctrl + I veya Cmd + I) açıyoruz ve Claude’a şu komutu veriyoruz:

# Projeyi başlatmak ve gerekli paketleri kurmak için terminali kullanacağız
npm init -y
npm install express axios redis redis-om dotenv

Ardından Composer ekranına şu talimatı yazıyoruz: “Bana harici bir hava durumu API’sinden veri alan, gelen verileri 1 dakika boyunca Redis’te tutan ve hata yönetimini düzgün yapan bir Node.js Express yapısı kur. Proje yapısı modüler olsun.”

[Görsel: Cursor Composer arayüzünde Claude Sonnet ile çoklu dosya oluşturma süreci]

Claude saniyeler içinde bizim için server.js, config/redis.js ve controllers/weatherController.js dosyalarını oluşturuyor ve içlerini dolduruyor. Üstelik sadece kodu yazmakla kalmıyor, .env dosyasında hangi değişkenleri tanımlamamız gerektiğini de söylüyor.

// controllers/weatherController.js dosyasından bir kesit
const axios = require('axios');
const redisClient = require('../config/redis');

exports.getWeather = async (req, res) => {
    const { city } = req.params;
    const cacheKey = `weather:${city.toLowerCase()}`;

    try {
        // Önce cache kontrolü
        const cachedData = await redisClient.get(cacheKey);
        if (cachedData) {
            return res.status(200).json({ source: 'cache', data: JSON.parse(cachedData) });
        }

        // Cache'te yoksa API'ye istek at
        const response = await axios.get(`https://api.weatherapi.com/v1/current.json?key=${process.env.API_KEY}&q=${city}`);
        const weatherData = response.data;

        // Redis'e 60 saniye süreyle kaydet
        await redisClient.setEx(cacheKey, 60, JSON.stringify(weatherData));

        return res.status(200).json({ source: 'api', data: weatherData });
    } catch (error) {
        return res.status(500).json({ error: error.message });
    }
};

Biz tek satır kod yazmadık. Sadece mimariyi belirledik ve süreci yönettik. İşte gerçek bir ai developer çalışma pratiği tam olarak budur.

Yapay Zeka ile Kodlamanın Altın Kuralları

Cursor kullanırken hüsrana uğramamak için şu kurallara dikkat etmelisiniz:

  • @ Sembolünü Etkin Kullanın: Cursor’da chat kısmına @Files yazarak sadece ilgili dosyayı, @Web yazarak güncel internet dökümanlarını yapay zekaya bağlam olarak sunabilirsiniz.
  • Küçük Adımlarla İlerleyin: Yapay zekadan tek seferde devasa bir e-ticaret sitesi yazmasını isterseniz başarısız olur. Önce veritabanı şemasını yazdırın, sonra auth sistemini, ardından sepet işlemlerini adım adım kodlatın.
  • Körlemesine Güvenmeyin: Claude harika kod yazar ama mantık hataları yapabilir. Kodu her zaman test edin ve ne yazdığını anlamaya çalışın.

Karşılaştırma Tablosu: Artılar ve Eksiler

Cursor ve Claude kombinasyonunun gerçekçi bir değerlendirmesini yapalım:

Özellik Artıları (+) Eksileri (-)
Kod Kalitesi Claude Sonnet sayesinde mükemmel refactoring ve temiz kod. Bazen çok eski kütüphane versiyonlarını önerebiliyor.
Hız ve Entegrasyon VS Code eklentileriyle tam uyumlu, öğrenme eğrisi sıfır. Büyük projelerde indeksleme yaparken sistem kaynağı tüketimi artabiliyor.
Çoklu Dosya Yönetimi Composer ile tek seferde 5-6 dosyayı birden güncelleyebilme. Çok karmaşık değişikliklerde bazen kodları birbirine karıştırabiliyor.

Fiyatlandırma ve Ücretsiz Alternatifler

Gelelim işin duygusal kısmına. Cursor IDE, aylık 20 premium Claude/GPT isteğiyle birlikte ücretsiz bir plan (Hobby) sunuyor. Ancak aktif olarak kullanacaksanız, aylık 20$ olan Pro üyeliği almanız gerekiyor. Bu üyelik size aylık 500 hızlı yapay zeka isteği hakkı veriyor.

Bütçem yok diyenler için ücretsiz alternatifler:

  1. VS Code + Continue.dev: Tamamen açık kaynaklı bir eklentidir. Ollama ile bilgisayarınızda yerel çalışan modelleri veya Gemini’nin ücretsiz API anahtarını bağlayarak ücretsiz kullanabilirsiniz.
  2. Roo Code (Eski adıyla Roo Cline): VS Code üzerinde çalışan, Cursor benzeri dosya oluşturma yeteneklerine sahip harika bir açık kaynaklı yapay zeka asistanı.

Son Söz: Geliştirici Olarak Rolümüz mü Değişiyor?

Evet, değişiyor. Artık sadece “kod yazan” kişi olmak yetmiyor. Cursor ve Claude gibi araçlar sayesinde artık “sistem tasarlayan”, “yön veren” ve “kod kalitesini denetleyen” birer orkestra şefi haline geliyoruz. Bu dönüşüme ne kadar hızlı adapte olursanız, sektörde o kadar kalıcı ve değerli olursunuz. Denemekten korkmayın!

Category: Genel | LEAVE A COMMENT