深色模式
知识库构建流水线
摘要:RAG 效果的上限在数据侧——检索与生成只能在"入索引的质量"之内发挥。本文把知识库建设拆成一条可运营的流水线:来源接入 → 解析抽取 → 清洗加工 → 切分入索引 → 增量同步与权限继承,并给出每环节的质量验收标准。切分策略细节见 文档切分策略 Chunking,检索侧见 混合检索。
流水线全景
环节一:来源接入
按更新频率与权威度分级接入,优先级排序决定流水线建设顺序:
| 来源 | 特点 | 接入方式 |
|---|---|---|
| Confluence / Wiki | 结构好、更新频繁 | API 增量拉取(按 updated_at) |
| 共享盘文档 | 格式杂(docx/pdf/xlsx)、命名混乱 | 目录遍历 + 文件指纹去重 |
| 工单/FAQ 系统 | 问答对天然结构化 | 直接结构化入库,免切分 |
| 网页/静态文档 | 爬取易、易过期 | 定期全量重爬 + 失效检测 |
接入层的关键元数据:来源系统、原文 URL、更新时间、作者/属主、权限范围——这些要在解析时保留并一路传递到索引,是后续权限过滤与"答案溯源到原文"的基础。
环节二:解析抽取
解析质量是最容易被低估的环节,三类文档三类难点:
- PDF:双栏排版、表格、扫描件是重灾区。优先用带版面分析的解析(如 MinerU、Unstructured 等开源方案,或云厂商文档智能服务),表格转 Markdown 保留结构,扫描件走 OCR 并标注低置信度;
- Office:docx 用 python-docx 类库走结构化解析,页眉页脚、修订痕迹要剔除;
- HTML/Wiki:剔除导航与页眉脚,保留标题层级作为切分边界。
解析质量的验收方法
抽 50 份代表性文档人工核对"解析产物 vs 原文"的信息保真度(表格数字、列表层级、脚注归属)。解析丢信息的文档宁可不入库——错误知识入索引比缺知识危害大得多。
环节三:清洗加工
在切分前完成四件事:
- 去重:文件级(内容 hash)+ 段落级(MinHash/SimHash 近重复)——多版本流转的同一份制度文档会以 5 个版本入库,检索时互相竞争;
- 去噪:删除目录页、版权声明、空段落、"见下页"类碎片;
- 元数据补全:文档标题、章节路径、生效日期、有效期——过期制度(
生效日期已过)在检索过滤阶段剔除; - 归一化:全半角、繁简、单位与缩写统一,保证查询与文档的词汇空间一致。
环节四:切分与入索引
切分策略选型(细节见 Chunking):
- 结构化文档(Markdown/Wiki):按标题层级切,天然携带章节路径元数据;
- 半结构化(PDF 解析产物):结构切分为主 + 滑窗 overlap 兜底;
- 问答对/工单:一问一答一个 chunk,不做字符切分。
入索引时双写向量索引与倒排索引(混合检索的底座),每个 chunk 携带完整元数据与原文指针。Embedding 选型见 Embedding 模型选型与中文适配。
增量同步与权限继承
增量同步是流水线能否长期运转的分水岭。全量重建作为兜底(周级),日常走事件驱动增量:来源系统 webhook 或定时按 updated_at 拉取 → 变更文档重新走解析-清洗-切分 → 按原文 ID 覆盖式更新其所有 chunk(先删后写,避免新旧并存)。同步任务本身要监控:失败率、延迟、每日入库/删除量(删除量骤降往往意味着同步悄悄断了)。
权限继承:企业知识库的检索结果必须与用户权限一致。两种模式:
- 检索前过滤(推荐):查询时按用户可见范围过滤索引(向量库 pre-filter / ES filter);
- 检索后过滤:实现简单但会破坏 top-k 语义(过滤后结果不足)。
权限元数据与内容同生命周期——文档权限变更时对应 chunk 必须同步更新,这是安全审计的常见检查点。
质量验收:从数据侧定义 RAG 基线
上线前跑一遍数据侧验收清单:
- [ ] 抽样文档解析保真度通过(50 份人工核对)
- [ ] 近重复段落占比 < 5%
- [ ] 每条 chunk 均携带来源 URL + 权限 + 时间元数据
- [ ] 过期文档被过滤规则正确排除
- [ ] 增量同步 E2E 延迟 < 1 小时(按业务要求定)
- [ ] 用 50 条真实业务问题盲测检索命中率,作为后续 RAG 评测 的数据基线