Blog · Teknoloji
RAG nedir, sesli asistanlar sitenizin içeriğinden nasıl cevap verir?
Bir dil modeli, eğitim verisinden hatırladığı şeyleri akıcı bir dille söyler — ama bunlar sizin sitenizdeki gerçekler değildir, bazen de tamamen uydurmadır. RAG (retrieval augmented generation), tam bu boşluğu kapatır: modele cevap vermeden önce sizin kendi içeriğinizden ilgili pasajları bulup verir. Bu yazıda RAG'in ne olduğunu, embedding ve hibrit aramanın nasıl çalıştığını ve RAQS'ın bir sesli asistanı yalnızca sitenizin içeriğinden konuşturmak için bunu uçtan uca nasıl uyguladığını anlatıyoruz.
RAG nedir? Kısa ve net tanım
RAG'in açılımı retrieval augmented generation, yani 'getirimle güçlendirilmiş üretim'dir. Fikir basittir: dil modeline soruyu çıplak haliyle sormak yerine, önce güvenilir bir kaynaktan (sizin bilgi tabanınızdan) soruyla en alakalı metin parçalarını getirir, sonra modele 'bu kaynaklara dayanarak cevap ver' dersiniz. Model artık ezberinden değil, önüne konan kanıttan konuşur.
Bunu açık kitap sınavına benzetebilirsiniz. Kapalı kitap sınavında öğrenci yalnızca hatırladığını yazar; emin olmadığı yerde uydurur. Açık kitapta ise önce doğru sayfayı bulur, sonra oradan cevaplar. RAG, dil modelini kapalı kitaptan açık kitaba taşır — ve 'kitap' sizin sitenizdir.
Klasik bir LLM'in iki temel sorunu vardır: bilgisi eğitildiği ana kadar dondurulmuştur (sizin dünkü kampanyanızdan, yeni ürününüzden, güncel iade politikanızdan haberi yoktur) ve emin olmadığında bile kendinden emin bir tonla yanlış cevap üretebilir. RAG bu iki sorunu da çözer: getirilen içerik hem güncel hem de size aittir.
Retrieval
Soruyla en alakalı pasajları bilgi tabanınızdan bulma.
Augmented
Bulunan pasajları modele bağlam olarak ekleme.
Generation
Modelin yalnızca bu bağlama dayanarak cevap üretmesi.
Embedding: metni 'anlam'a çevirmek
Bir bilgisayar 'iade nasıl yaparım' ile 'ürünü geri gönderme' ifadelerinin aynı şeyi kastettiğini, ortak tek bir kelime olmasa bile nasıl anlar? Cevap embedding'lerdedir. Embedding, bir metin parçasını yüzlerce boyutlu bir sayı dizisine (vektöre) çeviren bir yöntemdir. Anlamca yakın metinler bu uzayda birbirine yakın noktalara düşer; alakasız metinler uzağa.
RAQS, içeriğinizi Azure'ın text-embedding-3-small modeliyle vektöre çevirir. Hem sitenizdeki her metin parçası önceden vektörlenip saklanır, hem de ziyaretçi bir soru sorduğunda o soru aynı modelle anlık olarak vektöre çevrilir. Artık 'en alakalı içerik hangisi?' sorusu, 'soru vektörüne en yakın içerik vektörleri hangileri?' şeklinde matematiksel bir yakınlık problemine dönüşür.
Bu, anahtar kelime eşleşmesinden çok daha güçlüdür: ziyaretçi sizin sayfanızdaki kelimelerin birebir aynısını kullanmasa bile, anlamca örtüşen pasajı yakalayabilirsiniz. Sesli asistanlarda bu özellikle değerlidir, çünkü insanlar konuşurken serbest, günlük bir dille soru sorar — yazıdaki gibi resmi terimlerle değil.
Hibrit retrieval: vektör + anahtar kelime
Yalnızca anlamsal (vektör) arama her zaman yeterli değildir. Bir ürün kodu, model adı, SKU veya nadir bir terim söz konusu olduğunda — örneğin 'XR-450 stokta mı?' — birebir kelime eşleşmesi anlamsal benzerlikten daha keskindir. Tersine, 'kargo ne kadar sürede gelir' gibi serbest ifadelerde anlamsal arama parlar. Bu yüzden RAQS ikisini birden kullanır: hibrit retrieval.
Pratikte iki arama paralel çalışır. Birincisi pgvector üzerinde anlamsal vektör araması; ikincisi PostgreSQL'in tam-metin (full-text) anahtar kelime araması. İki sıralı liste, RRF (Reciprocal Rank Fusion) ile tek bir listede birleştirilir — her sonucun her iki listedeki sıra konumuna göre adil bir puan alır. Böylece hem anlamı hem de tam terimi yakalayan sonuçlar üste çıkar.
Son adımda bir benzerlik eşiği devreye girer: hiçbir parça yeterince alakalı değilse, sistem zorlama bir cevap üretmek yerine elindekini 'yeterince alakalı değil' olarak işaretler. Bu eşik, halüsinasyonu engelleyen kritik bir sigortadır — birazdan değineceğiz.
Vektör arama
pgvector'da anlamsal yakınlık; serbest, günlük dil için.
Anahtar kelime
PostgreSQL full-text; kod/SKU/nadir terimler için.
RRF füzyon
İki listeyi sıra-tabanlı adil puanla tek listede birleştirme.
Benzerlik eşiği
Alakasız sonuçları eler; boşsa 'bilmiyorum' tetiklenir.
RAG halüsinasyonu neden engeller?
Halüsinasyon, modelin emin olmadığı bir konuda bile inandırıcı ama yanlış bir cevap uydurmasıdır. RAG bunu iki yoldan kırar. Birincisi: modele cevabı kafasından değil, önüne konan pasajlardan çıkarması talimatı verilir — yani üretim, getirilen kanıta bağlanır. İkincisi: getirme adımı boş döndüğünde, modele 'cevaplanacak kaynak yok' bilgisi gider ve asistan dürüstçe 'bunu bilmiyorum' der.
RAQS bu davranışı bilinçli bir tasarım tercihi olarak benimser: asistan yalnızca sizin bilgi tabanınızdan konuşur, bilgi tabanında karşılık yoksa cevap uydurmaz, 'bilmiyorum' der. Bu, bir markanın sitesine koyacağı sesli asistanda pazarlık konusu olmayan bir gerekliliktir — yanlış bir fiyat, yanlış bir iade politikası ya da var olmayan bir ürün vaadi gerçek bir maliyettir.
Bu yüzden RAG'i sadece 'daha akıllı arama' diye düşünmemek gerekir. Asıl değeri, cevabı denetlenebilir bir kaynağa bağlamasıdır: her cevabın arkasında sizin onayladığınız, taradığınız ya da yüklediğiniz bir içerik vardır.
RAQS bunu uçtan uca nasıl kurar: tara → parçala → vektörle → ara
RAQS'ta bir sesli asistanı sitenizin içeriğinden cevap verir hale getirmek dört adımlı bir hattan geçer. Adım 1 — Tarama: sitenizin sitemap'i ve sayfaları taranır. JS ile render edilen SPA siteler başlıksız kalmasın diye headless tarayıcıyla işlenir; metin trafilatura ile menü/footer gürültüsünden arındırılarak temiz çıkarılır; robots.txt'e uyulur ve plan başına bir sayfa kotası uygulanır. İsterseniz taramak yerine metin/SSS yapıştırır ya da PDF, Word, TXT, MD, CSV dosyalarını yüklersiniz.
Adım 2 — Parçalama (chunking): uzun sayfalar, model bağlamına sığacak ve tek bir konuyu kapsayacak anlamlı parçalara bölünür. Adım 3 — Vektörleme: her parça Azure text-embedding-3-small ile embedding'e çevrilir ve pgvector'da saklanır; aynı anda metin, anahtar kelime araması için PostgreSQL full-text indeksine girer.
Adım 4 — Arama ve cevap: ziyaretçi konuşunca soru aynı modelle vektörlenir, hibrit retrieval (vektör + anahtar kelime + RRF + eşik) en alakalı parçaları getirir ve bunlar Azure OpenAI gpt-4o-mini beynine bağlam olarak verilir. Beyin yanıtı Pipecat hattında üretir, LiveKit ile düşük gecikmeli taşınır ve Azure Speech ile seslendirilir. E-ticarette ürün sayfalarındaki schema.org JSON-LD verisi (isim, marka, fiyat, stok, kategori) ayrıca çıkarılır — böylece 'X ürünü stokta mı, kaç para?' doğru yanıtlanır.
1 · Tara / Yükle
Sitemap + sayfa (SPA için headless), ya da metin/PDF/Word/CSV.
2 · Parçala
İçeriği anlamlı, bağlama sığan parçalara böl.
3 · Vektörle
Azure embeddings → pgvector + full-text indeks.
4 · Hibrit ara
Vektör + anahtar kelime + RRF + eşik → beyne bağlam.
<script async src="https://raqs.ai/v1/raqs.js"
data-raqs="SİTE_ANAHTARINIZ"></script>Sık sorulan sorular
RAG nedir, tek cümleyle?
Dil modeline cevap vermeden önce sizin kendi içeriğinizden en alakalı pasajları getirip vermek; böylece model ezberinden değil kanıttan konuşur.
RAG modeli yeniden eğitmek mi demek?
Hayır. Model eğitilmez; sadece cevap anında ilgili içeriğiniz arama ile bulunup bağlam olarak modele verilir. İçeriğinizi güncellediğinizde yeniden taratmanız yeterlidir.
Embedding nedir?
Bir metin parçasını anlamını temsil eden çok boyutlu bir vektöre çeviren yöntem; anlamca yakın metinler bu uzayda birbirine yakın düşer.
Neden hem vektör hem anahtar kelime araması?
Vektör arama serbest, günlük dilde parlar; anahtar kelime araması ürün kodu/SKU/nadir terimlerde keskindir. RRF füzyonuyla ikisinin en iyisini alırsınız.
RAG halüsinasyonu tamamen bitirir mi?
Riski büyük ölçüde düşürür: cevap getirilen kaynağa bağlanır ve içerik yoksa asistan 'bilmiyorum' der. RAQS bunu bilinçli olarak bu şekilde davranacak biçimde kurar.
Asistanınız sitenizin içeriğinden konuşsun
Sitenizi taratın, hibrit RAG ile dakikalar içinde doğru, kaynaklı cevaplar — kredi kartı yok.
Ücretsiz başla