Kurumsal RAG mimarisi nasıl kurulur?
Kurumsal RAG mimarisi; belge ayrıştırma, parçalama, gömme, dizinleme, yeniden sıralama ve değerlendirme katmanlarının erişim denetimi korunarak birleştirilmesiyle kurulur.
ÖNKOŞULLAR
- Gömme vektörü ve benzerlik ölçümü kavramlarına aşinalık
- Kurumsal belge kaynaklarına ve erişim matrisine ulaşım
- Bir vektör veritabanı veya vektör destekli bir veri deposu
- 20 gerçek kullanıcı sorgusu ve bunların doğru cevaplarını bilen bir alan uzmanı
GEREKEN ARAÇLAR
- Belge ayrıştırma kütüphaneleri (PDF, ofis dosyası, HTML)
- Gömme modeli erişimi (API veya kendi altyapınızda)
- Vektör ve lexical arama destekleyen bir dizin
- İz kaydı (tracing) altyapısı
- 01
Kaynakları envanterle
Hangi sistemde hangi belge var, kim erişebiliyor — erişim matrisi olmadan mimari kurulmaz.
Envanter, teknik bir liste değil bir yetki haritasıdır. Her kaynak için üç şey yazılmalı: belge nerede duruyor, kim erişebiliyor, ne sıklıkla değişiyor. Üçüncüsü genellikle atlanıyor ama mimariyi belirliyor: günlük değişen bir kaynak ile yılda bir güncellenen bir kaynak aynı yeniden dizinleme stratejisini kullanamaz.
Sorulacak soru Neden önemli Bu belgeye kim erişebiliyor? Yetki filtresi dizin şemasına girer Ne sıklıkla değişiyor? Yeniden dizinleme tetikleyicisini belirler Yürürlük tarihi var mı? Eski sürümün cevaba karışmasını engeller Hangi biçimde? Ayrıştırıcı seçimini ve tablo kaybını belirler Sahibi kim? İçerik hatalarının düzeltilmesi için gerekli Bu beş sorunun cevabı yazılmadan dizinleme başlamamalı. - 02
Ayrıştırma hattını kur
PDF, ofis dosyası ve HTML için ayrı ayrıştırıcı; tablo ve başlık yapısını koru.
Ayrıştırmanın amacı metin çıkarmak değil, yapıyı korumaktır. Başlık hiyerarşisi, tablo sınırları ve madde numaraları kaybedildiğinde sonraki adımların hiçbiri telafi edemiyor. Her biçim için ayrı ayrıştırıcı kullanmak, tek bir genel çözüm aramaktan hemen her zaman daha iyi sonuç veriyor.
- PDF: metin katmanı varsa onu kullanın; taranmışsa OCR ve görsel-dil modeli birlikte doğrulama olarak çalışsın.
- Ofis dosyaları: başlık stillerini hiyerarşi olarak çıkarın, yorum ve izlenen değişiklikleri ayırın.
- HTML: gezinme ve altlık bloklarını atın; ana içeriği izole edin.
- Elektronik çizelge: her satırı başlık satırıyla birleştirin.
Doğrulama adımı: on temsilî belgeyi ayrıştırdıktan sonra çıktıyı elle okuyun. Başlıklar duruyor mu, tablolar okunabilir mi, sayfa altlıkları metne karışmış mı? Bu on dakikalık kontrol, sonraki iki haftayı kurtarıyor.
- 03
Parçalama stratejisini seç
Belge yapısına göre cümle sınırı ve örtüşme; sürüm bilgisini meta veriye yaz.
Doğru soru "kaç token" değil: bu belge türünde anlamın kendi içinde tamamlandığı en küçük birim nedir? Mevzuatta bir madde, dokümantasyonda bir alt başlık bölümü, tabloda bir satır artı başlık, destek kaydında bir soru-cevap çifti.
json { "parca_kimligi": "izin-proseduru-v3#madde-7b", "metin": "7/b) Yıllık izin talebi, en az yedi gün önce ...", "ust_veri": { "belge": "İzin Prosedürü", "surum": "v3", "yururluk": "2026-01-01", "baslik_yolu": ["İzinler", "Yıllık izin", "Talep süreci"], "madde": "7/b", "dil": "tr", "erisim_grubu": "tum-calisanlar" } }Doğrulama adımı: iki strateji kurup aynı 15 sorguyla karşılaştırın. Sabit uzunlukta bölme ile yapısal bölmenin ilk-beş ilgili oranı arasındaki fark, kararınızı tahmine değil ölçüme dayandırır.
- 04
Gömme ve dizinleme
Tek gömme modeline bağlan, model değişimini dizin yenileme işi olarak planla.
Gömme modeli seçimi bir kerelik bir karar gibi görünür ama taşınma maliyeti yüksektir: model değiştiğinde tüm vektörlerin yeniden üretilmesi gerekir. Bu yüzden seçim kriterleri arasına "sürüm politikası" da girmelidir.
- 01Türkçe performansı ölçülmüş bir model seçin; varsaymayın.
- 02Girdi token sınırını parçalama stratejinizle uyumlu doğrulayın.
- 03Dizine lexical arama yeteneğini de kurun; sonradan eklemek zordur.
- 04Üst veri alanlarını filtrelenebilir biçimde tanımlayın.
- 05Yeniden dizinleme süresini ölçün; bu, bakım penceresi planınızdır.
- 05
Hibrit arama ve yeniden sıralama
Anlamsal skoru lexical skorla birleştir, adayları yeniden sırala.
İki listeyi birleştirirken puanları toplamayın: kosinüs benzerliği ile lexical puan aynı ölçekte değil. Sıra tabanlı birleştirme (reciprocal rank fusion) bu sorunu yapısal olarak çözer ve üçüncü bir sinyal eklemeyi de kolaylaştırır.
python def karsilikli_sira_birlestir(listeler, k=60): puanlar = {} for liste in listeler: for sira, kimlik in enumerate(liste, start=1): puanlar[kimlik] = puanlar.get(kimlik, 0) + 1 / (k + sira) return sorted(puanlar, key=puanlar.get, reverse=True) birlesik = karsilikli_sira_birlestir([ anlamsal_ara(sorgu, n=50), lexical_ara(sorgu, n=50), ])Yeniden sıralayıcı yalnızca ilk 20-50 adaya uygulanır; tüm dizine uygulanamaz çünkü sorgu ve belgeyi birlikte okur. Etkisini Recall@5 ile p95 gecikmeyi birlikte raporlayarak ölçün.
- 06
Erişim denetimini belge katmanına koy
Filtreleme model isteminde değil sorguda uygulanır.
En sık yapılan mimari hata, yetki filtresini arama sonrasına bırakmak. Bu iki sorun üretir: yetkisiz belge cevaba karışabilir ve filtre sonrası sonuç sayısı beklenmedik biçimde sıfıra düşebilir. Yetki grubu üst veride tutulmalı ve arama sorgusunun parçası olmalı.
Doğrulama adımı: iki farklı yetki seviyesindeki test kullanıcısıyla aynı sorguyu koşturun. Sonuç kümeleri farklı olmalı; aynıysa filtre uygulanmıyor demektir.
- 07
Geri getirmeyi ayrı ölç
Üretim kalitesinden bağımsız bir isabet metriği kur; regresyon testine bağla.
Cevap kalitesindeki düşüşün nedeni neredeyse her zaman geri getirmedir. Bu yüzden iki hat ayrı ölçülmeli: geri getirme hattı (Recall@k, MRR, boş dönüş oranı) ve cevap hattı (kaynaklı iddia oranı, kaçış kullanımı, biçim uyumu).
Belirti Muhtemel neden Bakılacak yer Cevap uyduruyor Geri getirme boş döndü Boş dönüş oranı Cevap yarım Bilgi iki parçaya bölünmüş Parçalama stratejisi Eski bilgi geliyor Yürürlük filtresi yok Üst veri şeması Kesin terim bulunmuyor Lexical katman yok Dizin yapılandırması Dört belirtinin dördü de modelde değil hattın önceki adımlarında çözülür.
SIK DÜŞÜLEN TUZAKLAR
Yetki filtresini sonradan uygulamak
Arama yapıp sonra filtrelemek, hem yetkisiz belgenin sızma riskini hem boş sonuç riskini birlikte üretir. Filtre sorgunun parçası olmalı.
Tablo başlığını parçalara kopyalamamak
Başlık satırı olmayan bir tablo parçasında model sayıların hangi kolona ait olduğunu bilemez ve kendinden emin biçimde yanlış okur.
Model değiştirip dizini yenilemeden devam etmek
Farklı gömme modellerinin vektörleri aynı uzayda değildir. Karıştırmak fark edilmeyen bir kalite kaybı üretir.
Geri getirmeyi ölçmeden model değiştirmek
Kayıp arama hattındaysa model değişikliği hiçbir şeyi düzeltmez; yalnızca maliyeti değiştirir.
KONTROL LİSTESİ
- Kaynak envanteri ve erişim matrisi yazılı
- Her belge biçimi için ayrıştırma doğrulaması yapıldı
- İki parçalama stratejisi aynı sorgu setinde karşılaştırıldı
- Üst veride sürüm, yürürlük, erişim grubu ve dil alanları var
- Lexical ve anlamsal arama birlikte çalışıyor
- Yetki filtresi arama sorgusunun parçası
- Recall@5 ve boş dönüş oranı düzenli raporlanıyor
- Yeniden dizinleme süresi ölçüldü ve bakım penceresi planlandı
Maddelerin tamamı işaretlenmeden kurulum üretime alınmamalı.
Sık sorulan sorular
Hangi adımı atlamak en pahalıya geliyor?
Geri getirme ölçümü. Ölçüm olmadan kalite tartışması sezgiye döner ve her değişiklik risk haline gelir.
Erişim denetimini modele bırakabilir miyim?
Hayır. Model kendisine verilen bağlamı kullanır; görmemesi gereken belge bağlama girmişse iş bitmiştir.
Kurulum ne kadar sürer?
Çalışan bir ilk sürüm için birkaç gün yeterli olabilir. Ölçülebilir ve yetki denetimli bir üretim kurulumu ise tipik olarak haftalar mertebesinde; süreyi belirleyen model değil belge kaynaklarına erişim ve parçalama kalitesidir.
Kaynaklar
- 01Sağlayıcı ve altyapı dokümantasyonları — Model ve altyapı sağlayıcıları · Dokümantasyon
- 02Sinaptik Research — uygulama notları — Sinaptik Lab · Teknik rapor
BUILD
Bu rehberi kurumunuzda uygulayalım mı?
Aynı mimariyi kendi verinizle kurmak için discovery oturumundan üretime kadar birlikte ilerliyoruz.
