ARTICLE / 2 MIN READ
RAG 检索增强生成的数据管道怎么做
从文档切分、权限过滤、混合检索到引用评估,搭建可持续更新的 RAG 知识库。
RAG 项目效果不好,很多时候不是模型不够大,而是文档切分、权限、版本和检索评估没有建立起来。知识库首先是一条数据管道,其次才是一个问答界面。
先定义文档生命周期
原始文件进入对象存储后,记录 source_id、版本、租户、权限、语言、更新时间和内容哈希。解析、切分、向量化和索引都带上同一个文档版本,更新时只替换受影响的块。
文件 -> 解析/OCR -> 清洗 -> 结构化切分
-> 权限标签 -> 向量化 -> 倒排+向量索引
-> 检索 -> 重排 -> 带引用生成
切分不是按固定字数
标题、段落、表格和代码块应该保留结构。切分块带上父文档、章节路径和相邻块关系,回答时可以扩展上下文。块太大增加噪声,太小则丢失语义,应该用评估集调参。
权限过滤必须在检索前
用户只能检索自己有权访问的文档。权限条件进入索引过滤或查询条件,不能先召回全部内容再在提示词里要求模型“不要泄露”。
混合检索与重排
关键词检索适合专有名词、编号和精确短语,向量检索适合语义相似。先用两路召回,再用重排模型按相关性和权限打分,最后限制上下文总 token。
评估至少包含 Recall@K、MRR、引用准确率、拒答正确率和端到端回答质量。把“没有答案”样本单独评估,避免系统用幻觉填空。
增量更新与回滚
文档版本发布后生成新的索引批次,校验块数量、向量维度、权限覆盖和抽样召回,成功后原子切换别名。旧索引保留一段时间,出现错误可快速回滚。
RAG 的护城河不是把一堆文件塞进向量库,而是让每个答案都能追溯到正确版本、正确权限和可复现的检索过程。
参考资料:pgvector 向量检索与混合搜索。
GITHUB DISCUSSION
评论与回复
评论保存在 GitHub Discussions,登录 GitHub 后即可参与,发布和回复都在本页完成。
评论区进入视口后自动加载。