Ekim 27 2026

Model-Agnostic İş Akışları: Farklı LLM’leri Tek Bir Arayüzde Zincirleme (Chaining)

Yapay zeka dünyasında son bir yıldır garip bir kabilecilik var: Kimi sadece Claude 3.5 Sonnet övüyor, kimi GPT-4o olmadan parmağını bile kıpırdatmıyor. Oysa üretim bandına indiğimizde acı gerçek yüzümüze çarpıyor: Her işi mükemmel yapan tek bir llm henüz icat edilmedi. Günümüzün modern ai tools ekosisteminde asıl güç, tek bir modele tapınmakta değil; modellerin en iyi yönlerini bir araya getiren akıllı bir otomasyon kurgulamakta yatıyor.

Bu yazıda, tek bir modele bağımlı kalmadan (“model-agnostic”), Claude’un akıcı üslubu ile GPT-4’ün analitik zekasını aynı pipeline üzerinde nasıl zincirleyeceğimizi (chaining) test edeceğiz. Üstelik karmaşık kod yığınlarına boğulmadan, popüler iş akışı aracı n8n üzerinden somut bir senaryo kuracağız.

“Model-Agnostic” Ne Demek ve Neden Umurumuzda Olmalı?

Model-agnostic, en basit tanımıyla kurduğunuz sistemin arkasındaki yapay zeka sağlayıcısına (OpenAI, Anthropic, Google ya da yerel bir Mistral modeli) körü körüne bağımlı olmamasıdır. Bugün ChatGPT API’ı çökerse ya da Anthropic fiyatlarına %50 zam yaparsa iş akışınız duruyor mu? Duruyorsa, “vendor lock-in” tuzağındasınız demektir.

Bir diğer mesele de her modelin uzmanlık alanının farklı olması. OpenAI modelleri genellikle katı JSON çıktıları üretmekte, fonksiyon çağırmada (function calling) ve mantıksal veri analizinde bir tık daha kararlıyken; Anthropic’in Claude modelleri insansı metin üretimi, yaratıcı yazarlık ve nüans yakalama konusunda bariz şekilde daha doğal hissettiriyor. Peki neden birini seçmek zorunda kalalım?

Test Senaryosu: Kaotik Veriden Akıcı Bültene

Lafı uzatmadan laboratuvara geçelim. Şöyle bir problemimiz olsun: Müşterilerden gelen dağınık geri bildirimleri (e-postalar, destek biletleri, anketler) toplayıp yönetim ekibi için haftalık şık bir özet bültene dönüştürmek istiyoruz.

Bu senaryoda tek bir LLM kullandığımızda genellikle iki sorunla karşılaşıyoruz:
1. GPT-4’e “samimi ve akıcı bir dille özetle” dediğimizde yine de hafif kurumsal ve mekanik bir ton alıyoruz.
2. Claude’a ham veriyi atıp “bunu önce kategorize et, puanla, sonra yaz” dediğimizde bazen format kurallarını esnetebiliyor.

Çözüm: Görevi ikiye bölüp zincirlemek (chaining).

[Görsel: n8n üzerinde Webhook tetikleyicisi, ardından OpenAI Node’u ve devamında Claude Node’unun bağlandığı iş akışı şeması]

Adım 1: GPT-4o ile Analiz ve Sınıflandırma

İlk aşamada ham metni OpenAI’ın GPT-4o modeline paslıyoruz. Burada iyi bir prompt engineering dokunuşuyla modelden sadece ve sadece geçerli bir JSON çıktısı istiyoruz. Modelin edebiyat yapmasını değil, duyguları -1 ile +1 arasında puanlamasını ve ana problemleri etiketlemesini bekliyoruz.

POST https://api.openai.com/v1/chat/completions
{
  "model": "gpt-4o",
  "response_format": { "type": "json_object" },
  "messages": [
    {"role": "system", "content": "Gelen metni analiz et ve {'kategori': '', 'duygu_skoru': 0, 'oncelik': ''} formatında JSON dön."}
  ]
}

Adım 2: Claude 3.5 Sonnet ile Hikayeleştirme

GPT-4o işini bitirdiğinde elimizde tertemiz, filtrelenmiş bir JSON objesi var. Şimdi bu JSON’ı alıp Claude 3.5 Sonnet’e devrediyoruz. Claude’a verdiğimiz komut basit: “Bu analitik veriyi al ve şirket içi Slack kanalında paylaşılacak, esprili, motive edici ama sorunları da net gösteren bir mini bültene çevir.”

Sonuç? GPT-4’ün hata yapmayan mantık süzgecinden geçmiş, Claude’un o nefis kaleminden çıkmış hibrit bir rapor. İki model de en iyi bildiği işi yaptı.

Bu Düzeni Nasıl Kurduk? n8n ile Pratik Entegrasyon

Bunu Python script’leriyle LangChain kullanarak da yapabilirdiniz. Ancak işi operasyonel hale getirmek ve görsel olarak takip edebilmek için n8n biçilmiş kaftan. n8n, API’ları birbirine lego gibi bağlamanızı sağlayan açık kaynaklı bir iş akışı otomasyon aracı.

Kurulum mantığı oldukça sade:

  1. Bir Webhook ya da Cron node’u akışı tetikler.
  2. OpenAI Node’u ham veriyi alır, yapılandırılmış analizi çıkarır.
  3. Araya koyacağınız minik bir Code Node’u (JavaScript) veriyi kontrol eder; hata varsa modeller arasında fallback mekanizması çalıştırır.
  4. Anthropic Node’u temiz veriyi alıp nihai metni üretir.
  5. Sonuç Slack, E-posta ya da Notion’a otomatik postalanır.

[Görsel: n8n Node ayarlarında Prompt alanına bir önceki GPT adımından gelen JSON parametrelerinin eklendiği arayüz görünümü]

Zincirleme Yapmanın Artıları ve Eksileri

Her teknolojik yaklaşım gibi bu sistem de sihirli bir değnek değil. Masaya getirdiği avantajlar kadar, beraberinde getirdiği yükler de var.

Avantajlar Dezavantajlar / Zorluklar
Her modelin en güçlü yönünden faydalanırsınız. İki farklı API çağrısı nedeniyle gecikme (latency) süresi artar.
Tek bir sağlayıcının çökmesine karşı B planı (fallback) kurabilirsiniz. Hata ayıklama (debugging) zorlaşır; zincirin nerede koptuğunu bulmak gerekir.
Daha tutarlı ve formatına sadık çıktılar üretir. İki farklı API için token maliyeti doğar.

Maliyetler ve Ücretsiz Alternatifler

İki model birden kullanınca “Cüzdanı OpenAI ve Anthropic’e mi bırakacağız?” diye sorabilirsiniz. İşin matematiği düşündüğünüz kadar korkutucu değil:

  • API Maliyeti: GPT-4o mini ve Claude 3.5 Haiku gibi daha ufak modelleri zincirlediğinizde, 1.000 adet raporun maliyeti 1 doları bile bulmuyor. Ön analizi ucuz modelle yapıp, vitrin metnini pahalı modele emanet etmek ciddi tasarruf sağlıyor.
  • Araç Maliyeti (n8n): n8n Cloud versiyonu aylık yaklaşık 20€’dan başlıyor. Ancak güzelliği şurada: n8n fair-code lisanslıdır. Kendi sunucunuza (örneğin 5 dolarlık bir Hetzner/DigitalOcean VPS) Docker ile kurarsanız, arayüz için sıfır lira ödersiniz.
  • Alternatif Araçlar: Benzer chaining işlemlerini kod yazmadan yapmak için tamamen açık kaynaklı ve ücretsiz olan Flowise veya Dify araçlarını da tercih edebilirsiniz. Eğer no-code dünyasının kolaylığına alışıksanız Make.com da iyi bir opsiyondur fakat operasyon sayısı arttıkça maliyeti katlanır.

Sonuç: Tek Bir Modele Mahkûm Değilsiniz

Yapay zekayı bir çalışan gibi düşünün. Muhasebe müdürünüze pazarlama metni yazdırmadığınız gibi, yaratıcı metin yazarınıza da karmaşık finansal verileri ayıklatmazsınız. LLM’ler için de mantık aynı.

Model-agnostic düşünmek, yarın GPT-5 çıktığında veya yerel açık kaynak bir model Claude’u tahtından indirdiğinde sisteminizi 5 dakika içinde güncelleyebilme lüksü tanır. İşinizi tek bir yapay zekaya emanet etmek yerine, modelleri bir orkestra gibi yöneten iş akışları kurmaya bugünden başlayın.

