Sistem RAG Dokumen Lokal-Pertama dengan Pencarian Hibrida & Dukungan Multi-Format
Sebuah tim yang mengembangkan alat untuk developer membutuhkan sistem kecerdasan 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 batasan signifikan untuk kasus penggunaan yang mementingkan privasi dan berfokus pada developer:
- Ketergantungan API Eksternal โ Kebanyakan alat RAG memerlukan 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 โ Pemisahan teks yang naif mengabaikan struktur dokumen (halaman, lembar, judul), menciptakan chunk yang miskin konteks
- Kesenjangan Kata Kunci โ Pencarian berbasis embedding murni melewatkan kecocokan kata kunci yang tepat yang akan ditangkap oleh pencarian leksikal
- Ketidakmampuan Memproses Spreadsheet โ Sistem RAG tidak dapat menangani data tabular terstruktur atau menjawab pertanyaan penyaringan/agregasi
- Tanpa Reranking โ Pengambilan lintasan pertama sering kali memunculkan hasil yang hanya relevan sebagian tanpa filter kualitas lintasan kedua
Solusi Kami
Kami membangun sistem RAG lokal-pertama yang lengkap dengan penyerapan dokumen multi-format, chunking yang peka 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
- Pemuat Dokumen: Parser spesifik format untuk PDF, DOCX, XLSX, CSV, HTML, Markdown, dan teks biasa
- Chunker: Pemisahan yang peka struktur yang mempertahankan batas halaman, lembar, dan judul
- Embeddings: Model embedding lokal melalui Transformers.js (tanpa panggilan API eksternal)
- Basis Data Vektor: LanceDB (serverless, berbasis file) untuk penyimpanan embedding dan pencarian kemiripan
- Pencarian Teks Lengkap: Pengindeksan berbasis trigram untuk pencocokan leksikal
- Reranker: Model cross-encoder untuk penilaian hasil yang peka konteks
- Penganalisis Kueri: Perutean deteksi maksud antara kueri semantik dan terstruktur
- Server Web: API Express.js dengan manajemen proyek dan endpoint pencarian
- Frontend: UI berbasis web untuk unggah dokumen, manajemen, dan pencarian interaktif
Pipeline Pemrosesan Dokumen
Pemuat Multi-Format
Pola registri secara otomatis mendeteksi jenis file dan merutekannya ke parser yang sesuai:
- PDF โ Ekstraksi teks dengan segmentasi tingkat halaman
- Word (.docx/.doc) โ Parsing peka judul yang mempertahankan hierarki dokumen
- Excel/CSV โ Parsing lembar demi lembar dengan deteksi header dan konten tingkat baris
- HTML โ Ekstraksi peka tag dengan pelestarian struktur
- Markdown โ Parsing bagian berbasis judul
- Teks Biasa โ Segmentasi berbasis baris
Setiap pemuat mengekstrak metadata (judul, penulis, tanggal pembuatan, jumlah halaman/lembar, jumlah kata) di samping konten, menghasilkan bagian terstruktur dengan referensi sumber.
Chunking yang Peka Struktur
Tidak seperti pemisahan teks yang naif, chunker menghormati batas dokumen:
- Mempertahankan pemisah halaman (PDF), batas lembar (spreadsheet), dan hierarki judul (Word/Markdown)
- Penentuan ukuran berbasis token dengan ukuran chunk dan tumpang tindih yang dapat dikonfigurasi
- Hierarchical fallback: membagi berdasarkan bagian terlebih dahulu, lalu paragraf, lalu 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 basis data terpisah)
- Isolasi per proyek dengan indeks independen
- Kunci cache berbasis SHA256 untuk deduplikasi
- Metadata disimpan di samping 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 kemiripan vektor menemukan chunk dengan makna terkait bahkan ketika kata-kata yang berbeda digunakan. Menangani parafrasa, sinonim, dan kueri konseptual.
Sinyal 2: Pencarian Teks Lengkap (Leksikal)
Pengindeksan berbasis trigram dengan kemiripan Jaccard menangkap kecocokan kata kunci yang tepat yang mungkin dilewatkan oleh pencarian embedding โ penting untuk istilah teknis, nama, dan pengidentifikasi.
Sinyal 3: Peningkatan Kebaruan
Pembobotan peluruhan eksponensial mengutamakan dokumen yang baru diakses atau dimodifikasi, memastikan informasi terkini muncul pertama.
Kombinasi Skor
Sinyal digabungkan dengan bobot yang dapat dikonfigurasi (default: 50% semantik, 25% leksikal, 25% kebaruan), dinormalisasi, dan disaring oleh ambang batas skor minimum.
Reranking Cross-Encoder
Setelah pengambilan awal, model cross-encoder menilai ulang kandidat teratas:
- Penilaian yang peka konteks mempertimbangkan pasangan kueri-dokumen bersama-sama (tidak secara independen)
- Perhitungan peningkatan kata kunci untuk tumpang tindih istilah
- Penilaian campuran (cross-encoder + sinyal kata kunci)
- Menghasilkan daftar peringkat akhir dengan presisi lebih tinggi daripada pengambilan lintasan pertama saja
Dukungan Data Terstruktur
Untuk konten spreadsheet, sistem menyediakan kemampuan tambahan:
- Deteksi otomatis jenis kolom (numerik, tanggal, boolean, string)
- Pemfilteran bahasa alami (misalnya, "karyawan di bidang teknik dengan gaji di atas ambang batas")
- Dukungan agregasi (count, sum, average, min, max)
- Penganalisis kueri merutekan kueri terstruktur ke mesin khusus daripada pencarian embedding
Antarmuka Web
- Manajemen Proyek โ Membuat, memperbarui, dan menghapus proyek basis pengetahuan
- Unggah Dokumen โ Unggah file drag-and-drop dengan deteksi format otomatis
- Pembuatan Dokumen โ Membuat dokumen dari teks langsung di UI
- Pencarian Interaktif โ Antarmuka kueri bahasa alami dengan hasil peringkat
- 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 yang Peka 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 lintasan kedua untuk hasil presisi lebih tinggi
- Kueri Terstruktur โ Pemfilteran dan agregasi bahasa alami pada data spreadsheet
- DB Vektor Serverless โ 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
- UI Web โ 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.