1、RAG架构拆解
1.1 知识库模块
作用:把私有文档/业务数据,变成大模型能读懂、能检索的结构化向量数据
日核心流程:
- 数据接入:文档、PDF、Excel、网页、知识库、聊天记录、业务话术等原始文本
- 文本预处理:清洗乱码、去空格、去冗余、格式统一
- 文本切片(Chunk 分块):长文本切小段,解决上下文溢出、检素不准,常用固定长度切分 / 语义切分
- 向量化Embedding:切片文本一嵌入模型一生成向量数值(文字转数字)
- 入库存储:向量存入向量数据库,同时绑定原文、元数据
常用组件
- 切片器:LangChain切分器、语义分割
- 嵌入模型:通义Embedding.BGE、M3E
- 向量库:FAISS,Chroma, Milvus, Qdrant
1.2 检索模块
作用:用户问题精准匹配知识库最相关内容,过滤无关信息
核心流程:
- 问题向量化:用户提问同样用Embedding转向量
- 相似度检索:在向量库计算余弦相似度,召回Top高匹配文本片段
- 检索优化(进阶):
-重排序Rerank:粗筛后精排,提升精准度
-关键词+向量混合检索:兼顾语义+实体
-多路召回:全局检索 + 局部文档检索 - 上下文组装:把筛选好的参考资料整理成规范上下文
核心价值:
不让大模型瞎编,只拿真实知识库内容作答
1.3 生成模块
作用:融合用户问题 + 检索到的参考文本,合规流畅生成回答
核心流程:
- 构造Prompt提示词:固定指令 + 用户问题 + 检索出来的参考上下文
- 调用大模型:输入拼接好的完整提示词
- 约束生成规则:限定:只依据参考资料回答、禁止编造、语气统一、拒绝超范围回答
- 后处理输出:格式化、去冗余、整理排版后返回用户
常用模型:
通义干问、文心一言、LLaMA.Qwen、GPT系列
2、RAG的完整工作流程
第一步:知识库构建(离线前置流程,问答前提前完成)
- 文档加载:读取业务文档、PDF、txt、网页资料、本地文件等各类原始知识数据源,完成数据统一接入
- 文本拆分:对长文本进行分块切片,将大篇幅内容切割成短小、语义独立的文本块,避免内容过长超出模型上下文限制。
- 文本嵌入:调用Embedding嵌入模型,把每一段文本块转化为语义向量,实现文字语义数字化。
- 向量存储:将生成的文本向量与原文内容、文档信息一并存入向量数据库,搭建完成可检索专属知识库。
第二步:检索过程(用户发起提问后实时执行)
- 用户提问处理:接收用户自然语言问题,进行语句精简、意图梳理、问句优化,保证查询语义清晰。
- 向量检素:使用和建库一致的嵌入模型,将用户问题转为查询向量,在向量库中通过相似度计算,快速召回匹配度高的知识片段。
- 相关性排序:对初步召回的内容做精准筛选与重排序,剧除低相关、无关内容,保留高价值参考文本。
- 上下文拼接:把筛选后的优质知识片段整合排版,组合成规整、通顺的参考上下文内容。
第三步:生成过程(最终产出回答)
- 提示词工程:设定大模型角色、回答规则、约来要求,将系统指令 + 用户问题 + 检索得到的上下文组合成标准结构化提示词。
- LLM调用:把组装好的提示词输入大语言模型,让模型依托检索到的真实知识库内容进行推理作答。
- 回复优化:对模型输出内容进行整理、精简、格式调整、逻辑修正,去除冗余话术与模型幻觉内容,最终输出规范准确回复。
3、RAG系统的核心指标
3.1 召回率(Recall)
定义:知识库中真正相关的文本片段,被成功检索找出来的比例
公式:召回率 = 检索到的相关片段 ÷ 全部真实相关片段
作用:衡量找得全不全
-召回率高:不漏掉有用资料,信息齐全
-召回率低:丢关键内容,回答缺信息、答不全
适用场景:政务、医疗、企业知识库,优先保证信息不遗漏
3.2 精确率(Precision)
定义:检索出来的所有片段里,真正有用相关内容的占比
公式:精确率 = 检索到的相关片段 ÷ 所有检索出来的片段
作用:衡量找得准不准
-精确率高:杂信息少,无效内容少
-精确率低:混入大量无关文本,干扰大模型判断
适用场景:客服问答、精准答疑,减少无用上下文
3.3 回复准确率
定义:大模型最终输出答案,是否符合知识库事实、无幻觉、回答贴合问题评判维度
- 事实正确:不编造、不偏离内部文档
- 答案贴合:精准回应用户提问
- 逻辑通顺:语序合理、条理清晰
- 边界合规:超出知识库内容明确拒绝回答
影响因素:检索质量 + 提示词约束 + 大模型能力
RAG最核心业务指标,直接决定系统好用程度
3.4.响应速度
定义:从用户发送提问一前端展示答案的整体耗时拆分耗时
- 问句向量化耗时
- 向量数据库检索耗时
- 重排序筛选耗时
- LLM推理生成耗时业务要求
- 在线问答:一般控制1~3秒最佳
- 长文档问答 / 复杂推理:可放宽至3~5秒
优化方向:轻量化Embedding、向量库索引优化、LLM流式输出