Lokal-Una na Sistema ng RAG ng Dokumento na may Hybrid Search at Suporta sa Maraming Format
Isang pangkat na bumubuo ng mga tool para sa developer ang nangailangan ng isang ganap na lokal, pang-seguridad sa privacy na sistema ng document intelligence na kayang kumain ng maraming format ng file, bumuo ng mga mahahanap na knowledge base, at sumagot sa mga natural na wika na query gamit ang Retrieval-Augmented Generation (RAG) โ nang hindi nagpapadala ng anumang data sa mga external na API.
Pag-usapan ang Iyong Proyekto
Ang Hamon
Ang mga umiiral na solusyon ng RAG ay may malalaking limitasyon para sa mga kaso ng paggamit na may kamalayan sa privacy at nakatuon sa developer:
- Pagdepende sa External API โ Karamihan sa mga tool ng RAG ay nangangailangan ng pagpapadala ng nilalaman ng dokumento sa cloud-based embedding APIs, na lumalabag sa mga kinakailangan sa privacy
- Limitadong Suporta sa Format โ Karaniwang pinangangasiwaan lamang ng mga solusyon ang plain text o PDF, na hindi pinapansin ang mga spreadsheet, Word docs, HTML, at Markdown
- Mababang Uri ng Pag-chunk โ Ang simpleng paghahati ng teksto ay hindi pinansin ang istraktura ng dokumento (mga pahina, sheet, heading), na lumilikha ng mga chunk na mahirap sa konteksto
- Kakulangan sa Keyword โ Ang purong paghahanap na batay sa embedding ay hindi nakahanap ng eksaktong mga katugma ng keyword na mahahanap ng lexical search
- Kahirapan sa Spreadsheet โ Hindi kayang pangasiwaan ng mga sistema ng RAG ang structured tabular data o sagutin ang mga query sa pag-filter/aggregation
- Walang Reranking โ Ang unang pagkuha ay madalas na naglalabas lamang ng bahagyang kaugnay na resulta nang walang pangalawang pass na filter ng kalidad
Ang Aming Solusyon
Binuo namin ang isang kumpletong lokal-una na sistema ng RAG na may multi-format na pagkuha ng dokumento, structure-aware na pag-chunk, lokal na pagbuo ng embedding, isang hybrid search pipeline (semantic + full-text + recency), cross-encoder reranking, at isang web-based na UI โ lahat ay tumatakbo nang buo sa makina ng user.
Arkitektura
- Mga Document Loader: Mga parser na partikular sa format para sa PDF, DOCX, XLSX, CSV, HTML, Markdown, at plain text
- Chunker: Paghahati na may kamalayan sa istraktura na nagpapanatili ng mga hangganan ng pahina, sheet, at heading
- Embeddings: Lokal na embedding model sa pamamagitan ng Transformers.js (walang external na tawag sa API)
- Vector Database: LanceDB (serverless, file-based) para sa embedding storage at similarity search
- Full-Text Search: Trigram-based indexing para sa lexical matching
- Reranker: Cross-encoder model para sa context-aware na pagmamarka ng resulta
- Query Analyzer: Pagruruta ng pagtukoy ng intensyon sa pagitan ng semantic at structured na mga query
- Web Server: Express.js API na may project management at search endpoints
- Frontend: Web-based na UI para sa pag-upload, pamamahala, at interactive na paghahanap ng dokumento
Pipeline ng Pagpoproseso ng Dokumento
Mga Multi-Format Loader
Isang registry pattern ang awtomatikong nakikita ang uri ng file at iniruruta sa tamang parser:
- PDF โ Pagkuha ng teksto na may page-level na segmentasyon
- Word (.docx/.doc) โ Heading-aware na pag-parse na nagpapanatili ng hierarchy ng dokumento
- Excel/CSV โ Sheet-by-sheet na pag-parse na may pagtukoy ng header at row-level na nilalaman
- HTML โ Tag-aware na pagkuha na may pagpapanatili ng istraktura
- Markdown โ Heading-based na pag-parse ng seksyon
- Plain Text โ Line-based na segmentasyon
Bawat loader ay kumukuha ng metadata (pamagat, may-akda, petsa ng paglikha, bilang ng pahina/sheet, bilang ng salita) kasama ng nilalaman, na gumagawa ng structured na mga seksyon na may source references.
Structure-Aware na Pag-chunk
Hindi tulad ng simpleng paghahati ng teksto, iginagalang ng chunker ang mga hangganan ng dokumento:
- Nagpapanatili ng mga page break (mga PDF), mga hangganan ng sheet (mga spreadsheet), at hierarchy ng heading (Word/Markdown)
- Token-based na pagpapalaki na may configurable na chunk size at overlap
- Hierarchical na fallback: hinahati muna ayon sa mga seksyon, pagkatapos ay mga talata, pagkatapos ay mga pangungusap
- Ang bawat chunk ay nagpapanatili ng source metadata (numero ng pahina, pangalan ng sheet, heading) para sa attribution
Embedding at Pag-index
Lokal na Embedding Model
- Tumatakbo nang buo nang lokal sa pamamagitan ng Transformers.js โ walang data ang umaalis sa makina
- Quantized model para sa performance optimization
- Batch embedding para sa mahusay na bulk processing
- Awtomatikong pagputol sa mga hangganan ng salita na may L2 normalization
Vector Storage
Nagbibigay ang LanceDB ng serverless vector storage:
- Batay sa file (walang hiwalay na database server ang kailangan)
- Paghihiwalay bawat proyekto na may independent na mga index
- SHA256-based na mga cache key para sa deduplication
- Metadata na nakaimbak kasama ng mga vector para sa filtered retrieval
Hybrid Search Pipeline
Pinagsasama ng retrieval pipeline ang tatlong ranking signal para sa mas mahusay na resulta kaysa sa anumang solong diskarte:
Signal 1: Embedding Search (Semantic)
Ang Vector similarity search ay nakakahanap ng mga chunk na may kaugnay na kahulugan kahit na magkakaiba ang mga salitang ginagamit. Kinakaya ang paraphrasing, synonyms, at conceptual queries.
Signal 2: Full-Text Search (Lexical)
Ang Trigram-based indexing na may Jaccard similarity ay nakakahanap ng eksaktong mga katugma ng keyword na maaaring hindi mahuli ng embedding search โ mahalaga para sa mga technical terms, pangalan, at identifiers.
Signal 3: Recency Boost
Ang Exponential decay weighting ay pumapabor sa mga kamakailang na-access o nabagong dokumento, na tinitiyak na ang up-to-date na impormasyon ang unang lumalabas.
Kumbinasyon ng Marka
Ang mga signal ay pinagsasama sa configurable na mga timbang (default: 50% semantic, 25% lexical, 25% recency), binibigyan ng normalization, at sinasala ng minimum score threshold.
Cross-Encoder Reranking
Matapos ang paunang pagkuha, isang cross-encoder model ang muling nagmamarka sa mga nangungunang kandidato:
- Context-aware na pagmamarka ay isinasaalang-alang ang mga pares ng query-dokumento nang magkasama (hindi nang hiwalay)
- Pagkalkula ng keyword boost para sa term overlap
- Pinaghalong pagmamarka (cross-encoder + keyword signals)
- Gumagawa ng isang pinal na ranked list na may mas mataas na precision kaysa sa unang-pass na pagkuha lamang
Suporta sa Structured Data
Para sa nilalaman ng spreadsheet, nagbibigay ang system ng karagdagang kakayahan:
- Awtomatikong pagtukoy ng mga uri ng column (numeric, date, boolean, string)
- Natural na pag-filter ng wika (hal., "mga empleyado sa engineering na may sahod na lampas sa threshold")
- Suporta sa aggregation (count, sum, average, min, max)
- Ang query analyzer ay nagruruta ng structured queries sa isang dedicated na engine sa halip na embedding search
Web Interface
- Pamamahala ng Proyekto โ Gumawa, mag-update, at magtanggal ng mga proyekto ng knowledge base
- Pag-upload ng Dokumento โ Pag-upload ng file gamit ang drag-and-drop na may awtomatikong pagtukoy ng format
- Paglikha ng Dokumento โ Gumawa ng mga dokumento mula sa teksto nang direkta sa UI
- Interactive na Paghahanap โ Natural language query interface na may ranked na resulta
- Mga Istatistika โ Laki ng index, bilang ng dokumento, at distribusyon ng format bawat proyekto
Mga Pangunahing Tampok
- Ganap na Lokal โ Lahat ng pagproseso ay nasa device; walang external na tawag sa API para sa embeddings o paghahanap
- 9 na Input Format โ PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, plain text
- Structure-Aware na Pag-chunk โ Nagpapanatili ng mga pahina, sheet, at heading bilang chunk boundaries
- Hybrid Search โ Pinagsasama ang semantic, lexical, at recency signals para sa mas mahusay na retrieval
- Cross-Encoder Reranking โ Second-pass na pagmamarka para sa mas mataas na precision na resulta
- Structured Queries โ Natural na pag-filter ng wika at aggregation sa data ng spreadsheet
- Serverless Vector DB โ LanceDB file-based na storage na walang infrastructure overhead
- Pagsusulat ng Dokumento โ Mga kakayahan sa pag-export para sa paglikha ng PDF, DOCX, at XLSX
- Paghihiwalay ng Proyekto โ Independent na knowledge bases na may hiwalay na mga index
- Web UI โ Kumpletong interface para sa pamamahala ng dokumento at interactive na paghahanap
Mga Resulta
Technology Stack
caseStudyDetail.more Mga Case Study
Tuklasin ang higit pa sa aming mga teknikal na implementasyon
Pagsusuri ng Spreadsheet at Dokumento na Pinapagana ng AI na may Multi-Agent Orchestration at Cross-Document Reference
Kinailangan ng isang data team ng enterprise na magsuri, mag-query, at mag-edit ng malalaking koleksyon ng spreadsheets at mga dokumento (Excel, CSV, Google Sheets, PDFs, Word docs) gamit ang natural na wika โ na may kakayahang mag-cross-reference ng data sa maraming file at magsagawa ng multi-step analytical workflows nang walang manual na data wrangling.
Pagpoproseso ng Invoice na Pinapagana ng AI gamit ang OCR at Integrasyon ng QuickBooks
Isang katamtamang laking negosyo na nagpoproseso ng daan-daang invoice ng vendor buwan-buwan ang kinailangan alisin ang manu-manong pagpasok ng data sa pamamagitan ng awtomatikong pagkuha ng data ng invoice gamit ang AI/OCR at direktang i-sync ito sa QuickBooks para sa bookkeeping at pagsubaybay sa pagbabayad.
Handa nang Baguhin ang Iyong Negosyo?
Pag-usapan natin kung paano namin mailalapat ang katulad na mga solusyon sa iyong mga hamon.