完整题目
请描述构建RAG系统中知识库的完整流程,包括文档预处理、文本分块、向量嵌入模型选择、向量数据库选型与索引构建等关键步骤。
本文目录
先定义知识库契约
构建前先确定文档所有者、租户与 ACL、版本、生效时间、删除规则、目标查询和“无答案”行为。RAG 的知识库不是一堆向量;原文、结构化元数据和权限事实要有权威存储,向量与关键词索引是可重建的派生物。
1. 解析与质量检查
- PDF、Word、网页分别使用能保留页码、标题、表格和代码结构的解析器;扫描件走 OCR,但要抽检字符错误、阅读顺序和表格错位。
- 保留
document_id、版本、章节路径、原文范围、来源、更新时间、语言、ACL 和内容哈希。 - 去页眉页脚前先验证规则,不能把合同条款、表头或脚注依据一并删除。解析失败、空页和异常短段进入隔离队列,不能静默入库。
2. 分块要用查询集验证
固定长度、递归、结构感知、父子块和语义分块都是候选。块太小可能拆散条件,块太大可能引入噪声;overlap 还会增加重复召回和索引成本。用真实查询比较 Recall@K、排序、证据完整性、重复率、延迟和成本,而不是固定采用某个 token 数。
表格、代码和条款需要专门表示。可把检索块与展示给模型的父级上下文分开,但每个块必须能定位回原文,便于引用、更新和删除。