AI

C# ile Retrieval-Augmented Generation (RAG) kurmak

C# Corner'daki rehber, Microsoft.Extensions.AI üzerinde çalışan bir RAG pipeline'ını küçük bir console uygulamasında kuruyor ve demo sınırının ötesine geçiyor: hybrid search, reranking, GraphRAG, agentic retrieval ve değerlendirme. Grounded bir asistanın güvenilir olup olmadığını belirleyen tasarım kararlarını tek yazıda topluyor.

C# Corner Deepak Tewatia
Yayın tarihi
Okuma süresi
12 dk okuma
agent çalıştırması #24
agent çalıştırması #24
Orijinale git c-sharpcorner.com

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • Chunk'ları 10-20% overlap ile birkaç yüz token olacak şekilde ayırın, mümkünse başlıklardan bölün ve retrieval'ı suçlamadan önce çıkarılan metne bakın.
  • Dokümanlar ve sorular aynı embedding modelini kullanmalı; model değişirse tüm corpus'u yeniden embed etmek gerekir.
  • Ayrı bir vector database kurmak yerine vektör desteği olan mevcut veritabanıyla başlayın (pgvector, SQL Server, Azure SQL).
  • Hybrid search (vector + BM25'in RRF ile birleştirilmesi) ve cross-encoder reranker, retrieval kalitesinde en yüksek getirili adım.
  • Retrieval sırasında tenant, dil ve kullanıcı yetkisi filtrelerini uygulayın; modele yalnızca verilen context'ten yanıt vermesini söyleyin.
  • Retrieval recall@k ile generation faithfulness'ı ayrı ölçün; 50-200 gerçek sorudan oluşan bir test seti kullanın.

C# Corner, bir Markdown klasöründeki dosyalardan gelen soruları yanıtlayan küçük bir console uygulaması kuruyor. Microsoft.Extensions.AI'nin IEmbeddingGenerator ve IChatClient arayüzleri sayesinde OpenAI, Azure OpenAI ya da Ollama'ya geçmek RAG mantığına dokunmadan mümkün; paragraflar overlap'li chunk'lara bölünüyor, batch halinde embed ediliyor ve TensorPrimitives.CosineSimilarity ile düz bir liste üzerinde skorlanıyor.

Asıl değerli kısım örnek uygulamanın etrafındaki öneriler. Ayrı bir vector store'a geçmeden önce vektörleri zaten çalıştırdığınız bir veritabanında tutun (PostgreSQL + pgvector ya da SQL Server); tenant ve kullanıcı yetkisi filtrelerini chunk'lar modele ulaşmadan uygulayın; context yetersizse modelin "bilmiyorum" demesini açıkça isteyin. Sonrasında RRF ile hybrid search, reranker, GraphRAG, MCP tool olarak agentic retrieval ve recall@k'yı faithfulness'tan ayrı ölçmek geliyor.

Gerçek dünyada kullanımı

  • Wiki, PDF ve runbook'lardan yanıt veren, kaynağa citation dönen bir iç asistan.
  • Geçmiş ticket'larda arama yapan ve her müşterinin sonucunu model görmeden tenant ile role göre filtreleyen bir destek botu.
  • Cevabın hangi pasajdan geldiğini göstermek zorunda olan hukuk veya satın alma ekibi için "sözleşmelerle sohbet" aracı.
  • Çok adımlı soruları yanıtlamak için arama ve sipariş sorgularını çağrılabilir tool'a çeviren agentic bir akış.

Neden önemli

RAG bugün bir LLM'i şirket içi veriye bağlamanın varsayılan yolu ve sorunların çoğu modelden değil ingestion ile retrieval'dan çıkıyor. Temiz metin, yetki filtreleri, reranking ve ayrı retrieval metrikleri gibi maddeler bir demoyu yayına alınabilir bir üründen ayıran şey.

Bu özet, C# Corner üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü