RAG构建流程
RAG(Retrieval-Augmented Generation,检索增强生成)用于提升大模型回答问题的准确性。传统的大模型会凭空“编造”答案,而RAG技术结合检索和生成两个步骤来改善这个问题,是当前大模型解决“幻觉”问题的重要方法。
- 检索(Retrieval): 当用户提出问题时,系统会从外部的知识库中检索出与用户输入相关的内容
- 增强(Augmentation): 系统将检索到的信息与用户的输入结合,扩展模型的上下文。然后再传给生成模型(也就是Deepseek)
- 生成(Generation): 生成模型基于增强后的输入生成最终的回答。由于这一回答参考了外部知识库中的内容,因此更加准确可读
当回答问题或生成文本时,RAG首先从大量文档中检索相关信息,然后利用这些检索到的信息来生成响应或文本,从而提高预测质量。这种模型的核心在于将事实性知识与LLM(大型语言模型)的推理能力相分离,知识被存储在容易访问和及时更新的外部知识源中。

一、构建知识库
构建知识库是RAG系统的核心环节,其质量直接影响检索和生成的效果。
1.规划知识库结构
- 按业务领域:如“产品知识库”、“HR政策知识库”、“销售话术知识库”。
- 按数据敏感度:如“公开信息知识库”、“内部核心知识库”。
- 按部门:如“市场部资料库”、“研发部文档库”。
2.格式转换及初步清洗
- 清理格式:在上传前,手动打开Word/PDF文档,删除不必要的页眉页脚、封面、目录。修正文档中的错别字和格式错误。
- 优化结构:对于长文档,尽量使用清晰的标题层级(如Word的标题1, 标题2)。这能帮助平台的自动分段功能更好地理解文档结构。
- 转换格式:如果平台对某些格式(如扫描版PDF)支持不佳,需要在平台之外先用OCR工具将其转换为纯文本或格式化的Word文档。
- 图文处理:有些复杂文档不光格式复杂,甚至还有图文同时存在的情况
3.数据去重,避免模型记忆污染
- 实体标注:标记专业术语(如“EGFR基因突变”),提升医学问答准确性。
- 元数据增强:添加文档来源、发布时间等字段,支持时效性检索。
- 自动化工具推荐
文本清洗库:Textacy、BeautifulSoup(去除HTML标签)去重工具:datasketch(MinHash算法加速大规模去重)
4.文档分块(Chunking)
由于文档的原始大小可能超出LLM处理窗口的限制,因此需要将文档切割成更小的片段。这一步骤可以使用LangChain提供的文本分割工具,如CharacterTextSplitter或RecursiveCharacterTextSplitter等。其中不同的文本类型切分的策略也不一样,针对性设计切分的方式
- 固定长度切分:最基础,但容易割裂语义。通常配合重叠(Overlap)来缓解(也就是每一个片段的开头和结尾跟上下切片有重叠)。
- 递归/分隔符切分:更智能,优先寻找自然的语义边界(如段落、句子)进行切分,是目前的主流方法。
- 语义切分:基于Embedding向量的相似度来判断语义连贯性,效果更佳但计算成本更高。
-
元数据附加:为每个chunk打上丰富的“标签”信息(来源、标题、日期、类别)。
5.向量化(Embedding)
Embedding 的主要作用是将自然语言转化为机器可以理解的高维向量,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似度关系)。分割完成后,需要使用嵌入模型(如阿里的Qwen-Embedding系列)为每个文本块生成向量嵌入,并将这些向量存储到向量数据库中。常见的嵌入方式有2种——稀疏嵌入和稠密嵌入,而我们通常讨论较多的都是稠密嵌入。简而言之,稠密嵌入能够更好的捕捉语义关系,而稀疏嵌入在计算存储上更高效。向量数据库是一种专门用于存储和处理向量数据的数据库,如Milvus、Weaviate或FAISS等。(简而言之: Embedding模型是用来对你上传的附件进行解析的)
6. 构建检索与提示模板
一旦向量数据库准备好,就可以将其设定为检索组件。这个组件能够根据用户查询与已嵌入的文本块之间的语义相似度,来检索出额外的上下文信息。接下来,需要准备一个提示模板,以便用额外的上下文信息来增强原始的提示。提示模板可以根据具体需求进行定制,以确保生成的回答既准确又符合期望。
二、RAG技术
1. 知识检索(Retrieval)
前面准备了这么多之后,才来到最后的检索部分,而这也是RAG(Retrieval-Augmented Generation) 中R(Retrieval)真正起作用的开始。检索前,常见的处理方式有如下几种:查询结构转化、查询翻译和查询路由。其中像查询结构转化、查询翻译、重排基本都是相对必须的一些优化点,查询路由、压缩、校正等是否需要可以根据问答效果再考虑是否选用。


2.回答生成(Generation)
当我们检索到了相关知识分块后,最后一步就是将用户查询、检索到的知识库文本块一并喂给大模型,让大模型利用自身的能力来回答用户的问题了。到这一步,其实知识库RAG的工作就结束了。最后关注效果评估,检索评估评估框架关注指标RAG TRIAD(RAG三角)上下文相关性忠实度答案相关性RAGAS上下文精确率上下文召回率上下文实体召回率噪声敏感度DeepEval上下文精确率召回率相关性等。

浙公网安备 33010602011771号