13 批量知识库 ETL 与增量更新
章节目标
掌握企业知识库从文件采集到增量更新的 ETL 流程,让知识库可维护、可评估、可追踪。
为什么重要
PoC 可以手工上传文件,生产系统必须面对持续变化的资料:新增、修改、删除、过期、权限变化和版本冲突。
开篇案例:知识库为什么越用越不准
一个制度问答 PoC 初期效果很好,因为团队手工挑了 20 份最新制度上传。三个月后,用户开始抱怨答案不可靠:有些制度已经更新,旧版本没有下架;新上传的 PDF 表格解析错位;部门权限调整后,旧索引仍然能搜到敏感内容。
这就是知识库从 PoC 走向生产时最常见的问题:内容不是静态的,权限也不是静态的。FDE 必须把知识库当作一条持续运行的数据管道,而不是一次性上传文件。
ETL 流程
- 文件采集:共享盘、对象存储、飞书/钉钉文档、邮件附件、业务系统导出目录。
- 文件识别:按类型、来源部门、业务主题、密级和版本标记元数据。
- 内容解析:PDF、Word、Excel、图片和扫描件使用不同策略。
- 数据清洗:清理空页、重复段落、表格错位、异常字符、页眉页脚和无效附件。
- 分段入库:按语义块、标题层级、表格行、案例结构或制度条款生成 Chunk。
- 增量更新:识别新增、修改、删除和过期文档。
- 质量检查:统计解析失败率、空 Chunk、重复率、元数据缺失和检索命中样本。
元数据字段
建议至少包含:
- document_id。
- title。
- source_system。
- department。
- owner。
- confidentiality_level。
- version。
- effective_date。
- expired_at。
- access_policy。
- checksum。
- ingestion_time。
增量更新策略
- 用 checksum 识别文件变化。
- 用版本号处理制度更新。
- 用状态字段处理过期文件。
- 用删除队列处理下架资料。
- 每次更新生成知识库版本号。
质量检查指标
| 指标 | 说明 | 建议阈值 |
|---|---|---|
| 解析失败率 | 文件无法解析或正文为空 | PoC < 5% |
| 元数据缺失率 | owner、版本、密级缺失 | PoC < 10% |
| 重复 chunk 率 | 重复段落或旧版本残留 | 越低越好 |
| 过期文档命中率 | 检索返回已过期文件 | 必须为 0 |
| 引用准确率 | 答案引用是否指向正确来源 | 生产前重点看 |
这些指标不需要一开始做成复杂仪表盘,先用表格记录就能发现大部分问题。
版本治理流程
一次知识库更新建议留下四类记录:
- 输入批次:哪些文件进入本次更新。
- 处理结果:解析成功、失败、跳过、过期。
- 索引版本:向量库、元数据、权限策略版本。
- 评估结果:核心样本相比上一版是否退化。
没有版本记录,就无法回答“为什么昨天还能答对,今天答错了”。
实操任务
选择一个知识库场景,设计:
- 文件来源。
- 元数据字段。
- 解析策略。
- Chunk 策略。
- 增量更新机制。
- 质量检查指标。
交付物
- ETL 流程图。
- 元数据字段表。
- 失败样本记录表。
- 知识库更新机制。
常见误区
- 每次全量重建知识库。
- 没有文档版本和过期机制。
- 解析失败不记录。
- 不处理权限变化。
检查清单
- 是否能追踪每个 Chunk 来源?
- 是否能撤回过期文档?
- 是否记录解析失败?
- 是否能比较两个知识库版本效果?