RAG (Retrieval-Augmented Generation) ile Chatbot Oluşturma: Geleceğin Akıllı Asistanları
Yapay zekâ ve doğal dil işleme teknolojileri son yıllarda büyük bir hızla gelişti. Chatbotlar, müşteri hizmetlerinden eğitim uygulamalarına kadar birçok alanda hayatımıza girdi. Ancak klasik chatbotların en büyük problemi, belirli bir veri seti veya kural tabanına bağımlı kalmalarıdır. Kullanıcılar her zaman öngörülen kalıplarda soru sormadığında chatbotlar yetersiz kalabiliyor. İşte tam bu noktada RAG (Retrieval-Augmented Generation) yapısı devreye giriyor.
Büyük dil modelinin (LLM) “o an” dış kaynaktan bilgi aratıp getirerek cevap üretmesi. Yani modelin hafızasına güvenmek yerine, belgeleri bul → özetle → cevaba kat akışı.
RAG, kısaca “geri getirme destekli üretim” olarak çevrilebilir. Bu yapı, yalnızca hazır bilgiyi kullanmakla kalmaz, aynı zamanda büyük dil modellerinin yaratıcı üretim gücünü de destekler. Yani bir kullanıcı soru sorduğunda, sistem önce ilgili bilgiyi veri tabanından veya belgelerden arar, ardından bu bilgiyi dil modeliyle harmanlayarak doğal ve doğru bir yanıt üretir. Bu sayede hem güncel hem de bağlama uygun sonuçlar elde edilir.
Modeli yeniden eğitmeden sadece yeni belge ekleyerek hızlı güncelleme yaparsınız.


A) Önceden Yapılan İşlemler (Hazırlık Aşaması)
1.Veri toplama
Kullanıcıların sık soracağı sorularla ilgili belgeler, makaleler veya ürün açıklamaları PDF, Word, web sayfası, veritabanı kayıtları vs. toplanır.
2. Chunking
Belgeler belirli boyutlarda parçalara bölünür Örneğin 300 karakterlik parçalar, 100 karakter örtüşme ile hazırlanabilir.
Chunk Overlap (100 Karakter Ekleme)
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=300,
chunk_overlap=100,
length_function=len,
add_start_index=True, )
Her parça oluşturulurken, önceki parçanın son 100 karakteri yeni parçaya eklenir. Böylece parçalar arasında bir örtüşme (overlap) olur.
Örn:
1. parça: 0–300 karakter
2. parça: 200–500 karakter (önceki parçada olan son 100 karakter de burada var)
3. parça: 400–700 karakter
Bu sayede:
Önemli cümleler kesilse bile, en azından bir parçada tam bağlam korunur.
Arama yapılırken parçalar bağımsız olsa da anlam kaybı azalır.
chunk_overlap=100 parametresi işte bu sorunu çözer
3. Embedding çıkarma
Her chunk embedding modeliyle vektörlere dönüştürülür
Embedding Modelinin Rolü
RAG yapısının kalbi embedding modelleridir. Embedding, metni veya kelimeleri anlamını temsil eden sayısal vektörlere çevirir. Bu sayede bilgisayar, “anlam benzerliğini” ölçebilir. Örneğin kullanıcı “şirket nerede?” diye sorduğunda, sistem doğrudan “adres” veya “lokasyon” ile ilgili belgeleri yakalayabilir.
Bir başka deyişle, embedding modeli sayesinde chatbot kelimeleri sadece yüzeysel olarak değil, bağlam içinde anlayabilir. Bu da kullanıcıya daha doğru ve tatmin edici yanıtlar dönmesini sağlar.
Vektör veritabanına kaydetme → FAISS, Pinecone, Qdrant gibi bir veritabanına bu vektörler saklanır.
👉 Buraya kadar ki kısımlar bir defa yapılır, her soru için tekrar edilmez.
B) Her Soru Geldiğinde Yapılan İşlemler
1. Kullanıcı sorusunu al
Örn: “Bilişim şirketi nerede kurulmuştur?”
2. Soru embedding çıkar
Soruyu embedding modeline ver → vektör oluştur.
3. Benzerlik araması yap
Vektör veritabanında, soruya en yakın N chunk’ı bul (cosine similarity / dot product).
4. Bağlamı (context) hazırla
Bulunan chunk’ları, kullanıcı sorusunun altına ekle.
5. Prompt oluştur

6. LLM’e gönder → Seçilen model (GPT, LLaMA, Mistral…) prompt’u işler.
7. Cevabı üret ve kullanıcıya göster.
Ø Neden RAG Kullanılmalı?
Chatbot geliştirirken RAG yapısının tercih edilmesi pek çok avantaj sağlar:
Güncel Bilgi Kullanımı: Modelin eğitim verisi güncel değilse bile, eklenen belge veya veri tabanıyla anlık güncellemeler yapılabilir.
Doğruluk Artışı: Cevaplar sadece modelin tahminlerine değil, gerçek belgelerden alınan içeriklere dayanır.
Esneklik: Farklı sektörler için aynı altyapı kullanılabilir. Örneğin bir e-ticaret firması ürün kataloglarını, bir sağlık kuruluşu medikal makaleleri chatbotuna entegre edebilir.
Maliyet Avantajı: Tekrar tekrar büyük modelleri eğitmek yerine, sadece vektör veritabanını güncellemek yeterlidir.
Ø RAG’in Klasik Yöntemlere Göre Farkı
Kural Tabanlı Chatbotlar:
Önceden tanımlanmış senaryolarla çalışır. Esneklik düşüktür.
Sadece Büyük Dil Modeli Kullanımı:
Çok yaratıcıdır ancak bazen hayali bilgiler (hallucination) üretebilir.
RAG Tabanlı Chatbotlar:
Hem doğruluk hem de esneklik sağlar. Yanıtlar belgelerle desteklenir, güvenilirlik artar.
Seda Mürütsoy