- 有限的上下文——它们无法一次性处理整个语料库。
- 静态知识——其训练数据在某个时间点后便固定不变。
构建知识库
知识库是用于检索过程的文档或结构化数据存储库。 如果您需要自定义知识库,可以使用LangChain的文档加载器和向量存储从自有数据构建一个。如果您已有知识库(例如SQL数据库、CRM或内部文档系统),则无需重新构建。您可以:
- 将其作为工具连接到智能体RAG中的智能体。
- 查询它并将检索到的内容作为上下文提供给LLM(两步RAG)。
教程:语义搜索
学习如何使用LangChain的文档加载器、嵌入和向量存储从自有数据创建可搜索的知识库。
在本教程中,您将构建一个PDF搜索引擎,实现根据查询检索相关段落。您还将在此引擎上实现最小化RAG工作流,了解如何将外部知识集成到LLM推理中。
从检索到RAG
检索使LLM能够在运行时访问相关上下文。但大多数实际应用更进一步:它们将检索与生成集成,以产生基于事实、感知上下文的回答。 这是**检索增强生成(RAG)**背后的核心思想。检索管道成为结合搜索与生成的更广泛系统的基础。检索管道
典型的检索工作流如下所示: 每个组件都是模块化的:您可以更换加载器、分割器、嵌入或向量存储,而无需重写应用逻辑。构建模块
文档加载器
从外部来源(Google Drive、Slack、Notion等)摄取数据,返回标准化的
Document对象。文本分割器
将大型文档分割成较小的块,以便单独检索并适应模型的上下文窗口。
嵌入模型
嵌入模型将文本转换为数字向量,使含义相似的文本在该向量空间中彼此接近。
向量存储
用于存储和搜索嵌入的专用数据库。
检索器
检索器是一个接口,根据非结构化查询返回文档。
RAG架构
RAG可以通过多种方式实现,具体取决于系统需求。我们在以下各节中概述每种类型。| 架构 | 描述 | 控制性 | 灵活性 | 延迟 | 示例用例 |
|---|---|---|---|---|---|
| 两步RAG | 检索总是在生成之前发生。简单且可预测 | ✅ 高 | ❌ 低 | ⚡ 快速 | 常见问题解答、文档机器人 |
| 智能体RAG | 由LLM驱动的智能体在推理过程中决定何时以及如何检索 | ❌ 低 | ✅ 高 | ⏳ 可变 | 可访问多种工具的研究助手 |
| 混合RAG | 结合两种方法的特点,并包含验证步骤 | ⚖️ 中等 | ⚖️ 中等 | ⏳ 可变 | 带有质量验证的特定领域问答 |
延迟:在两步RAG中,延迟通常更可预测,因为LLM调用的最大次数是已知且有上限的。这种可预测性假设LLM推理时间是主要因素。然而,实际延迟也可能受到检索步骤性能的影响——例如API响应时间、网络延迟或数据库查询——这些会根据所使用的工具和基础设施而变化。
两步RAG
在两步RAG中,检索步骤总是在生成步骤之前执行。这种架构简单且可预测,适用于许多检索相关文档是生成答案明确前提的应用。教程:检索增强生成(RAG)
了解如何构建一个问答聊天机器人,该机器人可以使用检索增强生成来回答基于您数据的问题。
本教程介绍两种方法:
- RAG智能体,使用灵活工具运行搜索——非常适合通用用途。
- 两步RAG链,每次查询只需一次LLM调用——对于较简单的任务快速高效。
智能体RAG
智能体检索增强生成(RAG)将检索增强生成的优势与基于智能体的推理相结合。智能体(由LLM驱动)不是在回答前检索文档,而是逐步推理,并在交互过程中决定何时以及如何检索信息。教程:检索增强生成(RAG)
了解如何构建一个问答聊天机器人,该机器人可以使用检索增强生成来回答基于您数据的问题。
本教程介绍两种方法:
- RAG智能体,使用灵活工具运行搜索——非常适合通用用途。
- 两步RAG链,每次查询只需一次LLM调用——对于较简单的任务快速高效。
混合RAG
混合RAG结合了两步RAG和智能体RAG的特点。它引入了中间步骤,如查询预处理、检索验证和生成后检查。这些系统比固定管道提供更大的灵活性,同时保持对执行的一定控制。 典型组件包括:- 查询增强:修改输入问题以提高检索质量。这可能涉及重写不明确的查询、生成多个变体或使用额外上下文扩展查询。
- 检索验证:评估检索到的文档是否相关且充分。如果不充分,系统可能会优化查询并重新检索。
- 答案验证:检查生成的答案的准确性、完整性以及与源内容的一致性。如果需要,系统可以重新生成或修改答案。
- 具有模糊或不明确查询的应用
- 需要验证或质量控制步骤的系统
- 涉及多个来源或迭代优化的工作流
教程:带自我纠正的智能体RAG
混合RAG的一个示例,结合了智能体推理、检索和自我纠正。
将这些文档连接到Claude、VSCode等,通过MCP获取实时答案。

