知识库问答机器人搭建指南:从架构设计到上线的完整步骤
知识库问答机器人是大模型最常见的落地形态之一:员工可以问它公司制度,客户可以问它产品使用方法,开发者可以问它技术文档。它的核心技术是检索增强生成(RAG):先从文档中找到相关内容,再让大模型基于这些内容回答。 本文按照实际搭建的顺序,介绍每个环节需要做的关键决策,帮助你从零搭建一个可用的知识库机器人。
整体架构
一个知识库问答系统包括两条流程:
- 离线入库流程:收集文档 → 解析 → 切分 → 向量化 → 存入索引;
- 在线问答流程:用户提问 → 改写查询 → 检索 → 重排序 → 组装提示词 → 大模型生成回答 → 返回带引用的答案。
第一步:准备数据
确定范围
从一个明确的范围开始,例如某个产品的帮助文档或某个部门的制度文件,而不是一开始就导入所有文档。
清理内容
删除过时的文档,合并重复的内容,确认每份文档都是最新的有效版本。数据质量是整个系统效果的上限,治理思路参见企业知识库问答落地。
收集测试问题
同时收集几十个真实用户会问的问题,并标注答案在哪份文档的哪个位置。这将用于后续的评测。
第二步:解析与切分
解析
把各种格式的文档转换为干净的文本,保留标题层级等结构信息。PDF、扫描件和表格需要特别处理,参见 PDF 与表格解析的坑。
切分
把文档切成适合检索的片段,优先按照文档的标题结构切分,为每个片段附上文档标题和章节路径,详见 RAG 文档切分策略。
第三步:向量化与索引
选择 Embedding 模型
中文场景选择对中文支持良好的模型。用测试问题对比几个候选模型的检索命中率,参见文本向量入门。
选择存储方案
原型阶段可以使用嵌入式向量库或现有数据库的向量扩展,规模扩大后再考虑专用方案,参见向量数据库怎么选。
保存元数据
为每个片段保存来源文档、章节、页码、更新时间、访问权限等元数据,用于过滤和引用。
第四步:检索与重排序
混合检索
同时使用向量检索和关键词检索,兼顾语义理解和精确匹配,参见混合检索实战。
重排序
对初步检索得到的几十个候选片段进行重排序,选出最相关的几个送给大模型,参见重排序模型指南。
查询改写
多轮对话中,用户的问题可能依赖上下文,例如“那它的保修期呢”。需要先结合对话历史把问题改写为完整独立的查询,再进行检索。
权限过滤
在检索阶段按照用户的权限过滤文档,确保用户只能看到有权访问的内容。
第五步:提示词与生成
系统提示词中应包括:
- 只依据提供的参考资料回答;
- 资料中没有相关信息时,明确说明并引导用户到其他渠道;
- 在回答中标注引用的资料编号;
- 回答的语气、长度和格式要求。
把检索到的片段编号后放入提示词,每个片段附上来源信息。生成后,用程序检查引用编号是否有效,并在界面上把编号转换为可点击的来源链接,参见让用户信任 AI。
第六步:评测
用第一步收集的测试问题进行评测,分两个层面:
- 检索评测:正确的片段是否出现在检索结果的前几名;
- 回答评测:回答是否正确、是否忠实于资料、引用是否准确、没有答案时是否如实说明。
根据评测结果定位问题:是解析丢了信息、切分不合理、检索没找到,还是模型没有用好资料。评测方法参见如何构建评测集。
第七步:上线与迭代
- 小范围试用:先邀请一小部分用户试用,收集反馈;
- 反馈入口:每个回答提供“有用/无用”按钮和问题反馈入口;
- 分析未解决问题:定期查看用户提问中答不上来或答错的问题,补充文档或优化检索;
- 监控:记录检索结果、引用和用户反馈,持续跟踪质量。
原型阶段的最小可行架构
如果你想快速验证想法,可以采用最简化的方案:
- 用 AI 应用编排平台或开源框架,选择内置的文档解析和切分功能;
- 使用一个中文效果较好的 Embedding 模型和嵌入式向量库;
- 先只用向量检索,选择检索前几名的片段;
- 编写包含引用要求的系统提示词;
- 用二三十个测试问题验证效果。
在验证价值后,再逐步加入混合检索、重排序、权限控制等能力。相关工具的使用思路可参考用 AI 自动化工作流。
小结
搭建知识库问答机器人,关键在于每个环节的质量:干净的数据、合理的解析与切分、合适的检索策略、严格要求引用的提示词,以及基于真实问题的评测。从小范围、最小架构起步,用评测和用户反馈驱动迭代,是让知识库机器人真正好用的路径。