Retriever
Concept
Section titled “Concept”Retrievers are responsible for fetching the most relevant context given a user query (or chat message).
It can be built on top of indexes, but can also be defined independently. It is used as a key building block in query engines (and Chat Engines) for retrieving relevant context.
!!! tip Confused about where retriever fits in the RAG workflow? Read about high-level concepts
Usage Pattern
Section titled “Usage Pattern”Get started with:
retriever = index.as_retriever()nodes = retriever.retrieve("Who is Paul Graham?")
Get Started
Section titled “Get Started”Get a retriever from index:
retriever = index.as_retriever()
Retrieve relevant context for a question:
nodes = retriever.retrieve("Who is Paul Graham?")
Note: To learn how to build an index, see Indexing
High-Level API
Section titled “High-Level API”Selecting a Retriever
Section titled “Selecting a Retriever”You can select the index-specific retriever class via retriever_mode
.
For example, with a SummaryIndex
:
retriever = summary_index.as_retriever( retriever_mode="llm",)
This creates a SummaryIndexLLMRetriever on top of the summary index.
See Retriever Modes for a full list of (index-specific) retriever modes and the retriever classes they map to.
Configuring a Retriever
Section titled “Configuring a Retriever”In the same way, you can pass kwargs to configure the selected retriever.
Note: take a look at the API reference for the selected retriever class’ constructor parameters for a list of valid kwargs.
For example, if we selected the “llm” retriever mode, we might do the following:
retriever = summary_index.as_retriever( retriever_mode="llm", choice_batch_size=5,)
Low-Level Composition API
Section titled “Low-Level Composition API”You can use the low-level composition API if you need more granular control.
To achieve the same outcome as above, you can directly import and construct the desired retriever class:
from llama_index.core.retrievers import SummaryIndexLLMRetriever
retriever = SummaryIndexLLMRetriever( index=summary_index, choice_batch_size=5,)
Examples
Section titled “Examples”See more examples in the retrievers guide.