知识库如何构建?
未标记
考查重点:知识入库、更新与可用性验证。从可信资料接入,解析清洗切分并保留来源权限,构建索引;增量更新后用带证据的问题集检验可用性
本题目录
参考答案
核心回答
构建知识库,是把业务资料变成可检索、可追溯、能持续更新且按权限使用的知识资产。我会按五步设计:
- 确定知识范围与来源:从用户要解决的问题出发,接入可信的制度、手册、FAQ 等材料,明确负责人、版本和更新方式。
- 解析、清洗和切分:按文件类型提取内容,保留标题、表格与原文位置;抽样检查解析质量,再按语义结构和长度预算切块。
- 保存正文、元数据并建索引:每块关联文档、版本、位置和权限,生成向量,并按需要建立全文索引。向量帮助召回,正文和元数据支撑回答、引用与维护。
- 处理新增、修改、删除和撤权:跟踪处理状态,失败可重试;新版本验证后再启用,旧内容及相关缓存及时失效。
- 用真实问题验收:检查证据能否召回、引用是否正确、答案是否忠实,以及无答案和无权限时的行为,同时看耗时和更新延迟。
例如搭建运维知识库,不只是把 PDF 丢进向量库;还要确认故障处理步骤有没有被拆散、旧版操作是否已停用,以及当前用户能否访问对应系统的资料。
展开说明
1. 先明确要收什么,而不是先选择向量库
先整理用户常问的问题和可接受的回答依据,确定资料来源、适用业务和更新责任人。优先接入经过维护的原始文档,避免把重复转载、草稿和已废止制度混成同等有效的知识。业务知识的编写宜保留明确的问题、结论、适用条件和例外,不能为了便于检索删掉限定条件。
采集方式可以是人工上传、业务系统连接器或定时同步。上传后可提交异步入库任务,分别记录已接收、解析中、索引中、可用和失败等状态;文件上传成功不代表已经能够检索。原始文件应保留,便于重新解析和核对引用。已有可靠的文档或业务查询系统时,也可以通过接口连接,不必复制一份再全部向量化。
2. Markdown、TXT、PDF 不能只用同一个切分规则
Markdown 可以先按标题层级组织段落,保留标题路径,表格和代码围栏尽量保持完整;过长章节再按长度预算递归拆分。TXT 通常缺少显式结构,可以结合段落、中文句末标点和长度限制切分,并记录位置。
PDF 则先区分可直接提取文本的文件与扫描件。需要检查阅读顺序、双栏、页眉页脚、表格和跨页内容;扫描件可能需要 OCR,复杂版面需要相应解析器。解析错了不能靠调大切块长度修好。表格应保留表头、单位及所属章节,避免只召回一个数字却不知道它对应什么。
切块目标是让片段足以支持常见问题,同时不过度混入无关主题。大小要注明按字符还是 Token 计算,适度重叠可以缓解边界截断;并非所有块都需要重叠,也不是越多越好。对于必须阅读较完整段落的问题,可以用小块召回,再补同一文档、同一版本且有权限的父段或邻块。
3. 存储设计要支持引用和维护
我会区分原始文件、文档记录和知识块。文档记录保存来源、标题、业务归属、活动版本、处理状态和访问规则;块记录保存 doc_id、chunk_id、正文、版本、标题路径、页码或行号,以及内容哈希和索引配置版本。向量与全文索引都应能关联回这些记录,不要求它们一定放在不同数据库。
索引端和查询端要使用兼容的 Embedding 空间,不能只看维度相同就混用不同模型。若业务中存在精确术语、编号或错误码,可以在向量召回之外加入全文检索;是否需要混合检索和重排,应由问题集验证。
权限来自可信的身份与业务授权系统。检索、重排、父段展开和答案缓存都要保持相应范围,未授权正文不能先交给模型再靠提示词隐藏。文档权限存入索引以后还需随源系统变化同步,不能把入库时的 ACL 永久当作当前权限。
4. 更新要让各份数据保持一致
以一份操作手册修改为例,可以根据源版本或内容哈希发现变化,为新版本重新解析、切块和建索引。新版本准备期间不参与在线回答,校验正文、块和索引后再切换活动版本,旧版按保留策略停用或清理。若多个存储系统参与,必须明确切换和失败补偿方式,不能假定它们天然处于同一个事务中。
重复处理同一版本不应生成重复块;过期更新也不能覆盖较新版本。删除资料时,正文、向量、全文索引和相关缓存都要处理。撤销访问权限则应尽快使相关内容不可见,不必为了仅修改 ACL 就重新计算所有向量,但必须验证实际检索和缓存已遵循新权限。
日常变化可增量处理;更换 Embedding 模型、解析或切分方案时,要评估哪些内容需要重建。重建结果验证后再切换,保留必要的回滚信息,而不是直接覆盖正在服务的索引。
5. 验收要从原文一直查到答案
先抽样对照原文件和解析结果,检查表格、数字、否定词和限定条件;再建立包含标准证据位置的问题集,检查证据 Recall@K、重复候选和引用定位。最后评估答案是否忠实、是否漏掉条件,无资料或资料冲突时能否明确说明。
还应验证修改后不再引用旧版、删除后不再召回、不同权限用户得到的内容符合范围。性能则分别看入库耗时、资料变更到可查询的延迟,以及查询的平均和 P95 耗时;不能只用“成功写入多少向量”代表知识库质量。
常见追问
用 RAGFlow 或 Dify 后,还做了什么?
可以围绕实际负责的环节展开:资料怎样接入,复杂 PDF 怎样解析,切分规则如何确定,权限和版本怎样映射,以及文档更新后如何触发处理。再举一个具体问题,例如表格解析错位导致召回缺少单位,说明自己怎样调整解析配置、核对知识块并通过问题集验证改进。平台提供基础能力,项目工作的价值体现在把它接入业务并持续维护好。
知识库要保存模型生成的回答吗?
可以作为待整理材料,但不能自动当成经过验证的事实。应核对来源、适用条件和时效,确认后作为新版本知识发布;原始证据及其引用仍需保留,避免错误答案循环进入知识库。
文档改了一个标点,也需要全部重新向量化吗?
不一定。可以通过版本和内容比较判断受影响的文档或块;未变化且配置兼容的块可复用。若改动影响标题路径、切分边界或上下文,则可能需要重处理更大范围。关键是更新后引用与当前正文一致,不能只追求少算几个向量。
对应教程
- RAG 检索增强生成:回看文档加载、切分和综合案例,理解资料怎样进入检索;本文进一步展开版本、权限、更新和入库验收的设计。
参考资料
- 国内:JavaGuide:RAG 文档处理与切分策略:参考解析、清洗、结构化和切块的顺序,解释不同文件格式的主要风险及抽样校验方式。
- 国内:JavaGuide:RAG 知识库更新与维护:参考文档与块的元数据、新旧版本切换、增量更新和删除处理,说明知识库持续维护怎样影响回答正确性。
- 国内:WeThinkIn:Agent RAG 与混合检索工程:借鉴位置元数据、父段展开和分阶段评测,说明正文中知识块保留来源、权限并按证据链验证的要求。
- 国外:Microsoft:Azure AI Search 文档级访问控制:依据入库和查询的权限元数据分工,说明正文中源权限变化后需要同步与重新验证的边界;托管功能按实际发布状态选择。
- 国外:LangChain:Retrieval:参考知识库、加载器、切分器与检索器的分工,说明正文中资料准备、在线回答及已有知识系统直接连接的不同方式。
相关面经
16 篇科大讯飞
后端开发AI-ready 项目知识库:是否 0-1 搭建,多类型文档处理、入库与质量保障方案
滴滴
大模型算法岗为什么在推荐系统中引入RAG?知识库的数据来源和构建流程是怎样的?
快手
Agent 开发工程师如果要为 Agent 建设知识库,你会怎样处理数据接入、切分、检索、更新和效果评估?
快手
AI全栈开发知识库怎么做的
字节跳动
后端开发工程师如何搭建知识库
展开剩余 11 篇面经
字节跳动
Agent 开发工程师拿到一批格式杂乱、缺少统一结构的外部文档,怎么把它们整理成可检索的知识?从
科大讯飞
测试开发做知识库的思路
字节跳动
Agent 开发后端实习生知识库如何构建?Markdown、TXT、PDF 分别怎么切块?
蚂蚁集团
美团
后端开发工程师(AI / Agent 方向)提到了有设计大模型和agent,这部分是怎么设计的,知识是如何编写的,如何存储。以及怎么检验agent回答的质量
阿里巴巴
AI 全栈开发工程师上传文档以后到检索之前,应该有一个切分或者向量的过程,这个过程是上传后自动触发的?是基于 Dify 的 RAG flow 做了二开?
汇川技术
全栈开发在xxx构建运维知识库,大概说一下你是怎么做的;
超参数
Agent 开发工程师知识库方案
阿里巴巴
AI 应用算法工程师知识库如何构建?
阿里巴巴
AI 应用开发工程师如何搭建知识库的,你们做了哪些操作来优化性能
联想
AI 产品经理如何搭建RAG知识库