Category: Genel | LEAVE A COMMENT
Ekim 25 2026

LLM Pipeline’larında Veri Kirliliği ve RegEx Güvenliği: Yapay Zeka Çıktılarını Temizlerken Nerede Patlıyoruz?

Yazılım dünyasında neredeyse elli yıldır değişmeyen gayriresmi bir kural vardır: Çözemediğin bir metin ayrıştırma problemi mi var? Yapıştır bir RegEx (düzenli ifade), arkana yaslan. Ancak modern NLP sistemleri ve hayatımızın merkezine oturan LLM (Büyük Dil Modelleri) dünyasında işler artık bu kadar basit değil. Yapay zeka tarafından üretilen veya işlenen metinleri geleneksel yöntemlerle temizlemeye kalktığınızda, işin ucu ciddi bir güvenlik zafiyetine ve çöken sunuculara varabiliyor.

Kendi pipeline’larımda yaşadığım birkaç “Neden bu sunucu saatlerdir %100 CPU kullanıyor?” krizinden sonra meseleyi masaya yatırmaya karar verdim. Gelin, LLM çıktılarının klasik yöntemleri nasıl bozguna uğrattığını testlerle inceleyelim.

Klasik Çekiç, Kuantum Çiviye Karşı: RegEx Nerede Çuvallıyor?

Geleneksel yazılımda veri öngörülebilirdir. Bir formdan gelen e-posta adresi bellidir: Birkaç harf, bir @ işareti, biraz daha harf ve bir nokta. Ancak bir LLM’e “Bana metindeki iletişim bilgilerini çıkar” dediğinizde, model size sadece e-posta vermez; bazen Markdown blokları, bazen açıklama cümleleri, bazen de görünmez Unicode karakterleri hediye eder.

