Skip to content

检索器#

概念#

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

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

Tip

不清楚检索器在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,
)

示例#

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