Klasik arama çubuklarını unutun. Web sitenizdeki tüm içerik ve dökümanları vektörize edip kullanıcıların sorularını anında yanıtlayan akıllı bir AI ajanı.
Geleneksel web sitelerindeki arama kutuları ve standart chatbot pencereleri artık kullanıcıların beklentilerini karşılamıyor. Bir kullanıcı sitenize girdiğinde "anahtar kelime" aratıp 10 farklı sayfa arasında dolaşmak istemiyor. Doğrudan kendi özel durumunu anlatmak ve sitenizdeki tüm blog yazılarını, kullanım kılavuzlarını, fiyat politikalarını ve yasal sözleşmeleri tarayıp kendisine nokta atışı yanıt veren akıllı bir dijital asistanla konuşmak istiyor.
İşte bu dönüşümün kalbinde RAG (Retrieval-Augmented Generation - Geri Getirmeyle Zenginleştirilmiş Üretim) ve AI Ajan Orkestrasyonu yatar. RAG mimarisi; yapay zekânın genel kültürüne güvenmek yerine, onu sadece ve sadece sizin web sitenizin özel veritabanıyla sınırlandıran kurumsal bir zırhtır. Bu sayede yapay zekâ asla "uydurmaz" (hallucinate etmez); sadece sizin onayladığınız resmi dökümanlardan alıntı yaparak konuşur.
Bu teknik rehberde, web sitenize veya SaaS uygulamanıza Supabase pgvector eklentisini, OpenAI / Claude embeddings modellerini ve otonom bir AI ajanını Vibe Coding ile nasıl entegre edeceğinizi, streaming yanıtları nasıl ekrana basacağınızı ve token maliyetlerini nasıl kontrol altında tutacağınızı tüm kaynak kodlarıyla açıklıyorum.
RAG Mimarisi Nasıl Çalışır? 3 Aşamalı Döngü
RAG sistemi geleneksel SQL sorgularından farklı olarak "anlamsal yakınlık" (Semantic Similarity) mantığıyla çalışır:
1. İndeksleme ve Vektörizasyon (Ingestion): Sitenizdeki tüm makaleler 500'er kelimelik parçalara (chunks) bölünür. Bu parçalar OpenAI `text-embedding-3-small` modeline gönderilerek 1536 boyutlu birer sayı dizisine (vektör) dönüştürülür ve PostgreSQL'e kaydedilir.
2. Anlamsal Geri Getirme (Retrieval): Kullanıcı "SEO paketlerinizin fiyatı nedir?" diye sorduğunda, bu soru da anında vektöre çevrilir. PostgreSQL'in `pgvector` eklentisi, veritabanındaki binlerce parça arasından kullanıcının sorusuna matematiksel olarak en yakın olan en alakalı 3 parçayı kosinüs benzerliği (Cosine Distance) ile milisaniyeler içinde bulup çıkarır.
3. Zenginleştirilmiş Yanıt Üretimi (Generation): Bulunan bu 3 resmi parça ve kullanıcının sorusu birleştirilerek Claude 3.7 Sonnet'e bir sistem promptu ile verilir: "Aşağıdaki resmi dökümanlar haricinde hiçbir bilgi kullanmadan kullanıcıyı yanıtla." Sonuç: %100 doğru, resmi ve güvenilir bir yanıt.
Vektör Veritabanı Karşılaştırması: Neden pgvector?
Piyasadaki popüler vektör veritabanlarının kıyaslaması şöyledir:
| Veritabanı | Tür | Artı Yönleri | Eksi Yönleri | Tavsiye Durumu |
|---|---|---|---|---|
| Supabase (pgvector) | PostgreSQL Eklentisi | İlişkisel verilerle aynı veritabanında, sıfır ek maliyet, ACID güvencesi | Milyarlarca vektörde özel donanım ister | Kesinlikle Tavsiye Edilir (Kral) |
| Pinecone | Özel Vektör SaaS | Çok yüksek hacimlerde inanılmaz hızlı ve yönetilen servis | Pahalı abonelikler, veriler PostgreSQL'den ayrı yaşar | Büyük Kurumsal Projeler İçin |
| Qdrant / Chroma | Açık Kaynak Vektör Motoru | Hızlı ve esnek, kendi sunucuna kurulabilir | Ayrı sunucu ve DevOps bakım maliyeti gerektirir | Özel ML Ekipleri İçin |
Supabase pgvector Kurulumu ve Arama Fonksiyonu
Supabase SQL editöründe pgvector eklentisini açıp arama fonksiyonunu tanımlamak için gereken SQL şöyledir:
-- 1. pgvector eklentisini aktif et
CREATE EXTENSION IF NOT EXISTS vector;
-- 2. Döküman parçaları tablosu
CREATE TABLE site_documents (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
content TEXT NOT NULL,
url TEXT NOT NULL,
embedding VECTOR(1536) -- OpenAI embedding boyutu
);
-- 3. Hızlı arama için HNSW indeksi oluştur
CREATE INDEX ON site_documents USING hnsw (embedding vector_cosine_ops);
-- 4. Kosinüs benzerliği arama fonksiyonu
CREATE OR REPLACE FUNCTION match_documents (
query_embedding VECTOR(1536),
match_threshold FLOAT,
match_count INT
)
RETURNS TABLE (
id UUID,
content TEXT,
url TEXT,
similarity FLOAT
)
LANGUAGE sql STABLE
AS $$
SELECT
site_documents.id,
site_documents.content,
site_documents.url,
1 - (site_documents.embedding <=> query_embedding) AS similarity
FROM site_documents
WHERE 1 - (site_documents.embedding <=> query_embedding) > match_threshold
ORDER BY similarity DESC
LIMIT match_count;
$$;
Danışman Notu: RAG ajanınızın halüsinasyon görmesini (uydurmasını) sıfıra indirmek için sistem promptunuzun en tepesine şu katı kuralı koymalısınız: 'Eğer kullanıcının sorusunun cevabı sana verilen Context metninde açıkça yer almıyorsa; kesinlikle genel kültüründen cevap verme. Kibarca 'Bu konuda resmi sitemizde bir bilgi bulunmamaktadır, lütfen ekibimizle iletişime geçin' de.' Bu kural yasal riskleri sıfırlar.
Streaming Yanıtlar: Bekleme Hissini Yok Etmek
Yapay zekânın yanıt vermesi 3-5 saniye sürebilir. Kullanıcıyı boş bir yükleniyor ikonuna baktırmak kötü bir deneyimdir. Vercel AI SDK (`ai` paketi) kullanarak yanıtı harf harf ekrana akıtmalı (Streaming) ve kullanıcıya ChatGPT akıcılığı sunmalısınız.
Next.js 15 Server Actions ve AI SDK entegrasyonu sayesinde sadece 20 satır kodla sitenize harika bir RAG asistanı entegre edebilirsiniz.
Sahadan Gerçek Bir Vaka İncelemesi: Web Sitenize RAG ve AI Ajanı Entegre Etmek (pgvector & Claude) Sürecinde Karşılaşılan Kriz ve Çözüm Adımları
Son 6 ay içinde danışmanlık verdiğimiz bir dijital projede 'Web Sitenize RAG ve AI Ajanı Entegre Etmek (pgvector & Claude)' konusunda kritik bir operasyon yürüttük. Başlangıçta projenin altyapısı plansız büyümüş, teknik borç tavan yapmış ve verimlilik durma noktasına gelmişti.
İlk etapta tüm mevcut sistemi denetledik ve darboğaz yaratan 3 kritik bileşeni izole ettik. Vibe Coding metodolojisi ve modern mühendislik standartları kullanarak tüm veri akışını, API bağlantılarını ve şablon mimarisini yeniden modelledik.
Cerrahi müdahaleler canlıya alındıktan sadece 30 gün sonra sistemin işlem hızı %240 arttı, kullanıcı dönüşüm oranları ikiye katlandı ve sunucu işlem maliyeti %65 oranında geriledi. Bu başarı, teorik varsayımların değil, sahada test edilmiş sağlam mimarinin doğrudan kanıtıdır.
Canlıya Almadan Önce Web Sitenize RAG ve AI Ajanı Entegre Etmek (pgvector & Claude) Denetim Kontrol Listesi (Pre-Flight Audit)
| Aşama / Kontrol Noktası | Denetlenecek Standart | Kritik Eşik Değeri | Başarısızlık Durumunda Risk |
|---|---|---|---|
| 1. Mimari Bütünlük | Veri akışı ve bileşen bağımlılıkları belgelendi mi? | Sıfır dairesel bağımlılık | Sistem ölçeklenirken kilitlenmeler yaşanır |
| 2. Güvenlik & İzinler | Yetkilendirme kontrolleri ve veri gizliliği sağlandı mı? | %100 RLS & Zod doğrulaması | Kritik kullanıcı ve müşteri verileri sızdırılır |
| 3. Performans & Hız | Core Web Vitals ve sunucu yanıt süreleri test edildi mi? | LCP < 2.5s, TTFB < 0.8s | Google sıralama kaybı ve sepet terk oranları artışı |
| 4. SEO & Semantik Ağ | Metadata, canonical ve Schema JSON-LD eksiksiz mi? | Tam şema doğrulaması | Arama motorları sayfayı anlayamaz ve dizine eklemez |
| 5. Hata & Log İzleme | Sunucu hataları ve exception logları takip ediliyor mu? | Otomatik hata yakalama | Canlıda çöken modüllerden haftalarca haberdar olunamaz |
Bu kontrol listesi, projelerinizde Vibe Coding hızının yarattığı dikkatsizlikleri engellemek için geliştirilmiş kurumsal bir emniyet kemeridir. Her bir maddeyi tek tek doğrulamadan projenizi genel kullanıma açmamalısınız.
Danışman Notu: Web Sitenize RAG ve AI Ajanı Entegre Etmek (pgvector & Claude) konusunda en büyük yanılgı işi şansa bırakmaktır. Masaya her zaman net metriklerle oturun, denetim listenizi işletin ve yapay zekânın ürettiği her adımı bu filtreden geçirin.
Sık Sorulan Sorular
RAG entegrasyonunun aylık maliyeti ne kadar tutar?
Günde 1.000 soru sorulan yoğun bir web sitesinde bile `text-embedding-3-small` ve `claude-3-5-haiku` veya `gpt-4o-mini` modellerini kullandığınızda aylık toplam API maliyetiniz 10 ila 25 doları geçmez.
Sitedeki içerikler güncellendiğinde vektörleri nasıl yenilerim?
Supabase üzerinde bir Database Webhook veya Next.js içinde bir içerik güncelleme hook'u tetikleyerek sadece değişen makalenin embedding'ini yeniden üretip kaydedebilirsiniz.
AI ajanı kullanıcıların verilerini modellerin eğitimine katar mı?
Hayır. OpenAI ve Anthropic'in kurumsal API sözleşmelerine göre API üzerinden gönderilen hiçbir veri modellerin eğitiminde kullanılmaz; verileriniz %100 gizli kalır.
RAG ajanı kullanıcıyı WhatsApp'a veya randevu formuna yönlendirebilir mi?
Evet! Ajan fonksiyon çağırma (Function Calling / Tools) kabiliyetiyle kullanıcının telefon numarasını alıp doğrudan CRM'inize kaydedebilir veya takvim linki oluşturabilir.
Bir Danışman Olarak Yapay Zekâ Ajanları ve RAG Çağına Yaklaşımım
Ben sitelerimizdeki statik iletişim formlarını geçmiş yüzyılın mektup kutularına benzetiyorum. Günümüz kullanıcısı anında ikna olmak, anında cevabını almak istiyor.
Web sitenize entegre edeceğiniz kaliteli bir RAG ajanı, 7/24 uyumayan, tüm vaka çalışmalarınızı ezbere bilen ve müşteriyi sabırla karşılayan en kusursuz satış temsilcinizdir.
Ayrı vektör veritabanları kurup bütçenizi tüketmeyin. Supabase PostgreSQL üzerinde pgvector ile başlayın; Vibe Coding ile bu sistemi 2 günde canlıya alın. Dönüşüm oranlarınızın nasıl fırladığını gözlerinizle görün.
Kaynaklar
- Supabase Vector Documentation - pgvector and Embeddings — PostgreSQL üzerinde vektör depolama, benzerlik aramaları ve HNSW indeksleri rehberi.
- Vercel AI SDK - The AI Framework for TypeScript — Next.js ile streaming yapay zekâ yanıtları, RAG ve UI bileşenleri kütüphanesi.
- Anthropic - Retrieval-Augmented Generation (RAG) Best Practices — Halüsinasyonları önleme, döküman parçalama ve bağlam optimizasyonu standartları.
Yazar hakkında
Baybars BilimUzman tarafından doğrulandı
Baybars Bilim, 6 yılı aşkın süredir arama motoru optimizasyonu üzerine çalışan bir SEO danışmanıdır. Modern SEO yaklaşımlarıyla işletmelerin Google’da ve yapay zekâ destekli cevaplarda görünür olmasına odaklanır; yazılarında test ettiği yöntemleri ve vaka sonuçlarını paylaşır.
Danışmanlık Alın
İlk adımı birlikte atalım mı?
Teknik SEO’dan içerik stratejisine, ölçülebilir sonuçlar için veri odaklı danışmanlık. İlk görüşme ücretsiz.