Skip to main content
Alpha 版本提示: 本文档涵盖的是 v1-alpha 版本。内容尚不完整,且可能随时变更。如需查阅最新稳定版本,请参阅 v0 版本的 LangChain Python 文档LangChain JavaScript 文档
大型语言模型(LLMs)功能强大,但存在两个关键限制:
  • 有限上下文 —— 它们无法一次性处理整个语料库。
  • 静态知识 —— 其训练数据在某个时间点后便被冻结。
检索(Retrieval)通过在查询时获取相关的外部知识来解决这些问题。这是**检索增强生成(Retrieval-Augmented Generation, RAG)**的基础:利用特定上下文信息增强LLM的回答。

构建知识库

知识库是在检索过程中使用的文档或结构化数据的存储库。 如果您需要自定义知识库,可以使用LangChain的文档加载器和向量存储从您自己的数据构建一个。
如果您已拥有知识库(例如SQL数据库、CRM或内部文档系统),则无需重建它。您可以:
  • 将其作为工具连接到Agentic RAG中的智能体。
  • 查询该知识库并将检索到的内容作为上下文提供给LLM(两步RAG)。
请参阅以下教程,学习如何构建可搜索的知识库及最小化RAG工作流:

教程:语义搜索

学习如何使用LangChain的文档加载器、嵌入模型和向量存储,从您自己的数据创建可搜索的知识库。 在本教程中,您将基于PDF构建搜索引擎,实现根据查询检索相关段落。您还将在此引擎基础上实现最小化的RAG工作流,观察外部知识如何融入LLM的推理过程。

从检索到RAG

检索使LLM能够在运行时访问相关上下文。但大多数实际应用更进一步:它们将检索与生成相结合,以产生有依据、上下文感知的答案。 这正是**检索增强生成(RAG)**的核心理念。检索流水线成为更广泛系统的基础,该系统结合了搜索与生成。

检索流水线

典型的检索工作流如下所示: 每个组件都是模块化的:您可以更换加载器、分割器、嵌入模型或向量存储,而无需重写应用程序逻辑。

构建模块

RAG架构

RAG可根据系统需求以多种方式实现。我们在以下各节中概述每种类型。
架构描述控制性灵活性延迟示例用例
Agentic RAG由LLM驱动的智能体在推理过程中决定何时以及如何进行检索❌ 低✅ 高⏳ 可变可访问多种工具的研究助手
2-Step RAG检索总是在生成之前进行。简单且可预测✅ 高❌ 低⚡ 快速常见问题解答、文档机器人
混合型结合两种方法的特点,并加入验证步骤⚖️ 中等⚖️ 中等⏳ 可变需质量验证的领域特定问答
延迟:在2-Step RAG中,延迟通常更可预测,因为LLM调用的最大次数是已知且有限的。这种可预测性假设LLM推理时间是主导因素。然而,实际延迟也可能受检索步骤性能的影响——例如API响应时间、网络延迟或数据库查询——这些因素会根据所使用的工具和基础设施而变化。

Agentic RAG

Agentic检索增强生成(RAG) 结合了检索增强生成与基于智能体的推理优势。智能体(由LLM驱动)不是在回答前检索文档,而是逐步推理,并在交互过程中决定何时以及如何检索信息。
要使智能体具备RAG行为,唯一需要的是访问一个或多个可以获取外部知识的工具——例如文档加载器、Web API或数据库查询。
import requests
from langchain_core.tools import tool
from langchain.chat_models import init_chat_model
from langchain.agents import create_agent

@tool
def fetch_url(url: str) -> str:
    """从URL获取文本内容"""
    response = requests.get(url, timeout=10.0)
    response.raise_for_status()
    return response.text

system_prompt = """\
当需要从网页获取信息时,请使用fetch_url;引用相关片段。
"""

agent = create_react_agent(
    model=init_chat_model("claude-sonnet-4-0"),
    tools=[fetch_url], # 用于检索的工具
    prompt=system_prompt,
)

教程:检索增强生成(RAG)

查看如何构建一个基于您数据的问答聊天机器人,使用检索增强生成技术。 本教程涵盖两种方法:
  • 一个使用灵活工具进行搜索的RAG智能体——适用于通用场景。
  • 一个每次查询仅需一次LLM调用的两步RAG链——对简单任务快速高效。

两步RAG

两步RAG中,检索步骤总是在生成步骤之前执行。这种架构简单且可预测,适用于许多应用场景,其中检索相关文档是生成答案的明确前提。

教程:检索增强生成(RAG)

查看如何构建一个基于您数据的问答聊天机器人,使用检索增强生成技术。 本教程涵盖两种方法:
  • 一个使用灵活工具进行搜索的RAG智能体——适用于通用场景。
  • 一个每次查询仅需一次LLM调用的两步RAG链——对简单任务快速高效。

混合型RAG

混合型RAG结合了两步RAG和Agentic RAG的特点。它引入了中间步骤,如查询预处理、检索验证和生成后检查。这些系统比固定流水线更灵活,同时保持对执行过程的部分控制。 典型组件包括:
  • 查询增强:修改输入问题以提高检索质量。这可能包括重写不明确的查询、生成多个变体或通过附加上下文扩展查询。
  • 检索验证:评估检索到的文档是否相关且充分。如果不充分,系统可优化查询并再次检索。
  • 答案验证:检查生成答案的准确性、完整性和与源内容的一致性。如有必要,系统可重新生成或修订答案。
该架构通常支持这些步骤之间的多次迭代: 这种架构适用于:
  • 查询模糊或未明确指定的应用场景
  • 需要验证或质量控制步骤的系统
  • 涉及多个来源或迭代优化的工作流

教程:带自我修正的Agentic RAG

一个结合智能体推理、检索与自我修正的混合型RAG示例。