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