跳到内容

检索器#

概念#

检索器负责根据用户查询(或聊天消息)获取最相关的上下文。

它可以在索引之上构建,也可以独立定义。它在查询引擎(和聊天引擎)中用作关键构建块,用于检索相关上下文。

提示

对检索器在 RAG 工作流中的位置感到困惑?阅读有关高级概念的内容

使用模式#

开始使用

retriever = index.as_retriever()
nodes = retriever.retrieve("Who is Paul Graham?")

入门#

从索引获取检索器

retriever = index.as_retriever()

检索问题的相关上下文

nodes = retriever.retrieve("Who is Paul Graham?")

注意:要了解如何构建索引,请参阅索引

高级 API#

选择检索器#

您可以通过 retriever_mode 选择特定于索引的检索器类。例如,使用 SummaryIndex

retriever = summary_index.as_retriever(
    retriever_mode="llm",
)

这会在摘要索引之上创建一个 SummaryIndexLLMRetriever

有关(特定于索引的)检索器模式及其映射到的检索器类的完整列表,请参阅检索器模式

配置检索器#

同样,您可以传递 kwargs 来配置所选的检索器。

注意:请查阅所选检索器类的构造函数参数的 API 参考,了解有效 kwargs 的列表。

例如,如果我们选择“llm”检索器模式,我们可以执行以下操作

retriever = summary_index.as_retriever(
    retriever_mode="llm",
    choice_batch_size=5,
)

低级组合 API#

如果您需要更精细的控制,可以使用低级组合 API。

为了达到与上述相同的结果,您可以直接导入并构建所需的检索器类

from llama_index.core.retrievers import SummaryIndexLLMRetriever

retriever = SummaryIndexLLMRetriever(
    index=summary_index,
    choice_batch_size=5,
)

示例#

检索器指南中查看更多示例。