Şirket içi dokümanlar (Confluence, PDF, wiki) üzerinde soru cevaplayan bir RAG sistemi tasarlayın.

Cevap

RAG (Retrieval-Augmented Generation), soruyla ilgili doküman parçalarını bulup LLM'e bağlam olarak vererek cevabı bu kaynaklara dayandırma yaklaşımıdır. Tasarım iki pipeline'dan oluşur: indexing (offline) ve query (online).

1. Indexing pipeline

  1. Ingestion: Confluence, Drive, PDF connector'ları. Değişen dokümanlar için incremental senkronizasyon.
  2. Parsing: PDF'lerde tablo ve başlık yapısını koruyan parser'lar. OCR gerekebilir.
  3. Chunking: Başlık/bölüm yapısına göre bölme (yapısal chunking), tipik olarak 300–800 token, %10–20 overlap. Her chunk'a doküman başlığı ve bölüm yolu eklenir (contextual chunking).
  4. Metadata: Kaynak URL, tarih, departman, erişim yetkisi (ACL).
  5. Embedding: Çok dilli (Türkçe destekli) bir embedding modeli.
  6. Index: Vector DB (pgvector, Qdrant, Weaviate, OpenSearch) + BM25 için keyword index.

2. Query pipeline

  1. Query işleme: Sohbet geçmişine göre soruyu bağımsız hale getirme (query rewriting), gerekirse alt sorulara bölme.
  2. Hybrid retrieval: Dense (embedding) + sparse (BM25) arama, sonuçlar Reciprocal Rank Fusion ile birleştirilir. Ürün kodu, hata kodu gibi tam eşleşmelerde BM25 kritiktir.
  3. Yetki filtresi: Kullanıcının göremeyeceği dokümanlar retrieval aşamasında filtrelenir. Prompt'a "gösterme" demek güvenlik değildir.
  4. Reranking: İlk 50 aday bir cross-encoder reranker ile yeniden sıralanır, en iyi 5–10 tanesi alınır.
  5. Generation: "Sadece verilen kaynaklara dayan, yoksa bilmediğini söyle, her iddia için kaynak göster" talimatı. Cevapta citation linkleri.
Kullanıcı -> query rewrite -> [BM25 + vector] -> RRF -> ACL filtresi -> reranker -> top-k
          -> LLM (kaynaklı prompt) -> cevap + citation -> log + feedback

3. Değerlendirme

  • Retrieval metrikleri: Recall@k, MRR, nDCG. Etiketli soru-doküman çiftlerinden oluşan bir golden set ile.
  • Generation metrikleri: Faithfulness (cevap kaynaklarla destekleniyor mu), answer relevance, context precision. RAGAS gibi araçlar ve LLM-as-judge.
  • Production'da kullanıcı geri bildirimi (beğeni/beğenmeme) ve "cevap bulunamadı" oranı.

4. Production konuları

Embedding modeli değişirse tüm index yeniden oluşturulmalı (versiyonlama). Eski/çelişen dokümanlar için tarih bazlı önceliklendirme. Sık sorular için cache. PII maskeleme. Gecikme bütçesi (retrieval + rerank + generation).

  1. RAG'de chunking stratejisi, hybrid search ve reranker neden önemlidir? Retrieval kalitesi düşükse ne yaparsınız?OrtaLLM & Üretken YZYapay Zeka
  2. Hangi prompt engineering tekniklerini kullanırsınız? Few-shot ve chain-of-thought ne zaman işe yarar?KolayLLM & Üretken YZYapay Zeka
  3. LLM'lerde temperature, top-k ve top-p (nucleus) sampling parametreleri ne işe yarar?KolayLLM & Üretken YZYapay Zeka
  4. Production'daki bir LLM uygulamasında maliyeti ve gecikmeyi (latency) nasıl düşürürsünüz?OrtaLLM & Üretken YZYapay Zeka
  5. Prompt injection nedir? LLM tabanlı bir uygulamayı ve agent'ı buna karşı nasıl korursunuz?ZorLLM & Üretken YZYapay Zeka
  6. Bir LLM uygulamasını nasıl değerlendirirsiniz? Benchmark'lar ve LLM-as-judge yaklaşımının sınırlamaları nelerdir?ZorLLM & Üretken YZYapay Zeka

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle