关于本地文档RAG系统的帮助(存储 + 摄取 + 查询 + 高亮)
摘要
一个关于构建本地文档RAG系统的详细技术咨询,涵盖存储、摄取、查询和高亮,寻求关于向量数据库、GraphRAG可行性以及文档高亮实现的建议。
大家好,我正在设计一个本地离线文档检索与LLM流水线,希望听听大家的架构建议。以下是我的目标:
**存储**
上传PDF、DOCX、XLSX、CSV、表格
所有数据本地存储(无云端)
**文档摄取**
监听文件夹(例如Watchdog)→ 文件添加/修改/删除时自动摄取
嵌套文件夹结构 → 自动标注
支持格式:PDF、扫描版PDF、DOCX、XLSX、CSV、JPG/PNG
重新上传时的版本控制
**查询与检索**
查询限定在单个客户的文档范围内(无跨客户端泄漏)
结构化查询(例如“显示金额超过10万卢比的发票”)
比较性查询(例如“比较FY23与FY24毛利润”)
关键词回退
**高亮与渲染**
为前端提供带注释的PDF
XLSX → 彩色单元格导出
直接跳转到高亮页面
一次响应中显示多个文档的高亮
**答案生成**
仅使用本地LLM
每个引用都需标注文档和页码
**我的问题**
解析:我在考虑使用LlamaIndex LiteParse。→ 是否需要为PDF存储文档ID和块ID以实现高亮?
向量数据库:我是否需要向量数据库(例如Qdrant)?如果需要,如何在嵌入向量旁边存储文档ID和块ID以实现高亮?pgvector在Postgres中是否足够?
GraphRAG:像Neo4j或Microsoft GraphRAG的系统效果如何?它们能否在本地/离线运行,还是计算量太大?这个GraphRAG流水线是否是一个好的起点?
高亮用户体验:我想要类似Turnitin/iThenticate报告的效果——精确句子的高亮+引用。有没有开源项目已经实现了这个功能?我找到了Kotaemon和AnythingLLM,它们很接近但未实现文档高亮。
**简单总结**
尝试构建一个本地RAG系统,包含:
存储 + 摄取 + 标注
查询 + 检索 + 高亮
使用本地LLM生成带引用的答案
寻求以下建议:
向量数据库 vs pgvector
GraphRAG的离线可行性
最佳方式实现文档高亮与引用预览
非常希望听到任何构建过类似系统或探索过这些工具的人的意见。
相似文章
当更多文档损害RAG:通过领域限定、模型无关的检索缓解向量搜索稀释
本文识别了RAG系统在扩展到大规模异构文档集合时出现的“向量搜索稀释”现象,并提出MASDR-RAG,一种利用组织元数据进行领域限定的检索方法,显著提升了检索准确率。
LightRAG:简单高效的检索增强生成框架
本文介绍了 LightRAG,这是一个开源框架,通过整合图结构来提升检索增强生成(RAG)的上下文感知能力与信息检索效率。
@_avichawla: 面向AI工程师的8种RAG架构:(用法说明)1)Naive RAG——纯粹基于向量相似度检索文档…
一个推文串,解释了8种不同的RAG架构(Naive、Multimodal、HyDE、Corrective、Graph、Hybrid、Adaptive、Agentic)及其使用场景,并暗示了一种改进的索引技术。
SproutRAG: 面向长文档RAG的注意力引导树搜索与渐进式嵌入
SproutRAG是一种层次化RAG框架,利用注意力引导的树搜索和渐进式嵌入,从长文档中实现多粒度检索,相较于基线方法将信息效率提升了6.1%。
@Marco_Ramilli: PageIndex 32,751 星 放弃向量数据库,停止分块。构建基于推理的 RAG,实现上下文感知、类人的……
PageIndex 是一个开源的、基于推理的 RAG 系统,它用层级树索引和 LLM 驱动的检索取代了向量数据库和分块,用于上下文感知、类人的文档理解。