Skip to content

取回器#

概念#

取回器负责在用户查询(或聊天消息)中提取最相关的上下文。

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

Tip

对取回器在流水线中的位置感到困惑?阅读有关高级概念的内容。

使用模式#

开始使用:

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,
)

示例#

取回器指南中查看更多示例。