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