检索器#
概念#
检索器负责根据用户查询(或聊天消息)获取最相关的上下文。
它可以在索引之上构建,也可以独立定义。它在查询引擎(和聊天引擎)中用作关键构建块,用于检索相关上下文。
提示
对检索器在 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,
)
示例#
在检索器指南中查看更多示例。