Lokal-Una na Sistemang RAG para sa Dokumento na may Hybrid Search at Suporta sa Multi-Format
Isang pangkat na gumagawa ng mga developer tool ang nangailangan ng isang ganap na lokal, nagpapanatili ng privacy na sistema ng dokumentong intelligence na kayang kumonsumo ng maraming format ng file, makabuo ng mga nahahanap na knowledge base, at sumagot ng mga natural na tanong sa wika gamit ang Retrieval-Augmented Generation โ nang hindi nagpapadala ng anumang data sa mga panlabas na API.
Pag-usapan ang Iyong Proyekto
Ang Hamon
Ang mga kasalukuyang solusyon ng RAG ay may malaking limitasyon para sa mga use case na sensitibo sa privacy at nakatuon sa developer:
- Pagdedepende sa External API โ Karamihan sa mga RAG tool ay nangangailangan ng pagpapadala ng nilalaman ng dokumento sa mga cloud-based na embedding API, na lumalabag sa mga kinakailangan sa privacy
- Limitadong Suporta sa Format โ Karaniwang hinahawakan lang ng mga solusyon ang plain text o PDF, binabalewala ang mga spreadsheet, Word docs, HTML, at Markdown
- Mahinang Chunking โ Binalewala ng naive text splitting ang istruktura ng dokumento (mga pahina, sheet, heading), na lumilikha ng mga chunk na kulang sa konteksto
- Mga Puwang sa Keyword โ Nawawala sa purong embedding-based search ang eksaktong keyword matches na mahuhuli ng lexical search
- Kakulangan sa Spreadsheet โ Hindi kayang hawakan ng mga RAG system ang structured tabular data o sagutin ang mga filtering/aggregation query
- Walang Reranking โ Ang first-pass retrieval ay kadalasang naglalabas lamang ng bahagyang nauugnay na resulta nang walang second-pass quality filter
Ang Aming Solusyon
Binuo namin ang isang kumpletong lokal-una na sistemang RAG na may multi-format na pagtanggap ng dokumento, structure-aware chunking, 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: Structure-aware splitting na nagpapanatili ng mga hangganan ng pahina, sheet, at heading
- Embeddings: Lokal na embedding model sa pamamagitan ng Transformers.js (walang external API calls)
- 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 result scoring
- Query Analyzer: Intent detection routing sa pagitan ng semantic at structured queries
- Web Server: Express.js API na may project management at search endpoints
- Frontend: Web-based UI para sa document upload, management, at interactive search
Pipeline ng Pagproseso ng Dokumento
Mga Multi-Format Loader
Ang isang registry pattern ay awtomatikong nakakadetect ng uri ng file at nagruruta sa angkop na parser:
- PDF โ Pagkuha ng text na may page-level segmentation
- Word (.docx/.doc) โ Heading-aware parsing na nagpapanatili ng hierarchy ng dokumento
- Excel/CSV โ Sheet-by-sheet parsing na may header detection at row-level na nilalaman
- HTML โ Tag-aware extraction na may pagpapanatili ng istruktura
- Markdown โ Heading-based section parsing
- Plain Text โ Line-based segmentation
Ang bawat loader ay naglalabas ng metadata (pamagat, may-akda, petsa ng paggawa, bilang ng pahina/sheet, bilang ng salita) kasama ang nilalaman, na lumilikha ng mga structured na seksyon na may mga reference ng source.
Structure-Aware Chunking
Hindi tulad ng naive text splitting, iginagalang ng chunker ang mga hangganan ng dokumento:
- Pinapanatili ang mga page break (mga PDF), sheet boundary (mga spreadsheet), at heading hierarchy (Word/Markdown)
- Token-based sizing na may configurable chunk size at overlap
- Hierarchical fallback: naghahati muna ayon sa seksyon, pagkatapos ay sa talata, pagkatapos ay sa pangungusap
- Pinapanatili ng bawat chunk ang source metadata (numero ng pahina, pangalan ng sheet, heading) para sa attribution
Pag-embed at Pag-index
Lokal na Embedding Model
- Ganap na tumatakbo nang lokal sa pamamagitan ng Transformers.js โ walang data na umaalis sa makina
- Quantized model para sa performance optimization
- Batch embedding para sa mahusay na bulk processing
- Awtomatikong truncation sa word boundaries na may L2 normalization
Vector Storage
Ang LanceDB ay nagbibigay ng serverless vector storage:
- File-based (walang hiwalay na database server na kailangan)
- Per-project isolation na may mga independiyenteng index
- SHA256-based cache keys 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 iisang paraan:
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. Hinahawakan ang paraphrasing, synonyms, at conceptual queries.
Signal 2: Full-Text Search (Lexical)
Ang trigram-based indexing na may Jaccard similarity ay nakakahuli ng eksaktong keyword matches na maaaring makaligtaan ng embedding search โ mahalaga para sa mga technical term, pangalan, at identifier.
Signal 3: Recency Boost
Ang exponential decay weighting ay pabor sa mga kamakailang na-access o nabagong dokumento, tinitiyak na ang napapanahong impormasyon ang unang lumalabas.
Kumbinasyon ng Marka
Ang mga signal ay pinagsasama sa mga configurable na timbang (default: 50% semantic, 25% lexical, 25% recency), normalized, at filtered ng isang minimum score threshold.
Cross-Encoder Reranking
Pagkatapos ng paunang retrieval, isang cross-encoder model ang muling nagmamarka sa mga nangungunang kandidato:
- Isinasaalang-alang ng context-aware scoring ang mga query-document pair nang magkasama (hindi nang hiwalay)
- Keyword boost calculation para sa term overlap
- Blended scoring (cross-encoder + keyword signals)
- Gumagawa ng isang pinal na ranked list na may mas mataas na precision kaysa sa first-pass retrieval lamang
Suporta sa Structured Data
Para sa nilalaman ng spreadsheet, ang sistema ay nagbibigay ng karagdagang kakayahan:
- Awtomatikong pag-detect ng mga uri ng column (numeric, date, boolean, string)
- Natural language filtering (hal., "mga empleyado sa engineering na may sahod na mas mataas sa threshold")
- Suporta sa aggregation (count, sum, average, min, max)
- Ang query analyzer ay nagruruta ng mga structured query sa isang dedicated 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 โ Drag-and-drop na pag-upload ng file na may format auto-detection
- Paglikha ng Dokumento โ Gumawa ng mga dokumento mula sa text direkta sa UI
- Interactive Search โ Natural language query interface na may mga 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 on-device; walang external API calls para sa embeddings o search
- 9 Input Format โ PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, plain text
- Structure-Aware Chunking โ Pinapanatili ang 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 scoring para sa mas mataas na precision na resulta
- Structured Queries โ Natural language filtering at aggregation sa data ng spreadsheet
- Serverless Vector DB โ LanceDB file-based storage na walang infrastructure overhead
- Pagsulat ng Dokumento โ Mga kakayahan sa pag-export para sa paglikha ng PDF, DOCX, at XLSX
- Paghihiwalay ng Proyekto โ Mga independiyenteng knowledge base na may hiwalay na index
- Web UI โ Kumpletong interface para sa pamamahala ng dokumento at interactive search
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.