RAG基础 📅 2026/7/1 1:52:42 一、什么是 RAGRAG 是什么RAGRetrieval-Augmented Generation中文称为检索增强生成是一种将**信息检索Retrieval与大语言模型生成Generation**结合的 AI 技术。一句话理解RAG 大语言模型 外部知识库。它可以让大语言模型在回答问题前先从知识库中查找相关内容再结合检索结果生成更加准确、可靠的回答。二、为什么需要 RAG大语言模型虽然知识丰富但存在以下问题知识有截止时间无法直接访问企业私有数据容易产生幻觉Hallucination回答可能缺乏准确依据例如用户 ↓ LLM ↓ 凭已有知识回答可能出现编造事实加入 RAG 后用户 ↓ 知识库检索 ↓ 找到相关文档 ↓ LLM ↓ 根据文档回答因此RAG 可以显著提升回答的准确性和可信度。三、RAG 的整体工作流程RAG 通常分为两个阶段第一阶段知识库构建离线原始文档 ↓ 文档加载Loader ↓ 文本切分Text Splitter ↓ Embedding向量化 ↓ Vector Store向量数据库这一阶段通常只需要执行一次。第二阶段用户提问在线用户问题 ↓ Embedding ↓ 向量检索 ↓ 找到最相关文档 ↓ Prompt 拼接 ↓ LLM ↓ 最终答案四、RAG 的核心组件整个 RAG 系统通常包含以下几个核心模块Document ↓ Loader ↓ Text Splitter ↓ Embedding Model ↓ Vector Database ↓ Retriever ↓ Prompt ↓ LLM五、Document文档知识来源可以是PDFWordMarkdownTXTHTMLCSVExcel数据库网页例如公司制度.pdf 产品说明.docx API文档.md 教材.pdf这些都是 RAG 的知识来源。六、Document Loader文档加载器作用负责读取各种格式文件。例如PyPDFLoader TextLoader CSVLoader DirectoryLoader WebBaseLoader工作流程文件 ↓ Loader ↓ Document七、Text Splitter文本切分为什么需要切分因为LLM 每次能够处理的 Token 数量有限。因此需要把长文档拆分成多个小块Chunk。例如一本书100000 Tokens切分后Chunk1 Chunk2 Chunk3 ... Chunk100常见切分方式CharacterTextSplitter按字符长度切分。RecursiveCharacterTextSplitterLangChain 最常用。特点优先按段落切分再按句子切分最后按字符切分可以最大程度保持语义完整。八、Chunk文本块切分后的每一块称为Chunk例如Chunk 1 介绍 Docker -------- Chunk 2 介绍 Nginx -------- Chunk 3 介绍 LangChain每一个 Chunk 都会进行向量化。九、Embedding文本向量化Embedding 的作用将文本转换为高维向量。例如Docker 很好 ↓ Embedding ↓ [0.23,0.87,0.56...]模型无法理解文字但可以理解数字向量。常见 Embedding 模型OpenAI EmbeddingBGEJina EmbeddingQwen EmbeddingHuggingFace EmbeddingDashScope Embedding十、Vector Database向量数据库Embedding 后的数据需要保存。于是使用向量数据库。例如Chunk ↓ Embedding ↓ Vector Database常见向量数据库ChromaFAISSMilvusQdrantPineconeWeaviate作用保存向量 原文 Metadata十一、Metadata元数据除了保存正文通常还保存文件名 页码 标题 作者 更新时间例如{source:Docker学习笔记.pdf,page:5}方便引用来源。十二、Retriever检索器Retriever负责根据用户问题查找最相似的 Chunk。例如用户Docker 是什么Retriever向量相似度计算 ↓ Chunk17 Chunk18 Chunk21返回最相关内容。十三、Similarity Search相似度检索常见算法Cosine Similarity余弦相似度Euclidean Distance欧氏距离Dot Product点积作用计算问题 ↓ Embedding ↓ 向量 ↓ 和知识库所有向量比较 ↓ 找到最相近内容十四、Prompt 拼接Retriever 找到内容后需要拼接 Prompt。例如你是一位AI助手。 下面是参考资料 ...... 请根据资料回答用户问题 问题 Docker 有什么作用然后发送给 LLM。十五、LLM 生成答案LLM结合用户问题检索内容生成最终回答。因此不是凭空回答。而是依据知识库回答。十六、RAG 与微调Fine-tuning的区别对比项RAG微调Fine-tuning是否修改模型参数❌✅更新知识成本很低很高私有数据支持✅✅开发速度快慢数据更新实时重新训练推荐场景企业知识库专业能力训练一句话知识更新优先使用 RAG能力提升优先使用 Fine-tuning。十七、RAG 在 LangChain 中的基本流程Loader ↓ Text Splitter ↓ Embedding ↓ Vector Store ↓ Retriever ↓ Prompt ↓ LLM ↓ Answer这是 LangChain 中最经典的 RAG Pipeline。十八、RAG 在 AI 开发中的应用典型应用企业知识库问答AI 客服法律咨询医疗文档问答学校教学助手API 文档问答PDF 智能阅读Obsidian 知识库 AIAI 编程助手AI 搜索引擎