Hibrit Arama ve Çoklu Biçim Desteğine Sahip Yerel-Öncelikli Belge RAG Sistemi
Geliştirici araçları geliştiren bir ekip, birden fazla dosya biçimini alabilen, aranabilir bilgi tabanları oluşturabilen ve Retrieval-Augmented Generation kullanarak doğal dil sorgularını yanıtlayabilen, tamamen yerel, gizliliği koruyan bir belge zekası sistemine ihtiyaç duyuyordu — hiçbir veriyi harici API'lere göndermeden.
Projenizi Tartışın
Zorluk
Mevcut RAG çözümlerinin gizliliğe önem veren ve geliştirici odaklı kullanım senaryoları için önemli sınırlamaları vardı:
- Harici API Bağımlılığı — Çoğu RAG aracı, belge içeriğini bulut tabanlı embedding API'lerine göndermeyi gerektiriyordu, bu da gizlilik gereksinimlerini ihlal ediyordu
- Sınırlı Biçim Desteği — Çözümler genellikle yalnızca düz metin veya PDF'i işliyor, e-tabloları, Word belgelerini, HTML ve Markdown'ı göz ardı ediyordu
- Kötü Parçalama (Chunking) — Naif metin bölme, belge yapısını (sayfalar, çalışma sayfaları, başlıklar) göz ardı ederek bağlam açısından zayıf parçalar oluşturuyordu
- Anahtar Kelime Boşlukları — Yalnızca embedding tabanlı arama, sözcük aramalarının yakalayabileceği tam anahtar kelime eşleşmelerini kaçırıyordu
- E-Tablo Körlüğü — RAG sistemleri, yapılandırılmış tablo verilerini işleyemiyor veya filtreleme/toplama sorgularını yanıtlayamıyordu
- Yeniden Sıralama (Reranking) Yokluğu — İlk geçiş alma işlemi, ikinci bir kalite filtresi olmadan genellikle yalnızca kısmen ilgili sonuçları ortaya çıkarıyordu
Çözümümüz
Çoklu biçimli belge alımı, yapıya duyarlı parçalama (chunking), yerel embedding üretimi, hibrit arama boru hattı (anlamsal + tam metin + yakınlık), cross-encoder yeniden sıralama ve web tabanlı bir UI içeren eksiksiz bir yerel-öncelikli RAG sistemi oluşturduk — hepsi tamamen kullanıcının makinesinde çalışıyor.
Mimari
- Belge Yükleyicileri: PDF, DOCX, XLSX, CSV, HTML, Markdown ve düz metin için biçime özel ayrıştırıcılar
- Chunker: Sayfa, çalışma sayfası ve başlık sınırlarını koruyan yapıya duyarlı bölme
- Embeddings: Transformers.js aracılığıyla yerel embedding modeli (harici API çağrısı yok)
- Vektör Veritabanı: Embedding depolama ve benzerlik araması için LanceDB (sunucusuz, dosya tabanlı)
- Tam Metin Arama: Sözcük eşleştirme için trigram tabanlı indeksleme
- Reranker: Bağlama duyarlı sonuç puanlaması için Cross-encoder modeli
- Sorgu Analizcisi: Anlamsal ve yapılandırılmış sorgular arasında niyet algılama yönlendirmesi
- Web Sunucusu: Proje yönetimi ve arama uç noktaları ile Express.js API'si
- Frontend: Belge yükleme, yönetimi ve etkileşimli arama için web tabanlı kullanıcı arayüzü
Belge İşleme Hattı
Çoklu Biçim Yükleyicileri
Bir kayıt düzeni, dosya türünü otomatik olarak algılar ve uygun ayrıştırıcıya yönlendirir:
- PDF — Sayfa düzeyinde segmentasyon ile metin çıkarma
- Word (.docx/.doc) — Belge hiyerarşisini koruyan başlık duyarlı ayrıştırma
- Excel/CSV — Başlık algılama ve satır düzeyinde içerik ile sayfa sayfa ayrıştırma
- HTML — Yapı korumalı etiket duyarlı çıkarma
- Markdown — Başlık tabanlı bölüm ayrıştırma
- Düz Metin — Satır tabanlı segmentasyon
Her yükleyici, içeriğin yanı sıra meta verileri (başlık, yazar, oluşturma tarihi, sayfa/çalışma sayfası sayısı, kelime sayısı) çıkararak, kaynak referansları içeren yapılandırılmış bölümler üretir.
Yapı Duyarlı Parçalama (Chunking)
Naif metin bölmenin aksine, chunker belge sınırlarına saygı gösterir:
- Sayfa sonlarını (PDF'ler), çalışma sayfası sınırlarını (e-tablolar) ve başlık hiyerarşisini (Word/Markdown) korur
- Yapılandırılabilir chunk boyutu ve örtüşme ile belirteç tabanlı boyutlandırma
- Hiyerarşik geri dönüş: önce bölümlere, sonra paragraflara, sonra cümlelere böler
- Her chunk, atıf için kaynak meta verilerini (sayfa numarası, çalışma sayfası adı, başlık) saklar
Embedding ve İndeksleme
Yerel Embedding Modeli
- Transformers.js aracılığıyla tamamen yerel olarak çalışır — makineden hiçbir veri ayrılmaz
- Performans optimizasyonu için nicelenmiş (quantized) model
- Verimli toplu işleme için toplu embedding
- Sözcük sınırlarında L2 normalizasyonu ile otomatik kesme
Vektör Depolama
LanceDB sunucusuz vektör depolama sağlar:
- Dosya tabanlı (ayrı bir veritabanı sunucusuna gerek yok)
- Bağımsız indekslerle proje başına izolasyon
- Tekilleştirme için SHA256 tabanlı önbellek anahtarları
- Filtrelenmiş alma için vektörlerin yanında saklanan meta veriler
Hibrit Arama Hattı
Alma hattı, herhangi bir tek yaklaşımdan daha iyi sonuçlar için üç sıralama sinyalini birleştirir:
Sinyal 1: Embedding Arama (Anlamsal)
Vektör benzerliği araması, farklı kelimeler kullanılsa bile ilgili anlama sahip parçaları bulur. Yeniden ifade etme, eşanlamlılar ve kavramsal sorguları yönetir.
Sinyal 2: Tam Metin Arama (Sözcüksel)
Jaccard benzerliği ile trigram tabanlı indeksleme, embedding aramanın kaçırabileceği kesin anahtar kelime eşleşmelerini yakalar — teknik terimler, isimler ve tanımlayıcılar için önemlidir.
Sinyal 3: Yakınlık Artışı
Üstel bozulma ağırlıklandırması, yakın zamanda erişilen veya değiştirilen belgeleri tercih ederek güncel bilgilerin önce ortaya çıkmasını sağlar.
Puan Kombinasyonu
Sinyaller yapılandırılabilir ağırlıklarla (varsayılan: %50 anlamsal, %25 sözcüksel, %25 yakınlık) birleştirilir, normalleştirilir ve minimum puan eşiği ile filtrelenir.
Cross-Encoder Yeniden Sıralama
İlk alımdan sonra, bir cross-encoder modeli en iyi adayları yeniden puanlar:
- Bağlama duyarlı puanlama, sorgu-belge çiftlerini birlikte (bağımsız olarak değil) değerlendirir
- Terim çakışması için anahtar kelime artırma hesaplaması
- Harmanlanmış puanlama (cross-encoder + anahtar kelime sinyalleri)
- Yalnızca ilk geçiş alımından daha yüksek hassasiyete sahip nihai sıralı bir liste üretir
Yapılandırılmış Veri Desteği
E-tablo içeriği için sistem ek yetenekler sunar:
- Sütun türlerinin otomatik algılanması (sayısal, tarih, boolean, dize)
- Doğal dil filtreleme (örn. "eşiğin üzerinde maaşı olan mühendislik çalışanları")
- Toplama desteği (sayım, toplam, ortalama, min, maks)
- Sorgu analizcisi, yapılandırılmış sorguları embedding arama yerine özel bir motora yönlendirir
Web Arayüzü
- Proje Yönetimi — Bilgi tabanı projeleri oluşturma, güncelleme ve silme
- Belge Yükleme — Biçim otomatik algılama ile sürükle ve bırak dosya yükleme
- Belge Oluşturma — Doğrudan kullanıcı arayüzünde metinden belge oluşturma
- Etkileşimli Arama — Sıralı sonuçlarla doğal dil sorgu arayüzü
- İstatistikler — Proje başına indeks boyutu, belge sayısı ve biçim dağılımı
Temel Özellikler
- Tamamen Yerel — Tüm işlem cihaz üzerinde; embedding'ler veya arama için harici API çağrısı yok
- 9 Giriş Biçimi — PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, düz metin
- Yapı Duyarlı Parçalama (Chunking) — Sayfaları, çalışma sayfalarını ve başlıkları chunk sınırları olarak korur
- Hibrit Arama — Daha iyi alma için anlamsal, sözcüksel ve yakınlık sinyallerini birleştirir
- Cross-Encoder Yeniden Sıralama — Daha yüksek hassasiyetli sonuçlar için ikinci geçiş puanlama
- Yapılandırılmış Sorgular — E-tablo verileri üzerinde doğal dil filtreleme ve toplama
- Sunucusuz Vektör Veritabanı — Altyapı yükü olmayan LanceDB dosya tabanlı depolama
- Belge Yazma — PDF, DOCX ve XLSX oluşturma için dışa aktarma yetenekleri
- Proje İzolasyonu — Ayrı indekslerle bağımsız bilgi tabanları
- Web UI — Belge yönetimi ve etkileşimli arama için eksiksiz arayüz
Sonuçlar
Teknoloji Yığını
caseStudyDetail.more Vaka Çalışmaları
Daha fazla teknik uygulamamızı keşfedin
Yapay Zeka Destekli Elektronik Tablo ve Belge Analizi, Çoklu Ajan Orkestrasyonu ve Belgeler Arası Referans ile
Bir kurumsal veri ekibi, geniş elektronik tablo ve belge koleksiyonlarını (Excel, CSV, Google Sheets, PDFs, Word docs) doğal dil kullanarak analiz etme, sorgulama ve düzenleme ihtiyacı duydu; bu işlemde birden çok dosya arasında veri çapraz referansı yapma ve manuel veri düzenleme olmaksızın çok adımlı analitik iş akışlarını yürütme yeteneği gerekiyordu.
AI Destekli Fatura İşleme (OCR ve QuickBooks Entegrasyonu ile)
Ayda yüzlerce satıcı faturasını işleyen orta ölçekli bir işletme, fatura verilerini AI/OCR kullanarak otomatik olarak çıkarıp muhasebe ve ödeme takibi için doğrudan QuickBooks'a senkronize ederek manuel veri girişini ortadan kaldırmak istedi.
İşletmenizi Dönüştürmeye Hazır mısınız?
Zorluklarınıza benzer çözümler uygulamamızın yollarını konuşalım.