Hibrit Arama ve Çok Biçimli Destekli Yerel-Önce Belge RAG Sistemi
Geliştirici araçları geliştiren bir ekip, birden çok dosya formatını işleyebilen, 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 — harici API'lere hiçbir veri göndermeden.
Projenizi Tartışın
Zorluk
Mevcut RAG çözümlerinin gizliliğe önem veren ve geliştirici odaklı kullanım durumları 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ı Format Desteği — Çözümler genellikle yalnızca düz metin veya PDF'i ele alıyor, e-tabloları, Word belgelerini, HTML'yi ve Markdown'ı göz ardı ediyordu.
- Kötü Chunking — Yetersiz metin bölme, belge yapısını (sayfalar, tablolar, başlıklar) göz ardı ederek bağlamı zayıf chunk'lar oluşturuyordu.
- Anahtar Kelime Boşlukları — Saf embedding tabanlı arama, lexical search'ün yakalayacağı kesin 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.
- Reranking Yokluğu — İlk geçişte yapılan retrieval, ikinci bir kalite filtresi olmadan genellikle yalnızca kısmen ilgili sonuçlar gösteriyordu.
Çözümümüz
Çok formatlı belge alımı, yapıya duyarlı chunking, yerel embedding üretimi, hibrit bir arama hattı (semantic + full-text + recency), cross-encoder reranking ve web tabanlı bir UI ile tamamen yerel-önce bir RAG sistemi oluşturduk — hepsi tamamen kullanıcının makinesinde çalışıyor.
Mimari
- Document Loaders: PDF, DOCX, XLSX, CSV, HTML, Markdown ve düz metin için formata özel ayrıştırıcılar
- Chunker: Sayfa, sayfa 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)
- Vector Database: Embedding depolama ve benzerlik araması için LanceDB (sunucusuz, dosya tabanlı)
- Full-Text Search: Lexical eşleştirme için Trigram tabanlı dizinleme
- Reranker: Bağlama duyarlı sonuç puanlaması için Cross-encoder modeli
- Query Analyzer: Semantic ve yapılandırılmış sorgular arasında niyet algılama yönlendirmesi
- Web Server: Proje yönetimi ve arama uç noktalarına sahip Express.js API'si
- Frontend: Belge yükleme, yönetimi ve etkileşimli arama için web tabanlı UI
Belge İşleme Hattı
Çok Formatlı Yükleyiciler
Bir kayıt deseni, dosya türünü otomatik olarak algılar ve uygun ayrıştırıcıya yönlendirir:
- PDF — Sayfa düzeyinde bölümlendirme ile metin çıkarma
- Word (.docx/.doc) — Belge hiyerarşisini koruyan başlığa duyarlı ayrıştırma
- Excel/CSV — Başlık algılama ve satır düzeyinde içerikle sayfa sayfa ayrıştırma
- HTML — Yapı korumalı etikete duyarlı çıkarma
- Markdown — Başlık tabanlı bölüm ayrıştırma
- Düz Metin — Satır tabanlı bölümlendirme
Her yükleyici, içerikle birlikte meta verileri (başlık, yazar, oluşturma tarihi, sayfa/sayfa sayısı, kelime sayısı) çıkararak kaynak referanslarına sahip yapılandırılmış bölümler üretir.
Yapı Odaklı Chunking
Basit metin bölmeden farklı olarak, chunker belge sınırlarına saygı duyar:
- Sayfa sonlarını (PDF'ler), sayfa sınırlarını (e-tablolar) ve başlık hiyerarşisini (Word/Markdown) korur
- Yapılandırılabilir chunk boyutu ve çakışması ile token 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ı, sayfa adı, başlık) saklar
Embedding ve Dizinleme
Yerel Embedding Modeli
- Transformers.js aracılığıyla tamamen yerel olarak çalışır — makineden veri çıkışı olmaz
- Performans optimizasyonu için Quantized model
- Verimli toplu işlem için Batch embedding
- L2 normalization ile kelime sınırlarında otomatik kesme
Vektör Depolama
LanceDB sunucusuz vektör depolaması sağlar:
- Dosya tabanlı (ayrı bir veritabanı sunucusuna gerek yok)
- Bağımsız dizinlerle proje bazında izolasyon
- Tekrarı önlemek için SHA256 tabanlı önbellek anahtarları
- Filtrelenmiş retrieval için vektörlerle birlikte depolanan meta veriler
Hibrit Arama Hattı
Retrieval hattı, tek bir yaklaşımdan daha iyi sonuçlar için üç sıralama sinyalini birleştirir:
Sinyal 1: Embedding Arama (Semantic)
Vektör benzerlik araması, farklı kelimeler kullanılsa bile ilgili anlama sahip chunk'ları bulur. Eşanlamlı kelimeleri, eşanlamlıları ve kavramsal sorguları ele alır.
Sinyal 2: Full-Text Search (Lexical)
Jaccard benzerliği ile Trigram tabanlı dizinleme, 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: Yenilik Güçlendirmesi (Recency Boost)
Üstel bozunum ağırlıklandırması, yakın zamanda erişilen veya değiştirilen belgeleri tercih ederek güncel bilgilerin önce yüzeye çıkmasını sağlar.
Skor Kombinasyonu
Sinyaller yapılandırılabilir ağırlıklarla (varsayılan: %50 semantic, %25 lexical, %25 recency) birleştirilir, normalize edilir ve minimum skor eşiği ile filtrelenir.
Cross-Encoder Reranking
İlk retrieval'dan 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 Keyword boost hesaplaması
- Karışık puanlama (cross-encoder + keyword sinyalleri)
- Yalnızca ilk geçiş retrieval'ından daha yüksek hassasiyetle nihai bir sıralı liste üretir
Yapılandırılmış Veri Desteği
E-tablo içeriği için sistem ek özellikler sunar:
- Sütun türlerinin otomatik algılanması (numeric, date, boolean, string)
- Doğal dil filtrelemesi (örn. "mühendislikteki çalışanlar eşik üzerinde maaşla")
- Toplama desteği (count, sum, average, min, max)
- Query analyzer, yapılandırılmış sorguları embedding araması yerine özel bir motora yönlendirir
Web Arayüzü
- Proje Yönetimi — Bilgi tabanı projeleri oluşturma, güncelleme ve silme
- Belge Yükleme — Format otomatik algılama ile sürükle ve bırak dosya yükleme
- Belge Oluşturma — Doğrudan UI'da metinden belge oluşturma
- Etkileşimli Arama — Sıralı sonuçlarla doğal dil sorgu arayüzü
- İstatistikler — Proje başına dizin boyutu, belge sayısı ve format dağılımı
Temel Özellikler
- Tamamen Yerel — Cihaz üzerinde tüm işlem; embedding'ler veya arama için harici API çağrısı yok
- 9 Giriş Formatı — PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, düz metin
- Yapı Odaklı Chunking — Sayfaları, tabloları ve başlıkları chunk sınırları olarak korur
- Hibrit Arama — Daha iyi retrieval için semantic, lexical ve recency sinyallerini birleştirir
- Cross-Encoder Reranking — Daha yüksek hassasiyetli sonuçlar için ikinci geçiş puanlaması
- Yapılandırılmış Sorgular — E-tablo verileri üzerinde doğal dil filtrelemesi ve toplama
- Serverless Vector DB — 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ı dizinlere sahip 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.