跳转到内容

检索器

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

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

开始使用:

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

从索引获取检索器:

retriever = index.as_retriever()

为问题检索相关上下文:

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

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

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

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

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

请参阅检索器模式获取(索引特定的)检索器模式完整列表及其对应的检索器类。

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

注意:请查阅所选检索器类的构造函数参数的API参考,以获取有效关键字参数的列表。

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

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

如果您需要更细粒度的控制,可以使用底层组合API。

要实现与上述相同的结果,您可以直接导入并构建所需的检索器类:

from llama_index.core.retrievers import SummaryIndexLLMRetriever
retriever = SummaryIndexLLMRetriever(
index=summary_index,
choice_batch_size=5,
)

更多示例请参阅检索器指南