Sistem RAG Dokumen Lokal-Utama dengan Hybrid Search & Dukungan Multi-Format
Sebuah tim yang membangun perangkat pengembang membutuhkan sistem inteligensi dokumen yang sepenuhnya lokal, menjaga privasi, yang dapat menyerap berbagai format file, membangun basis pengetahuan yang dapat dicari, dan menjawab pertanyaan bahasa alami menggunakan Retrieval-Augmented Generation โ tanpa mengirim data apa pun ke API eksternal.
Diskusikan Proyek Anda
Tantangan
Solusi RAG yang ada memiliki keterbatasan signifikan untuk kasus penggunaan yang mementingkan privasi dan berfokus pada pengembang:
- Ketergantungan API Eksternal โ Sebagian besar perangkat RAG mengharuskan pengiriman konten dokumen ke API embedding berbasis cloud, melanggar persyaratan privasi
- Dukungan Format Terbatas โ Solusi biasanya hanya menangani teks biasa atau PDF, mengabaikan spreadsheet, dokumen Word, HTML, dan Markdown
- Chunking yang Buruk โ Pembagian teks yang naif mengabaikan struktur dokumen (halaman, lembar, judul), menciptakan chunk yang miskin konteks
- Kesenjangan Kata Kunci โ Pencarian berbasis embedding murni melewatkan pencocokan kata kunci persis yang akan ditangkap oleh pencarian leksikal
- Kebutaan Spreadsheet โ Sistem RAG tidak dapat menangani data tabel terstruktur atau menjawab pertanyaan penyaringan/agregasi
- Tanpa Reranking โ Pengambilan data pertama sering kali hanya menampilkan hasil yang relevan sebagian tanpa filter kualitas tahap kedua
Solusi Kami
Kami membangun sistem RAG lokal-utama yang lengkap dengan penyerapan dokumen multi-format, chunking sadar-struktur, pembuatan embedding lokal, pipeline pencarian hibrida (semantik + teks lengkap + kebaruan), reranking cross-encoder, dan UI berbasis web โ semuanya berjalan sepenuhnya di mesin pengguna.
Arsitektur
- Document Loaders: Parser spesifik format untuk PDF, DOCX, XLSX, CSV, HTML, Markdown, dan teks biasa
- Chunker: Pemisahan sadar-struktur yang mempertahankan batas halaman, lembar, dan judul
- Embeddings: Model embedding lokal melalui Transformers.js (tanpa panggilan API eksternal)
- Vector Database: LanceDB (serverless, berbasis file) untuk penyimpanan embedding dan pencarian kesamaan
- Full-Text Search: Pengindeksan berbasis trigram untuk pencocokan leksikal
- Reranker: Model cross-encoder untuk penilaian hasil yang sadar-konteks
- Query Analyzer: Perutean deteksi maksud antara kueri semantik dan terstruktur
- Web Server: API Express.js dengan manajemen proyek dan endpoint pencarian
- Frontend: UI berbasis web untuk unggah dokumen, manajemen, dan pencarian interaktif
Pipeline Pemrosesan Dokumen
Multi-Format Loaders
Pola registri secara otomatis mendeteksi jenis file dan mengarahkannya ke parser yang sesuai:
- PDF โ Ekstraksi teks dengan segmentasi tingkat halaman
- Word (.docx/.doc) โ Parsing sadar-judul yang mempertahankan hierarki dokumen
- Excel/CSV โ Parsing lembar-demi-lembar dengan deteksi header dan konten tingkat baris
- HTML โ Ekstraksi sadar-tag dengan preservasi struktur
- Markdown โ Parsing bagian berbasis judul
- Plain Text โ Segmentasi berbasis baris
Setiap loader mengekstraksi metadata (judul, penulis, tanggal pembuatan, jumlah halaman/lembar, jumlah kata) bersama dengan konten, menghasilkan bagian terstruktur dengan referensi sumber.
Chunking Sadar-Struktur
Tidak seperti pembagian teks yang naif, chunker menghormati batas dokumen:
- Mempertahankan jeda halaman (PDF), batas lembar (spreadsheet), dan hierarki judul (Word/Markdown)
- Penentuan ukuran berbasis token dengan ukuran chunk dan tumpang tindih yang dapat dikonfigurasi
- Fallback hierarkis: membagi berdasarkan bagian terlebih dahulu, kemudian paragraf, kemudian kalimat
- Setiap chunk mempertahankan metadata sumber (nomor halaman, nama lembar, judul) untuk atribusi
Embedding & Pengindeksan
Model Embedding Lokal
- Berjalan sepenuhnya secara lokal melalui Transformers.js โ tidak ada data yang meninggalkan mesin
- Model terkuantisasi untuk optimasi kinerja
- Embedding batch untuk pemrosesan massal yang efisien
- Pemotongan otomatis pada batas kata dengan normalisasi L2
Penyimpanan Vektor
LanceDB menyediakan penyimpanan vektor serverless:
- Berbasis file (tidak memerlukan server database terpisah)
- Isolasi per-proyek dengan indeks independen
- Kunci cache berbasis SHA256 untuk deduplikasi
- Metadata disimpan bersama vektor untuk pengambilan yang difilter
Pipeline Pencarian Hibrida
Pipeline pengambilan menggabungkan tiga sinyal peringkat untuk hasil yang lebih baik daripada pendekatan tunggal mana pun:
Sinyal 1: Pencarian Embedding (Semantik)
Pencarian kesamaan vektor menemukan chunk dengan makna terkait bahkan ketika kata-kata yang berbeda digunakan. Menangani parafrase, sinonim, dan kueri konseptual.
Sinyal 2: Pencarian Teks Lengkap (Leksikal)
Pengindeksan berbasis trigram dengan kesamaan Jaccard menangkap pencocokan kata kunci persis yang mungkin dilewatkan oleh pencarian embedding โ penting untuk istilah teknis, nama, dan pengidentifikasi.
Sinyal 3: Peningkatan Kebaruan
Pembobotan peluruhan eksponensial mendukung dokumen yang baru diakses atau dimodifikasi, memastikan informasi terbaru muncul pertama.
Kombinasi Skor
Sinyal digabungkan dengan bobot yang dapat dikonfigurasi (default: 50% semantik, 25% leksikal, 25% kebaruan), dinormalisasi, dan difilter oleh ambang batas skor minimum.
Reranking Cross-Encoder
Setelah pengambilan awal, model cross-encoder menilai ulang kandidat teratas:
- Penilaian sadar-konteks mempertimbangkan pasangan kueri-dokumen secara bersamaan (bukan secara independen)
- Perhitungan peningkatan kata kunci untuk tumpang tindih istilah
- Penilaian campuran (cross-encoder + sinyal kata kunci)
- Menghasilkan daftar peringkat akhir dengan presisi yang lebih tinggi daripada pengambilan data pertama saja
Dukungan Data Terstruktur
Untuk konten spreadsheet, sistem menyediakan kemampuan tambahan:
- Deteksi otomatis jenis kolom (numerik, tanggal, boolean, string)
- Penyaringan bahasa alami (misalnya, "karyawan di bidang teknik dengan gaji di atas ambang batas")
- Dukungan agregasi (count, sum, average, min, max)
- Query analyzer mengarahkan kueri terstruktur ke mesin khusus daripada pencarian embedding
Antarmuka Web
- Manajemen Proyek โ Membuat, memperbarui, dan menghapus proyek basis pengetahuan
- Unggah Dokumen โ Unggah file dengan seret-dan-lepas dengan deteksi otomatis format
- Pembuatan Dokumen โ Membuat dokumen dari teks langsung di UI
- Pencarian Interaktif โ Antarmuka kueri bahasa alami dengan hasil terperingkat
- Statistik โ Ukuran indeks, jumlah dokumen, dan distribusi format per proyek
Fitur Utama
- Sepenuhnya Lokal โ Semua pemrosesan di perangkat; tanpa panggilan API eksternal untuk embedding atau pencarian
- 9 Format Input โ PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, teks biasa
- Chunking Sadar-Struktur โ Mempertahankan halaman, lembar, dan judul sebagai batas chunk
- Pencarian Hibrida โ Menggabungkan sinyal semantik, leksikal, dan kebaruan untuk pengambilan yang lebih baik
- Reranking Cross-Encoder โ Penilaian tahap kedua untuk hasil presisi yang lebih tinggi
- Kueri Terstruktur โ Penyaringan dan agregasi bahasa alami pada data spreadsheet
- Serverless Vector DB โ Penyimpanan berbasis file LanceDB tanpa overhead infrastruktur
- Penulisan Dokumen โ Kemampuan ekspor untuk pembuatan PDF, DOCX, dan XLSX
- Isolasi Proyek โ Basis pengetahuan independen dengan indeks terpisah
- Web UI โ Antarmuka lengkap untuk manajemen dokumen dan pencarian interaktif
Hasil
Tumpukan Teknologi
caseStudyDetail.more Studi Kasus
Jelajahi lebih banyak implementasi teknis kami
Analisis Spreadsheet & Dokumen Didukung AI dengan Orkes Multi-Agen dan Referensi Lintas Dokumen
Sebuah tim data perusahaan perlu menganalisis, mengkueri, dan mengedit koleksi besar spreadsheet dan dokumen (Excel, CSV, Google Sheets, PDF, Word docs) menggunakan bahasa alami โ dengan kemampuan untuk mereferensikan data di seluruh beberapa file dan menjalankan alur kerja analitis multi-langkah tanpa penanganan data manual.
Pemrosesan Faktur Bertenaga AI dengan OCR dan Integrasi QuickBooks
Sebuah bisnis menengah yang memproses ratusan faktur vendor setiap bulan perlu menghilangkan entri data manual dengan mengekstraksi data faktur secara otomatis menggunakan AI/OCR dan menyinkronkannya langsung ke QuickBooks untuk pembukuan dan pelacakan pembayaran.
Siap Mentransformasi Bisnis Anda?
Mari diskusikan bagaimana kami dapat menerapkan solusi serupa untuk tantangan Anda.