İşte tam bu noktada geliştiriciler hemen şu refleksi gösterir: “Araya bir regex atar, temizlerim.” Fakat LLM çıktılarının doğası üç temel problem barındırır:

  • Sıfır Genişlikli (Zero-Width) Karakterler: LLM’ler internetten beslenir. Kopyalanan metinlerin içinde görünmeyen boşluklar (örneğin \u200B) veya sağdan sola yazım (RTL) işaretleri bulunabilir. Sizin “temiz” sandığınız regex bu karakterleri atlarsa, veri tabanınız sessizce kirlenir.
  • Halüsinasyon Kaynaklı Format Bozulmaları: Modele “Sadece saf JSON ver” deseniz bile, model bazen keyifli bir günündeyse cevabın başına ```json ekler, sonuna da Umarım bu yardımcı olmuştur! iliştirir.
  • Tipografik Tırnak Tuzağı: Model düz tırnak (") yerine akıllı tırnak (“ veya ”) ürettiğinde, basit bir JSON parser veya regex pattern’i anında iflas eder.

[Görsel: Bir LLM’in ürettiği metin içinde gizlenen sıfır genişlikli boşlukların ve bozuk tırnak işaretlerinin hex editöründeki görünümü]

Korkulu Rüya: ReDoS (Regular Expression Denial of Service)

İşin en tehlikeli boyutu güvenlik. Bir LLM pipeline’ında kullanıcı girdisi önce modele gidiyor, modelden çıkan yanıt da sizin yazdığınız bir regex filtresinden geçiyorsa, kapınızı ReDoS saldırılarına ardına kadar açmış olabilirsiniz.

ReDoS, kötü kurgulanmış bir regex ifadesinin, karmaşık veya beklenmedik uzunluktaki bir metinle karşılaştığında “catastrophic backtracking” (yıkıcı geri izleme) yaşamasıdır. Regex motoru eşleşmeyi bulabilmek için milyarlarca kombinasyon dener ve işlemciyi kilitler.

Küçük bir laboratuvar testi yapalım. Masum görünen şu deseni ele alalım:

import re
import time

# Masum görünen ama tehlikeli bir regex
pattern = re.compile(r"^(a+)+$")

# LLM'in beklenmedik şekilde ürettiği uzun ve hatalı bir string
dirty_llm_output = "a" * 30 + "!"

start = time.time()
pattern.match(dirty_llm_output)
print(f"İşlem süresi: {time.time() - start:.2f} saniye")

Sadece 30 karakterlik bu metin, bilgisayarınızda saniyeler süren bir donmaya sebep olur. Karakter sayısını 35’e çıkardığınızda işlem dakikalar alır, 40 yaptığınızda ise sunucunuz fişi çeker. LLM’in sentetik veri üretirken araya sıkıştırdığı saçma bir tekrar dizisi, tüm API servisinizi çökertebilir.

[Görsel: Terminal ekranında CPU kullanımının %100’e fırladığı ve ReDoS yüzünden kilitlenen bir Python regex process’i]

Peki Ne Yapacağız? Modern Temizleme Stratejileri

LLM çıktılarını temizlemek için artık regex cambazlığı yapmak yerine, problemi kaynağında çözen modern yaklaşımlara geçmek şart. Test ettiğim ve pipeline’larda güvenle çalışan üç ana yöntem:

1. Şema Tabanlı Zorlama (Grammar-Guided Generation)

Modelin kafasına göre çıktı üretmesine izin verip sonra arkasını süpürmek yerine, modeli üretirken kısıtlayın. Outlines veya llama.cpp’nin Grammar özellikleri, modelin token üretirken sadece geçerli bir JSON veya belirli bir regex formatına uymasını zorunlu kılar. Kural dışı tek bir karakter bile üretilemez.

2. Doğrulama Katmanları (Pydantic ve Instructor)

Python ekosistemindeyseniz Instructor kütüphanesi harikalar yaratıyor. OpenAI veya yerel modellerin fonksiyon çağırma (function calling) yeteneğini kullanarak çıktıyı doğrudan bir Pydantic modeline dönüştürüyor. Tip uyuşmazlığı varsa, regex ile uğraşmak yerine modeli otomatik olarak uarıp hatayı düzelttiriyor.

3. Güvenli Regex Motorları

Eğer regex kullanmaktan başka çareniz yoksa, Python’ın yerleşik re modülü yerine Google’ın geliştirdiği re2 kütüphanesini kullanın. re2, backtracking mekanizmasını sınırlandırarak doğrusal zamanda çalışır; yani ReDoS saldırılarına karşı bağışıktır.

Hangi Yaklaşım Ne Kadar Mantıklı?

Testlerimde öne çıkan araçların artılarını ve eksilerini şöyle özetleyebiliriz:

Yöntem / Araç Güvenlik Geliştirme Hızı Artıları Eksileri
Klasik RegEx Düşük Hızlı (Başlangıçta) Ek kütüphane gerektirmez, hafiftir ReDoS riski, görünmez karakterleri kaçırma
Google re2 Yüksek Hızlı ReDoS imkansızdır, güvenlidir Lookaround gibi bazı gelişmiş özellikleri desteklemez
Instructor + Pydantic Çok Yüksek Orta Tipe dayalı tam veri garantisi, otomatik düzeltme Modelin function calling desteğine bağımlı
Guardrails AI Çok Yüksek Yavaş (Öğrenme eğrisi var) Kurumsal doğrulama kuralları, hazır kalıplar Pipeline’a ek gecikme (latency) ekleyebilir

Fiyat ve Ücretsiz Alternatifler

Bu çözümleri projenize entegre ederken cebinizden büyük paralar çıkmak zorunda değil:

  • Tamamen Ücretsiz & Açık Kaynak: google-re2, Outlines ve Instructor kütüphaneleri 0 TL. Tamamen açık kaynak ve MIT lisanslıdır. Sadece tükettiğiniz LLM API maliyetiyle çalışırlar.
  • Guardrails AI: Açık kaynaklı temel kütüphanesi ücretsizdir. Ancak ekipler için sundukları bulut tabanlı hazır hub çözümleri, kullanım hacmine göre ücretlendirilen freemium bir modele sahiptir.
  • Yerel Çözüm (En Ucuzu): Ollama veya vLLM ile kendi sunucunuzda açık kaynaklı bir model (örneğin Llama 3 veya Mistral) koşturup üzerine Outlines eklerseniz, hiçbir API faturası ödemeden tamamen güvenli bir temizleme pipeline’ı kurabilirsiniz.

Son Söz: Çekici Yere Bırakma Zamanı

Yapay zeka modelleri deterministik (her zaman aynı sonucu veren) makineler değildir; doğaları gereği olasılıksaldır. Olasılıksal bir sistemin çıktısını, 1970’lerden kalma katı kurallarla çalışan geleneksel RegEx desenleriyle evcilleştirmeye çalışmak sunucunuza yapacağınız en büyük haksızlıktır.

Pipeline’ınızda regex kullanmaya devam edebilirsiniz; ancak bunu ilk savunma hattı değil, şema kontrollü filtrelerin arkasındaki son güvenlik ağı olarak konumlandırmak en mantıklı strateji olacaktır.

Category: Genel | LEAVE A COMMENT
Ekim 10 2026

Long-Running AI Agents İçin Runtime Seçimi: Cloud Function vs. Dedicated Worker

Modern bir LLM tabanlı uygulama geliştirirken ilk reflex genellikle aynıdır: Birkaç satır kod yaz, yerelde çalıştır, ardından modern cloud architecture standartlarına uyup kodu bir serverless fonksiyona at. Ancak basit sohbet botlarından çıkıp otonom AI agents dünyasına adım attığınızda, seçtiğiniz runtime ortamı birdenbire en büyük kabusunuz haline gelebilir.

Kendi kendine web taraması yapan, kod derleyen, hata aldığında strateji değiştiren ve nihai bir rapor hazırlayan o harika ajanınız, sunucuya çıktığı anda 504 Gateway Timeout duvarına çarpıyorsa yalnız değilsiniz. Bu yazıda lafı dolandırmadan deneyeceğiz, ölçeceğiz ve şu sorunun cevabını arayacağız: Uzun süren (long-running) ajan işleri için hafif Cloud Function modelleri mi, yoksa arkada sessizce çalışan Dedicated Worker makineleri mi doğru tercih?

“5 Dakikada Biter Sanmıştım”: Serverless Neden Çuvallıyor?

Geleneksel web mimarisinde sunucusuz fonksiyonlar (AWS Lambda, Google Cloud Run functions vb.) harika bir felsefeye sahiptir: İstek gelir, kod birkaç yüz milisaniyede çalışır, veritabanına yazar ve yok olur. Sıfır boşta bekleme maliyeti, pürüzsüz ölçeklenme.

Fakat çok adımlı bir yapay zeka ajanı geleneksel bir web isteği gibi davranmaz. Bir ajan döngüsü kabaca şuna benzer:

Düşün -> Tool Seç -> Web Sayfasına Git (Bekle 4sn) -> Sayfayı Oku -> LLM'e Sor (Bekle 12sn) -> Kod Yaz -> Sandbox'ta Çalıştır (Bekle 8sn) -> Hata Aldı, Başa Dön...

Burada CPU sürekli tam gaz çalışmaz; vaktin %80’i dış API çağrılarını ve ağ gecikmelerini beklemekle geçer. İşte serverless mimarinin tıkandığı üç kritik nokta:

  • Sert Zaman Aşımı (Hard Timeouts): Birçok API gateway 30 saniyede bağlantıyı keser. AWS Lambda en fazla 15 dakika çalışabilir. Kapsamlı bir araştırma yapan ajanın 20 dakika sürmesi işten bile değildir.
  • Durumsuzluk (Statelessness) Laneti: Fonksiyon kapandığı an belleğindeki tüm context uçar. Ajanın o anki çalışma belleğini (scratchpad) harici bir Redis veya veritabanına taşımak ciddi bir ek gecikme yaratır.
  • Bekleme Süresine Para Ödemek: Serverless servisler genelde tahsis edilen RAM ve geçen milisaniye üzerinden fatura keser. LLM’in token üretmesini boş boş beklerken faturanız tıkır tıkır yazmaya devam eder.

[Görsel: Cloud Function üzerinde 30. saniyede kesilen API gateway timeout hatası ve agent’ın yarım kalmış düşünce zinciri log ekranı]

Test Senaryosu: Derin Araştırma Ajanı Masada

Konuyu netleştirmek için laboratuvara indik. Basit bir senaryo kurguladık: Ajanımız verilen bir şirket hakkında 10 farklı web sayfasını scrape edecek, sayfaları parseleyip bir LLM’e (GPT-4o) özetletecek ve sonuçları birleştirip tek bir analiz raporu üretecek.

Bu ajanı iki farklı ortamda aynı görevle 10’ar kez koşturduk:

  1. Kurulum A: AWS Lambda (2 GB RAM, Node.js runtime).
  2. Kurulum B: Dedicated Worker (Hetzner üzerinde en ucuz CPX11 VPS + Docker).

Sonuç: AWS Lambda tarafında 10 denemenin 4’ü ağ gecikmeleri ve API rate limit bekleme süreleri yüzünden 15 dakikalık hard timeout sınırına takılıp çöpe gitti. Çalışan 6 testin ortalama maliyeti, sürekli açık tutulan küçük bir VPS’in günlük masrafını ikiye katladı. Dedicated Worker ise işleri sırayla, hiç acele etmeden, kesintisiz bir biçimde 6-8 dakika aralığında başarıyla tamamladı.

Karşılaştırma: Cloud Function vs. Dedicated Worker

Mesele sadece “çalıştı / çalışmadı” ikiliği değil. Mimari kararlar bakımından iki yaklaşımın net bir röntgenini çekelim:

Kriter Cloud Function (Serverless) Dedicated Worker (VPS / Container)
Maksimum Çalışma Süresi Kısıtlı (Genelde 15 dk sınır) Sınırsız (Günlerce sürebilir)
State & Bellek Yönetimi Zor; her adımda dış DB’ye yazılmalı Kolay; süreç boyunca RAM’de tutulabilir
Ölçeklenme (Scaling) Otomatik, sıfırdan binlere anında Kuyruk (queue) yönetimi ve manuel yapılandırma gerektirir
Maliyet Modeli Kullanım başına ödeme (Bekleme dahil) Sabit aylık ödeme
Lokal Araçlar (Browser, Sandbox) Çok zor (Lambda layer boyut limitleri) Çok kolay (Playwright, Docker-in-Docker rahatça çalışır)

Modern Çözüm: Hibrit Mimari ve Workflow Motorları

“Peki her agent için devasa sunucular mı kiralamak zorundayız?” Tabii ki hayır. 2024 ve sonrasında modern bulut dünyası bu ikilemi çözmek için yeni nesil ara katmanlar geliştirdi.

1. Durable Execution Motorları (Temporal, Inngest, Trigger.dev)

Bu araçlar ajanın kodunu adım adım (step-by-step) yürütür. Ajan bir web sayfasını beklerken veya LLM yanıt üretirken süreci durdurur (suspend eder). Yanıt geldiğinde kaldığı değişken değerleriyle devam eder. Böylece hem serverless gibi kaynak tasarrufu yaparsınız hem de timeout endişeniz kalmaz.

[Görsel: Trigger.dev panelinde adım adım duraklatılarak (wait for event) ilerleyen bir AI agent akışının zaman çizelgesi]

2. Container-Based On-Demand Runtimes (Fly.io, Modal)

Özellikle Modal veya Fly.io Machines gibi yapılar, bir ajan tetiklendiğinde bir Docker konteynerini saniyeler içinde ayağa kaldırır. Konteyner 45 dakika boyunca ajanın işini bitirmesini bekler, iş bitince kendini imha eder. Klasik serverless gibi kullanılır ama timeout limitleri saatlerle ölçülür.

Cüzdan Raporu: Fiyatlar ve Ücretsiz Alternatifler

Mühendislik kararları günün sonunda bütçeye bağlanır. Projenizin büyüklüğüne göre maliyet tablosu şu şekilde şekilleniyor:

  • Sıfır Bütçe / Hobi Projeleri:
    • Fly.io: Ücretsiz planda sunduğu kaynaklarla ufak bir worker konteynerini sürekli açık tutabilirsiniz.
    • AWS Lambda Free Tier: Ayda 1 milyon istek ücretsiz. Ancak ajanınız 5 dakikadan uzun sürmüyorsa ve browser otomasyonu gibi ağır kütüphaneler barındırmıyorsa.
  • Giriş Seviyesi Üretim (Production):
    • Hetzner Cloud (CPX11/CPX21): Ayda ~4 – 8 Euro bandında sabit ücret. Arkasına bir BullMQ veya Celery kuyruğu bağlayarak yüzlerce ajan görevini kafanız rahat yönetirsiniz.
    • Modal: Her ay 30 dolar ücretsiz kullanım kredisi veriyor. GPU ve uzun süren CPU işleri için şu an piyasadaki en pratik ortam.

Hangisini Seçmelisiniz? Karar Ağacı

Yol haritanızı çizmek için şu basit formülü kullanabilirsiniz:

Eğer ajanın yapacağı iş deterministik ise, yani 2-3 API çağrısıyla en geç 30 saniyede biteceği belliyse: Serverless / Cloud Function tercih edin. Altyapı yönetmekle uğraşmayın.

Ancak ajanın ne zaman duracağı önceden kestirilemiyorsa, kendi kendine internette gezinecekse (Playwright/Puppeteer), lokalde Python kodu çalıştırıp çıktıları analiz edecekse: Hiç düşünmeden bir Dedicated Worker veya Workflow Engine (Inngest/Temporal) mimarisine geçin. Timeout hatalarını debug etmekle harcayacağınız saatler, birkaç dolarlık sunucu faturasından çok daha pahalıdır.

Category: Genel | LEAVE A COMMENT
Ekim 3 2026

LLM Orchestration: LangChain Yerine Neden Haystack veya LlamaIndex Seçmelisiniz?

Kendi yapay zeka uygulamanızı geliştirmeye karar verdiğinizde ilk karşınıza çıkan araç muhtemelen LangChain olur. Günümüzün hızlı tempolu ai development dünyasında, bir llm (büyük dil modeli) ile harikalar yaratmak istiyorsanız bir orkestrasyon aracına ihtiyacınız var. Ancak LangChain tek ve her zaman en iyi seçenek mi? Pratikte işler prototip aşamasından çıkıp gerçek dünyaya adım attığında, tablo epey değişiyor.

Bu yazıda LangChain, Haystack ve LlamaIndex üçlüsünü laboratuvar masasına yatırdım. Sözleri değil, pratikteki davranışları karşılaştırdım. Hangisi hangi senaryoda hayat kurtarır, hangisi saç baş yoldurur? Gelin yakından bakalım.

Önce Temel Soru: “LLM Orchestration” Neden Var?

Bir dil modeline basitçe soru sorup cevap almak için bir framework’e ihtiyacınız yok; basit bir API çağrısı yeterli. Sorun şu: Model şirketinizin iç dokümanlarını bilmiyor, hafızası sınırlı, harici veri tabanlarına bağlanması gerekiyor ve bazen adım adım mantık yürütmek zorunda.

İşte orchestration burada devreye giriyor. Orkestra şefi gibi; veriyi alır, parçalar, vektör veri tabanına gömer, doğru bağlamı LLM’e iletir ve nihai yanıtı kullanıcıya sunar. Bu sürece genel olarak RAG (Retrieval-Augmented Generation) diyoruz.

[Görsel: RAG mimarisinin veri kaynağından LLM yanıtına kadar olan adımlarını özetleyen sade bir akış şeması]

LangChain: İsviçre Çakısı Sendromu

LangChain, bu ekosistemin tartışmasız popüler çocuğu. Neredeyse her yeni çıkan aracı ilk gün destekler, topluluğu devasadır ve aklınıza gelebilecek her entegrasyona sahiptir.

Fakat bir sorun var: Aşırı soyutlama (over-abstraction).

Basit bir zincir (chain) kurmak harika hissettirir. Ancak üretim ortamında o zincirin ortasında bir hata aldığınızda, beş katman derinlikteki kütüphane kodlarının içinde kaybolursunuz. LangChain sık sık kırıcı güncellemeler (breaking changes) yapar. Üç ay önce yazdığınız kodun bugün çalışmama ihtimali hiç de az değil. Kısacası: Prototip çıkarmak için mükemmel, ama kurumsal ölçekte stabilite arıyorsanız riskli.

LlamaIndex: Verinizle Konuşmanın En Zarif Yolu

Eğer projenizin kalbinde veriyi doğru aramak ve bulmak yatıyorsa, LlamaIndex sahneye çıkmalı. Eskiden adı GPT Index olan bu araç, özellikle dokümanları parçalama, indeksleme ve sorgulama üzerine odaklanmış bir veri çatısıdır.

Gerçek Senaryo: 500 Sayfalık Finans Raporları

LangChain ile 500 sayfalık karmaşık tablolar ve dipnotlar içeren PDF dosyalarını sorgulamaya kalktığınızda, parçalama (chunking) mantığını baştan inşa etmeniz gerekir. LlamaIndex ise doğrudan bu problem için doğdu.

from llama_index.core import SimpleDirectoryReader, VectorStoreIndex

# Dokümanları oku ve otomatik indeksle
documents = SimpleDirectoryReader("raporlar").load_data()
index = VectorStoreIndex.from_documents(documents)

# Doğrudan akıllı sorgu motoruna çevir
query_engine = index.as_query_engine()
response = query_engine.query("2023 4. çeyrek operasyonel kârı ne kadar?")
print(response)

LlamaIndex, veriyi hiyerarşik olarak indeksler. Yani sorunuza yanıt ararken sadece en yakın metin bloğunu değil, dokümanın genel bağlamını da hesaba katar. “Gelişmiş RAG” yapacaksanız ilk durağınız burası olmalı.

Haystack: Kurumsal Dünyanın Sessiz Tankı

deepset tarafından geliştirilen Haystack, gösterişten uzak ama inanılmaz derecede sağlam bir framework. Haystack 2.0 ile birlikte baştan aşağı yenilenen boru hattı (pipeline) mimarisi, onu kurumsal projeler için açık ara en güvenli liman haline getirdi.

Haystack’in en büyük artısı: Grafik tabanlı, açık ve öngörülebilir olması. Bir pipeline kurduğunuzda hangi bileşenin (component) hangi girdiyi alıp hangi çıktıyı verdiğini tam olarak bilirsiniz. Sihirli siyah kutular yoktur; ne yazdıysanız o çalışır.

[Görsel: Haystack 2.0 pipeline arayüzünde bileşenlerin birbirine bağlanışını gösteren teknik ekran görüntüsü]

Neden Haystack?

  • Hata Ayıklama (Debugging) Kolaylığı: Hatanın nerede koptuğunu anında yakalarsınız.
  • Geleneksel Arama ile Hibrit Yaklaşım: Yalnızca vektör araması değil, Elasticsearch ve OpenSearch gibi BM25 tabanlı anahtar kelime aramalarıyla harmanlamada en olgun araçtır.
  • Üretim Odaklılık: Kod tabanı istikrarlıdır. Haftada bir tüm mimariyi değiştiren radikal kararlar almazlar.

Doğrudan Karşılaştırma

Hangisini ne zaman seçmeniz gerektiğine dair pratik bir özet tablosu hazırladım:

Özellik LangChain LlamaIndex Haystack
Ana Odak Genel amaçlı ajanlar ve prototipler Derinlemesine RAG ve veri işleme Üretime hazır arama ve kurumsal pipeline
Öğrenme Eğrisi Başlangıç kolay, uzmanlaşma kaotik Orta seviye Orta, mimarisi oldukça mantıklı
Stabilite Düşük (hızlı değişiyor) Orta – İyi Çok Yüksek
Topluluk & Eklenti Çok Geniş Geniş ve Hızla Büyüyor Daha niş ama odaklı kurumsal kitle

Fiyatlandırma ve Ücretsiz Alternatifler

Bahsettiğim üç framework’ün çekirdek kütüphaneleri de tamamen açık kaynaklı ve ücretsizdir (Apache 2.0 veya MIT lisanslarıyla dağıtılır). Kendi sunucunuzda tek kuruş ödemeden çalıştırabilirsiniz.

Maliyet yaratan kısım, bu yapıların üzerine kurulan bulut izleme ve veri yönetim araçlarıdır:

  • LangChain ekosistemi: Pipeline takibi için LangSmith kullanır (ücretsiz katmanı küçük projeler için yeterli, kurumsal için ücretli).
  • LlamaIndex ekosistemi: Kurumsal veri ayrıştırma için LlamaCloud ve LlamaParse sunar (günlük belirli sayfa sayısı ücretsiz, sonrasında kullandıkça öde).
  • Haystack ekosistemi: Bulut ortamında tam yönetilen hizmet için deepset Cloud adında kurumsal bir platforma sahiptir.

Tamamen yerel (on-premise) kalmak istiyorsanız; Ollama ile yerel LLM’leri çalıştırıp, vektör veri tabanı olarak Qdrant veya Chroma kullanarak sıfır maliyetle bu araçların tümünü deneyimleyebilirsiniz.

Sonuç: Hangisini Tercih Etmelisiniz?

Bir hackathon’daysanız ya da aklınıza gelen bir fikri hafta sonu hemen test etmek istiyorsanız, zengin entegrasyon havuzu nedeniyle LangChain hâlâ pratik bir kestirmedir.

Ancak derdiniz binlerce karmaşık PDF’i, tabloyu ya da SQL verisini LLM’e en doğru bağlamla yedirmekse hiç düşünmeden LlamaIndex tercih edin.

Eğer kurumsal bir yapıda, canlıya çıktığında patlamayacak, bakımı kolay, performansı izlenebilir bir arama veya soru-cevap sistemi inşa ediyorsanız adresiniz kesinlikle Haystack olmalıdır. AI dünyasında gösterişli olan değil, ayakta kalan kazanır.

Category: Genel | LEAVE A COMMENT
Eylül 27 2026

Yazılım Geliştirmede ‘Stage-Gated’ Disiplin: LLM Çıktılarını Kontrol Altına Alın

Modern yazılım geliştirme dünyasında artık hemen hepimiz bir LLM (Büyük Dil Modeli) ile yan yana kod yazıyoruz. İster Cursor kullanın ister Claude veya Copilot; yapay zekanın birkaç saniyede yüzlerce satır kod üretmesi büyüleyici bir his. Ancak dürüst olalım: O üretilen kodların arkasında bazen var olmayan kütüphane bağımlılıkları, sinsi mantık hataları ve ciddi güvenlik açıkları saklanıyor. Hızlı yazıyoruz ama arkamızı toplamaya çalışırken daha çok yoruluyoruz. İşte bu noktada modern yazılıma eski ama çok sağlam bir disiplin geri dönüyor: Stage-Gated yaklaşımı.

Bu yazıda, geleneksel mühendislikten ödünç aldığımız bu “aşamalı kapı” sistemini yapay zeka destekli bir pipeline içine nasıl entegre edebileceğimizi, bizzat kurup test ettiğim bir senaryo üzerinden anlatıyorum. Amacımız yapay zekayı yavaşlatmak değil; yapay zeka güvenliği standartlarından taviz vermeden kodu üretime (production) taşımak.

Şelale (Waterfall) Mezardan mı Çıktı? “Stage-Gated” Nedir?

Eski usul Waterfall (Şelale) metodolojisini hatırlarsınız: Bir faz bitmeden diğeri başlamaz, arada kalın onay kapıları bulunur. Çevik (Agile) dünyada bundan nefret ettik çünkü hızı kesiyordu. Fakat işin içine modeller ve tahmin edilemez çıktılar girince dengeler değişti.

Stage-Gated mekanizması, üretilen bir çıktının bir sonraki aşamaya geçebilmesi için belirli kriterleri (“kapıları”) geçmek zorunda olduğu bir filtreleme modelidir. Bir LLM’e “Bana şu API servisini yaz” dediğinizde kodu doğrudan ana dala (main branch) göndermezsiniz. Kod, tanımladığınız kapılardan sırayla geçer; herhangi bir kapıda takılırsa ya LLM’e düzeltmesi için geri fırlatılır ya da doğrudan reddedilir.

[Görsel: Bir LLM kod üretim pipeline’ının 4 aşamalı kapıdan (Sözdizimi, Güvenlik, Test, İnsan Onayı) geçişini gösteren şematik diyagram]

Test Masası: 4 Kapılı Bir Pipeline Mimarisi

Teoriyi bir kenara bırakıp işi pratiğe dökelim. Deneme amacıyla yerel ortamımda FastAPI ile basit bir servis geliştiren bir akış kurdum. Modeli (Claude 3.5 Sonnet) bir komut satırı aracıyla tetikledim ve kodu şu 4 kapıdan geçirdim:

Kapı 1: Sözdizimi (Syntax) ve Tip Kontrolü

LLM’ler bazen parantezleri unutur, bazen var olmayan metodları çağırır. İlk kapımız en ucuz ve en hızlı olanı: AST (Soyut Sözdizim Ağacı) kontrolü ve mypy tip denetimi. Modelin çıktısı bu aşamada Python tarafından derlenemiyorsa sonraki aşamaya geçiş izni verilmez.

Kapı 2: Statik Güvenlik Analizi (SAST)

Model, istemeden de olsa SQL Injection açığı üretmiş olabilir mi? Ya da hardcoded bir API anahtarı bırakmış mı? Bu kapıda açık kaynaklı statik analiz araçları (örneğin Semgrep veya Bandit) devreye girer. Güvenlik açığı tespit edilirse pipeline kırılır.

# Semgrep ile yerel pipeline kontrolü çalıştırma
semgrep scan --config auto --error ./generated_code/

Kapı 3: Otomatik Birim Testleri ve “Self-Healing”

İşte en sevdiğim bölüm. Eğer kod ilk iki kapıyı geçtiyse, önceden tanımlanmış test senaryoları (Pytest) çalıştırılır. Test başarısız olursa, test hata raporu otomatik olarak tekrar LLM’e gönderilir: “Kodun şu testten geçmedi, hata mesajı bu. Kodu tekrar düzenle.” Buna sektörde self-healing (kendi kendini onarma) döngüsü deniyor. En fazla 3 deneme hakkı tanıyoruz.

Kapı 4: İnsan Gözü (Human-in-the-Loop)

Bütün testlerden geçen kod bir Pull Request (PR) olarak açılır. Son kapı daima bir insandır. Ancak bu aşamaya gelen kod zaten sözdizimi, güvenlik ve temel iş kuralları açısından elendiği için inceleyen mühendisin harcadığı süre dakikalar yerine saniyelere iner.

[Görsel: GitHub Actions üzerinde çalışan Semgrep ve Pytest adımlarının yeşil tik aldığı, insan onayı bekleyen PR ekran görüntüsü]

Gerçek Bir Deney: SQL Injection Girişimi Kapıya Takılınca

Pipeline’ı test etmek için Claude’a bilerek hafif yönlendirici bir prompt verdim: “Kullanıcı ID’sine göre kullanıcı bilgilerini getiren ham SQL sorgulu bir fonksiyon yaz.”

Model, f-string kullanarak sorguyu birleştiren tipik bir güvensiz kod bloğu oluşturdu. Süreç şöyle işledi:

  • Kapı 1 (Syntax): Kod geçerli Python sözdizimine sahipti. Geçti.
  • Kapı 2 (Semgrep): Kırmızı alarm! python.lang.security.audit.sqli kuralı tetiklendi. Parametreli sorgu kullanılmadığı için kod derhal durduruldu.
  • Geri Besleme: Pipeline, Semgrep hata çıktısını prompt’a ekleyip modeli uyardı.
  • Sonuç: İkinci denemede model kodu SQLAlchemy ORM parametreli sorgusuyla düzeltti ve Kapı 2’den başarıyla geçti.

Artılar ve Eksiler: Bu Zahmete Değer mi?

Her güvenlik katmanı beraberinde bir sürtünme getirir. Karar vermenizi kolaylaştırmak için gözlemlerimi özetledim:

Avantajlar Dezavantajlar
Halüsinasyon kaynaklı bağımlılık ve hatalar sisteme sızamaz. CI/CD süreçleri biraz daha uzun sürer (ortalama +40-90 saniye).
Yapay zeka güvenliği şirket politikaları seviyesinde garantiye alınır. LLM API maliyetleri (tekrar denemeler yüzünden) %15-20 artabilir.
Kıdemsiz geliştiricilerin fark edemediği açıklar erken yakalanır. İlk kurulum ve doğru kural setlerini yazmak teknik efor ister.

Hangi Araçları Kullanabilirsiniz? (Fiyat ve Alternatifler)

Bu yapıyı kurmak için servet harcamanıza gerek yok. Açık kaynak dünyasında harika ücretsiz seçenekler mevcut:

  • Guardrails AI (Ücretsiz / Açık Kaynak): LLM çıktılarını belirli Pydantic şemalarına ve regex/güvenlik kurallarına zorlamak için biçilmiş kaftan. Kendi sunucunuzda tamamen ücretsiz çalıştırabilirsiniz.
  • Semgrep (Freemium): Statik kod analizi için sektör standardı haline geldi. Açık kaynak versiyonu CLI üzerinden yerelde veya GitHub Actions içinde tamamen ücretsizdir. Ekip yönetimi sunan Semgrep Cloud ise aylık kullanıcı başı yaklaşık $40 civarından başlar.
  • NeMo Guardrails (NVIDIA – Ücretsiz): Özellikle diyalog ve mantık akışlarını kısıtlamak isteyenler için geliştirilmiş güçlü bir açık kaynak kütüphane.
  • SonarQube Community Edition (Ücretsiz): Kod kalitesini ve teknik borcu ölçmek için kendi sunucunuza kurabileceğiniz ücretsiz alternatif.

Son Söz

Yapay zekanın kod yazma hızına hayran olmamak elde değil. Ancak kontrolsüz hız, teknik borç dağları ve güvenlik kabusları yaratır. Stage-gated yaklaşımı, Agile pratikleri yavaşlatmak için değil; yapay zekayı sorumsuz bir stajyerden güvenilir bir takım arkadaşına dönüştürmek için ihtiyacımız olan emniyet kemeridir. Henüz denemediyseniz, en azından bir GitHub Action içine basit bir linter + Semgrep kapısı koyarak ilk adımı atmanızı şiddetle tavsiye ederim.

Category: Genel | LEAVE A COMMENT
Haziran 8 2026

Claude ile Kod Yazmak: Prompt’tan Çalışan Uygulamaya

Yazılım dünyası garip ve bir o kadar da heyecan verici bir yere doğru evriliyor. Eskiden saatlerce Stack Overflow forumlarında hata kodu ararken, bugün yapay zekayla (ai) kahve eşliğinde sohbet ederek kod yazıyoruz. Peki, Anthropic firmasının göz bebeği olan claude gibi modern bir llm (büyük dil modeli), gerçekten bizim yerimize hatasız kodlama yapabilir mi? Yoksa her şey sadece süslü bir prompt engineering pazarlamasından mı ibaret? Bu yazıda büyük vaatleri bir kenara bırakıp, Claude’u masaya yatırıyor ve sıfırdan çalışan bir uygulamayı nasıl ayağa kaldıracağımızı adım adım deniyoruz.

Neden Claude? (Ve Neden Şimdi?)

Piyasada GPT-4o, Gemini ve Llama gibi devasa rakipler varken neden Claude? Özellikle yazılımcılar arasında Claude 3.5 Sonnet modelinin bu kadar popüler olmasının arkasında iki temel neden var: Bağlam yönetimi (Context Window) ve mantıksal akıl yürütme yeteneği.

Bağlam penceresi, bir modelin tek seferde ne kadar bilgiyi aklında tutabildiğini belirler. Claude, kod blokları arasındaki ilişkileri ve projenin genel yapısını rakiplerine göre çok daha iyi kavrıyor. Kodu sadece “tamamlamıyor”, projenin mimarisini anlayarak mantıklı öneriler sunuyor.

Sistem Promptu ve Context Yönetimi: Claude’a “Kim Olduğunu” Söyleyin

Doğrudan “Bana bir yapılacaklar listesi uygulaması yaz” derseniz, Claude size ortalama, jenerik ve muhtemelen hatalarla dolu bir kod sunacaktır. İyi bir çıktı almanın sırrı, ona doğru bir rol (System Prompt) vermektir.

Claude API kullanırken ya da arayüz üzerinden çalışırken şu tarz bir sistem tanımı yapmak işleri tamamen değiştirir:

Sen kıdemli bir Python ve React geliştiricisisin. 
Yazdığın kodlar temiz, okunabilir (clean code prensiplerine uygun) ve optimize olmalı. 
Hataları açıklamadan önce doğrudan çalışan kodu ver, ardından kısa açıklamalar ekle.

Bu basit dokunuş, yapay zekanın “gevezelik etmesini” engeller ve doğrudan sonuca odaklanmasını sağlar.

Gerçek Bir Deney: Python ile CLI Harcama Takipçisi

Sözü daha fazla uzatmayalım ve Claude’un yeteneklerini test edelim. Amacımız, harcamalarımızı terminal üzerinden kaydeden, bunları bir JSON dosyasında tutan ve basit bir rapor sunan Python tabanlı bir uygulama yazmak.

Claude’a verdiğimiz ilk prompt şu oldu: “Bana kullanıcıdan harcama adı ve tutar alan, bunları local bir JSON dosyasında saklayan ve ‘rapor’ komutuyla toplam harcamayı gösteren basit bir Python CLI aracı yaz.”

Claude’un bize saniyeler içinde ürettiği kod tam olarak şuydu:

import json
import os

DB_FILE = "harcamalar.json"

def verileri_yukle():
    if not os.path.exists(DB_FILE):
        return []
    with open(DB_FILE, "r", encoding="utf-8") as file:
        return json.load(file)

def verileri_kaydet(veriler):
    with open(DB_FILE, "w", encoding="utf-8") as file:
        json.dump(veriler, file, indent=4, ensure_ascii=False)

def harcama_ekle(isim, miktar):
    veriler = verileri_yukle()
    veriler.append({"isim": isim, "miktar": float(miktar)})
    verileri_kaydet(veriler)
    print(f"✓ {isim} ({miktar} TL) başarıyla eklendi!")

def rapor_goster():
    veriler = verileri_yukle()
    toplam = sum(item["miktar"] for item in veriler)
    print("\n--- HARCAMA RAPORU ---")
    for item in veriler:
        print(f"- {item['isim']}: {item['miktar']} TL")
    print(f"----------------------\nToplam: {toplam} TL\n")

# Basit bir döngü ile CLI yönetimi
if __name__ == "__main__":
    while True:
        islem = input("1. Harcama Ekle\n2. Rapor Göster\n3. Çıkış\nSeçiminiz: ")
        if islem == "1":
            isim = input("Harcama kalemi: ")
            miktar = input("Tutar: ")
            try:
                harcama_ekle(isim, miktar)
            except ValueError:
                print("Lütfen geçerli bir sayı girin!")
        elif islem == "2":
            rapor_goster()
        elif islem == "3":
            break
        else:
            print("Geçersiz seçim!")

Kodu kopyalayıp terminalimizde çalıştırdık. Ve bilin bakalım ne oldu? Kod ilk seferde, hiçbir kütüphane çakışması veya yazım hatası olmadan çalıştı.

[Görsel: Python CLI uygulamasının terminalde sorunsuz çalışarak harcama verilerini JSON formatında kaydettiği anın ekran görüntüsü]

Ancak bu çok temel bir uygulamaydı. “Acaba veri doğrulama (validation) kısmında patlar mı?” diye düşünüp sayı yerine harf girmeyi denedik. Claude yazdığı try-except bloğu sayesinde bu hatayı da önceden öngörmüştü. İşte Claude’u rakiplerinden ayıran “detaycılık” tam olarak bu.

Claude ile Kod Yazmanın Artıları ve Eksileri

Birkaç haftalık yoğun kullanım testlerimizin ardından, bu süreci objektif bir şekilde değerlendirmek gerekiyor.

Artıları (+) Eksileri (-)
Prototip süresini %80 azaltır. Büyük projelerde bazen bağlamı kaybedip saçmalayabilir (halüsinasyon).
Hata kodlarını (Debugging) çok hızlı çözer. API kullanımı yoğun projelerde pahalı olabilir.
Bilmediğiniz dillerde hızlıca temel atmanızı sağlar. Yazılımcıyı tembelliğe alıştırıp öğrenme sürecini köreltebilir.

Cüzdanı Üzmeyelim: Claude Fiyatlandırması ve Ücretsiz Alternatifler

Claude’u kullanmanın birkaç yolu var. İhtiyacınıza ve bütçenize göre en uygun olanı seçebilirsiniz:

  • Claude.ai Web Arayüzü: Ücretsiz seçeneği var ancak günlük limitleri oldukça katı. Claude Pro ise aylık 20$.
  • Anthropic API: Kullandıkça öde (pay-as-you-go) modeli. Küçük projeler için oldukça ucuzdur; girdiğiniz ve aldığınız token miktarına göre ücretlendirilirsiniz.

Peki ya Ücretsiz Alternatifler?

Eğer cebinizden para çıksın istemiyorsanız, şu yolları izleyebilirsiniz:

  • Cursor: Yapay zeka destekli bu kod editörü, Claude 3.5 Sonnet’i belirli bir kota dahilinde ücretsiz denemenize izin verir.
  • Hugging Face / OpenRouter: Benzer yeteneklere sahip açık kaynaklı alternatif modelleri (örneğin Llama 3) tamamen ücretsiz olarak buralarda deneyebilirsiniz.
  • Ollama (Yerel Kullanım): Bilgisayarınızın donanımı güçlüyse, yerel olarak çalışan modellerle internet bağlantısı olmadan, tamamen ücretsiz ve sınırsız kodlama yapabilirsiniz.

Son Söz: Geliştirici Koltuğu Hâlâ Sizin

Yapay zeka araçları ne kadar gelişirse gelişsin, ortaya çıkan kodun kalitesini, güvenliğini ve mimarisini denetlemek hâlâ insanın sorumluluğunda. Claude harika bir yardımcı pilot (co-pilot) ancak uçağı uçuran kaptan pilot hâlâ sizsiniz. Prompt yazma yeteneğinizi geliştirerek, sıkıcı işleri ona devredebilir ve siz sadece uygulamanızın mantığına odaklanabilirsiniz.

Category: Genel | LEAVE A COMMENT
Mayıs 21 2026

Perplexity ile Araştırma Yapmak: Google’ı Nasıl Geçiyor?

Google’da arama yapıp ilk üç sayfanın reklam, sonraki beş sayfanın ise içi boş SEO çöplüğü çıktığı o sinir bozucu anları hepimiz yaşıyoruz. İşte tam bu noktada, geleneksel arama motorlarının tahtını sallayan perplexity ve onun başını çektiği yeni nesil ai search dalgası imdadımıza yetişiyor. Klasik arama motorları bize sadece web sitelerinin adreslerini verirken, modern llm tabanlı bu sistemler doğrudan sorumuzun cevabını sentezleyip sunuyor. Peki, üretken yapay zeka dünyasının en popüler tools listelerinde zirveye oynayan bu araçla gerçekten derinlemesine bir araştırma yapmak mümkün mü? Yoksa bu da sadece geçici bir heves mi? Gelin, lafı uzatmadan doğrudan deneyimlerimize ve test sonuçlarımıza bakalım.

Perplexity Nedir ve Neden Farklı?

Klasik yapay zeka sohbet robotları (ChatGPT veya Claude gibi), eğitildikleri veri kümesine sıkışıp kalırlar. Bilgileri eski olabilir veya bilmedikleri konularda “halüsinasyon” görerek bize tamamen uydurma bilgiler sunabilirler. Perplexity ise bu sorunu temelden çözüyor. O sadece bir dil modeli değil; interneti aktif olarak tarayan, kaynakları okuyan ve size sunduğu her cümlenin yanına referans linki bırakan akıllı bir arama motoru.

Kaynak Gösterme Mekanizması: Bilgi Nereden Geliyor?

Perplexity’nin en büyük gücü, şeffaflığında yatıyor. Yazdığı her cümlenin sonuna küçük rakamlar (1, 2, 3…) yerleştiriyor. Bu rakamlara tıkladığınızda, bilginin hangi web sitesinden, hangi makaleden alındığını anında görebiliyorsunuz. “Neden böyle?” sorusunun cevabı basit: Yapay zekaya güvenmek zordur ama kaynağı doğrulamak kolaydır. Perplexity size “bana güven” demiyor, “bak, buradaki verilere dayanarak bunu söylüyorum” diyor.

[Görsel: Perplexity arayüzünde bir arama sonucu ve metin içindeki kaynak gösterim numaralarının yakın plan görünümü]

Gerçek Dünya Testleri: Perplexity İş Başında

Sözü fazla uzatmayalım ve bu aracı gerçek hayatta en çok zorlandığımız iki farklı senaryoda test edelim. Promp’larımızı hazırladık ve sonuçları raporluyoruz.

Senaryo 1: Akademik Araştırma ve Literatür Taraması

Test etmek istediğimiz konu şu oldu: “Grafen bazlı bataryaların elektrikli araçlarda (EV) kullanılmasının önündeki temel teknik engeller nelerdir?”

Bu soruyu Google’a sorduğumuzda karşımıza sponsorlu siteler, popüler teknoloji bloglarının yüzeysel yazıları ve forum tartışmaları çıkıyor. Akademik bir makaleye ulaşmak için Google Scholar’da saatler harcamamız gerekiyor.

Aynı soruyu Perplexity’nin sol alt köşesindeki “Focus” (Odak) menüsünden “Academic” modunu seçerek sorduk. Sonuç şaşırtıcı derecede temizdi:

  • Doğrudan IEEE, ScienceDirect ve arXiv üzerindeki güncel makaleleri taradı.
  • “Isıl yönetim sorunları”, “üretim maliyetleri” ve “anot stabilitesi” gibi teknik engelleri başlıklar halinde özetledi.
  • Her başlığın altına, ilgili akademik yayının linkini ve yazar isimlerini iliştirdi.

[Görsel: Perplexity’nin “Academic Focus” modu aktifken yaptığı teknik literatür taraması ekran görüntüsü]

Senaryo 2: Sıcak Gelişmeler ve Güncel Haber Takibi

Yapay zeka dünyası çok hızlı değişiyor. İkinci test sorumuz: “Son 48 saat içinde OpenAI cephesinde yaşanan en önemli yönetimsel gelişmeler nelerdir?”

Bildiğiniz gibi standart LLM modelleri güncel internet erişimi olmadan bu soruya cevap veremez. Perplexity ise “Writing” yerine “All” (Genel Arama) modunu kullanarak X (Twitter), TechCrunch ve Reuters gibi platformları anında taradı. Gelişmeleri kronolojik bir sırayla, saat saat önümüze koydu. Birbirinden farklı haber kaynaklarındaki çelişkili bilgileri bile “Bazı kaynaklar X derken, diğerleri Y olduğunu belirtiyor” şeklinde analiz ederek sundu.

Pro vs. Ücretsiz Sürüm: Kasanın Durumu Nedir?

Perplexity’yi tamamen ücretsiz olarak kullanabilirsiniz. Ancak bir de aylık 20 dolar fiyat etiketine sahip olan “Pro” sürümü bulunuyor. Peki bu parayı ödemeye gerçekten gerek var mı?

Ücretsiz sürüm, hızlı günlük aramalar ve basit sorular için fazlasıyla yeterli. Ancak iş profesyonel araştırmaya, kod yazmaya veya büyük PDF dosyalarını analiz etmeye geldiğinde Pro sürümünün sunduğu avantajlar öne çıkıyor:

  • Model Seçimi: Pro üyeler, aramayı arkada hangi yapay zeka modelinin işleyeceğini seçebiliyor. Claude 3.5 Sonnet, GPT-4o veya Perplexity’nin kendi optimize edilmiş modelleri arasında geçiş yapabiliyorsunuz. Özellikle derin analizlerde Claude 3.5 Sonnet kullanmak tam bir cankurtaran.
  • Dosya Yükleme: Pro sürümde 100 sayfalık bir finansal raporu veya PDF kitabını sisteme yükleyip, “Bu raporun 50. sayfasındaki tabloya göre şirketin borç oranı nedir?” gibi spesifik aramaları internet verileriyle birleştirerek yapabiliyorsunuz.

[Görsel: Perplexity Pro ayarlar panelinde kullanıcıya sunulan GPT-4o, Claude 3.5 Sonnet ve Llama 3 model seçenekleri]

Artılar ve Eksiler Tablosu

Her aracın olduğu gibi Perplexity’nin de zayıf ve güçlü yanları var. Yaptığımız testler sonucunda ortaya çıkan tablo şu şekilde:

Özellik Artıları (+) Eksileri (-)
Kaynak Doğruluğu Her iddiaya doğrudan tıklanabilir linkler veriyor, bilgi kirliliğini önlüyor. Bazen çok popüler ama güvenilmez blogları da kaynak olarak seçebiliyor.
Kullanım Kolaylığı Reklamsız, sade ve doğrudan sonuca odaklı arayüz. Geleneksel “görsel arama” veya “alışveriş” kategorilerinde Google kadar pratik değil.
Esneklik (Pro) Claude 3.5 Sonnet ve GPT-4o gibi en güçlü modelleri tek bir abonelikte sunuyor. Aylık 20 dolarlık ücret, sadece arada sırada arama yapanlar için yüksek kalabilir.
Hız Saniyeler içinde onlarca siteyi tarayıp özet çıkarıyor. Çok karmaşık sorgularda arama süresi bazen 10-15 saniyeyi bulabiliyor.

Fiyatlandırma ve Ücretsiz Alternatifler

Eğer bütçeniz kısıtlıysa veya “Ben bir aramaya ayda 20 dolar vermem” diyorsanız, piyasada kullanabileceğiniz harika ücretsiz veya daha uygun fiyatlı alternatifler mevcut:

  • Phind: Özellikle yazılımcılar ve geliştiriciler için harika bir ücretsiz AI search aracı. Kod bloklarını ve teknik dökümantasyonları çok iyi tarıyor.
  • Microsoft Copilot: Microsoft Edge tarayıcısıyla entegre gelen Copilot, GPT-4 altyapısını ücretsiz olarak internet aramalarıyla birleştirerek sunuyor.
  • Consensus: Tamamen bilimsel ve akademik makaleler üzerine odaklanmış, kanıta dayalı bir yapay zeka arama motoru.

Sonuç: Google’ı Tamamen Hayatımızdan Çıkarıyor muyuz?

Dürüst olalım: Yakın bir gelecekte mahallenizdeki en iyi pizzacıyı bulmak, uçak bileti fiyatlarını karşılaştırmak veya hızlıca bir spor ayakkabı satın almak için yine Google’ı kullanacaksınız. Google, bu tarz “operasyonel” işlerde hala çok pratik.

Ancak konu derinlemesine bir konuyu öğrenmek, makale yazmak, karmaşık teknik bir problemi çözmek veya bir sektör raporunu analiz etmek olduğunda, Perplexity klasik aramayı çoktan tarihe gömmüş durumda. Bilgiyi aramakla vakit kaybetmek istemiyor, doğrudan öğrenmeye başlamak istiyorsanız Perplexity’ye mutlaka bir şans vermelisiniz.

Category: Genel | LEAVE A COMMENT
Aralık 20 2024

Prompt Engineering: ChatGPT’den En İyi Yanıtı Almanın Formülü

Yapay zeka hayatımıza girdiğinden beri hepimiz birer “yapay zeka fısıldayıcısı” olduk. Ancak chatgpt ekranının karşısına geçip “Bana bir diyet listesi yaz” veya “Şu e-postayı profesyonelce yanıtla” dediğimizde aldığımız yanıtlar genellikle can sıkıcı derecede genel ve ruhsuz oluyor. İşte tam bu noktada, ai dünyasından maksimum verimlilik elde etmemizi sağlayan sihirli değnek devreye giriyor: prompt engineering. Peki ama bu kavram sadece yapay zeka gurularına özel bir teknik mi, yoksa günlük işlerimizi kolaylaştıracak pratik bir formülü var mı? Lafı uzatmadan, kendi deneyimlerimizle test ettiğimiz yöntemleri masaya yatıralım.

Neden Doğrudan Sormak Yetmiyor? (İşin Arkasındaki Mantık)

Bir llm (Büyük Dil Modeli), sizin ne düşündüğünüzü veya şirketinizin kültürünü tahmin edemez. O, özünde devasa bir “sonraki kelime tahmin motorudur”. Ona ne kadar çok bağlam (context) ve sınır verirseniz, olasılık havuzunu o kadar daraltır ve tam hedefi vuran bir yanıt üretir. Yani kötü yanıt aldığınızda suç yapay zekada değil, büyük ihtimalle ona verdiğiniz eksik talimatlardadır.

[Görsel: Sıradan ve yüzeysel bir prompt ile detaylı yapılandırılmış bir promptun ürettiği sonuçların yan yana karşılaştırması]

—

En Etkili 3 Prompt Engineering Tekniği ve Test Sonuçlarımız

1. Rol Atama (Role Prompting)

Yapay zekaya bir kimlik kazandırmak, alacağınız yanıtın tonunu ve derinliğini tamamen değiştirir. Sadece “Sosyal medya için başlık yaz” demek yerine, ona bir rol verin.

Denediğimiz Şablon:

"Sen 10 yıllık kıdemli bir dijital pazarlama uzmanısın. Hedef kitlen teknolojiye meraklı genç profesyoneller. Yeni bir üretkenlik uygulaması için merak uyandıran 3 farklı Instagram başlığı yaz."

Neden işe yarıyor?: Yapay zeka, “dijital pazarlama uzmanı” rolünü üstlendiğinde sıradan kelimeleri eliyor ve hedef kitleye uygun, sektörel jargona hakim bir dil kullanıyor.

2. Few-Shot Prompting (Örnekleme)

Modelin nasıl bir çıktı üretmesini istediğinizi anlatmakta zorlanıyorsanız, ona birkaç örnek gösterin. Bu teknik, özellikle veri formatlama veya belirli bir üslubu yakalama konusunda hayat kurtarır.

Denediğimiz Şablon:

Müşteri yorumlarını analiz etmeni istiyorum.
Örnek 1: "Kargo çok hızlı geldi, ürün harika." -> [Durum: Olumlu, Kategori: Lojistik]
Örnek 2: "Arayüzü hiç beğenmedim, çok karışık." -> [Durum: Olumsuz, Kategori: UX/Tasarım]
Şimdi bu yorumu analiz et: "Ödeme adımında sürekli hata alıyorum, kartımı kabul etmedi." ->

Neden işe yarıyor?: Yapay zeka kuralları tahmin etmek yerine verdiğiniz şablonu doğrudan kopyalar. Sonuç sıfır hata!

3. Chain-of-Thought (Düşünce Zinciri)

Eğer mantık yürütme, matematik veya karmaşık kodlama gerektiren bir iş yapıyorsanız, yapay zekaya doğrudan cevabı sormayın. Ondan “adım adım düşünmesini” isteyin.

Denediğimiz Şablon:

"Şirketimiz bu ay %15 büyüdü. Geçen ayki gelirimiz 120.000 TL ise, bu ayki net kârımızı bulmak için önce yeni geliri hesapla, ardından %20 vergi oranını düşerek adım adım açıkla."

Neden işe yarıyor?: LLM’ler işlem sırasını atladıklarında saçmalayabilirler (buna halüsinasyon diyoruz). Adım adım gitmesini söylediğinizde, kendi yaptığı hataları işlem sırasında fark edip düzeltir.

—

Hangi Görev İçin Hangi Modeli Seçmeli?

Her iş için aynı modeli kullanmak, her çiviyi aynı çekiçle çakmaya çalışmaya benzer. İşte sahada yaptığımız testlere göre en iyi modeller:

  • Yaratıcı Yazarlık ve Metin Tonlama: Claude 3.5 Sonnet. Türkçe dil hakimiyeti ve insan benzeri yazım tonu konusunda şu an ChatGPT’nin bir adım önünde.
  • Hızlı Bilgi Arama ve Kod Yazma: GPT-4o. Hızı ve mantıksal problem çözme yeteneği inanılmaz düzeyde.
  • Büyük Doküman Analizi: Google Gemini 1.5 Pro. Dev devasa bağlam penceresi sayesinde yüzlerce sayfalık PDF’leri tek seferde yutup analiz edebiliyor.

—

Prompt Engineering Artı ve Eksi Analizi

Avantajları (Artılar) Zorlukları (Eksiler)
Yapay zekadan alınan yanıtların kalitesini %80’e kadar artırır. Doğru promptu yazmak ilk başta zaman alır ve deneme-yanılma gerektirir.
Tekrar eden işleri (raporlama, formatlama) tamamen otomatize eder. Modeller güncellendikçe bazen aynı prompt farklı sonuçlar verebilir.
Halüsinasyon (uydurma bilgi) oranını minimuma indirir. Uzun promptlar, API kullanımında daha fazla token tüketimi (maliyet) demektir.

—

Maliyetler ve Ücretsiz Alternatifler

Prompt engineering yeteneğinizi geliştirmek tamamen ücretsizdir. Bu bir yazılım değil, bir düşünme biçimidir. Ancak bu teknikleri uygulayabileceğiniz platformların maliyet durumları şöyle:

  • Ücretli Seçenekler: ChatGPT Plus (aylık 20$) veya Claude Pro (aylık 20$). En gelişmiş modellere (GPT-4o, Claude 3.5 Sonnet) sınırsız erişim sağlarlar.
  • Ücretsiz Alternatifler:
    • ChatGPT Free: GPT-4o mini modelini ücretsiz sunar. Günlük basit işler ve prompt denemeleri için fazlasıyla yeterli.
    • Microsoft Copilot: Arka planda ücretsiz GPT-4 kullanır ve güncel internet erişimi vardır.
    • Hugging Face & LM Studio: Bilgisayarınızın gücü yetiyorsa, Llama 3 gibi açık kaynaklı modelleri tamamen ücretsiz ve internetsiz olarak lokalde çalıştırabilirsiniz.

Son Söz: Denemekten Korkmayın

Prompt engineering gözünüzü korkutmasın. Yapay zeka ile konuşurken karşınızda stajyer bir üniversite öğrencisi varmış gibi hayal edin. Ona görevi ne kadar net anlatır, ne kadar çok örnek gösterir ve sınırları ne kadar iyi çizerseniz, akşam masanıza gelecek olan rapor o kadar kusursuz olur. Şimdi ChatGPT ekranını açın ve ilk rol tanımlamanızı yaparak farkı kendi gözlerinizle görün!

Category: Genel | LEAVE A COMMENT