Retrievers
class langchain.retrievers.AmazonKendraRetriever(index_id, region_name=None, credentials_profile_name=None, top_k=3, attribute_filter=None, client=None)[source]
Bases: langchain.schema.BaseRetriever
Retriever class to query documents from Amazon Kendra Index.
Parameters
index_id (str) – Kendra index id
region_name (Optional[str]) – The aws region e.g., us-west-2.
Fallsback to AWS_DEFAULT_REGION env variable
or region specified in ~/.aws/config.
credentials_profile_name (Optional[str]) – The name of the profile in the ~/.aws/credentials
or ~/.aws/config files, which has either access keys or role information
specified. If not specified, the default credential profile or, if on an
EC2 instance, credentials from IMDS will be used.
top_k (int) – No of results to return
attribute_filter (Optional[Dict]) – Additional filtering of results based on metadata
See: https://docs.aws.amazon.com/kendra/latest/APIReference
client (Optional[Any]) – boto3 client for Kendra
Example
retriever = AmazonKendraRetriever(
    index_id="c0806df7-e76b-4bce-9b5c-d5582f6b1a03"
)
get_relevant_documents(query)[source]
Run search on Kendra index and get top k documents
Example:
.. code-block:: python
docs = retriever.get_relevant_documents(‘This is my query’)
Parameters
query (str) – 
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.ArxivRetriever(*, arxiv_search=None, arxiv_exceptions=None, top_k_results=3, load_max_docs=100, load_all_available_meta=False, doc_content_chars_max=4000, ARXIV_MAX_QUERY_LENGTH=300)[source]
Bases: langchain.schema.BaseRetriever, langchain.utilities.arxiv.ArxivAPIWrapper
It is effectively a wrapper for ArxivAPIWrapper.
It wraps load() to get_relevant_documents().
It uses all ArxivAPIWrapper arguments without any change.
Parameters
arxiv_search (Any) – 
arxiv_exceptions (Any) – 
top_k_results (int) – 
load_max_docs (int) – 
load_all_available_meta (bool) – 
doc_content_chars_max (Optional[int]) – 
ARXIV_MAX_QUERY_LENGTH (int) – 
Return type
None
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.AzureCognitiveSearchRetriever(*, service_name='', index_name='', api_key='', api_version='2020-06-30', aiosession=None, content_key='content')[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Wrapper around Azure Cognitive Search.
Parameters
service_name (str) – 
index_name (str) – 
api_key (str) – 
api_version (str) – 
aiosession (Optional[aiohttp.client.ClientSession]) – 
content_key (str) – 
Return type
None
attribute aiosession: Optional[aiohttp.client.ClientSession] = None
ClientSession, in case we want to reuse connection for better performance.
attribute api_key: str = ''
API Key. Both Admin and Query keys work, but for reading data it’s
recommended to use a Query key.
attribute api_version: str = '2020-06-30'
API version
attribute content_key: str = 'content'
Key in a retrieved result to set as the Document page_content.
attribute index_name: str = ''
Name of Index inside Azure Cognitive Search service
attribute service_name: str = ''
Name of Azure Cognitive Search service
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.ChatGPTPluginRetriever(*, url, bearer_token, top_k=3, filter=None, aiosession=None)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Parameters
url (str) – 
bearer_token (str) – 
top_k (int) – 
filter (Optional[dict]) – 
aiosession (Optional[aiohttp.client.ClientSession]) – 
Return type
None
attribute aiosession: Optional[aiohttp.client.ClientSession] = None
attribute bearer_token: str [Required]
attribute filter: Optional[dict] = None
attribute top_k: int = 3
attribute url: str [Required]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.ContextualCompressionRetriever(*, base_compressor, base_retriever)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Retriever that wraps a base retriever and compresses the results.
Parameters
base_compressor (langchain.retrievers.document_compressors.base.BaseDocumentCompressor) – 
base_retriever (langchain.schema.BaseRetriever) – 
Return type
None
attribute base_compressor: langchain.retrievers.document_compressors.base.BaseDocumentCompressor [Required]
Compressor for compressing retrieved documents.
attribute base_retriever: langchain.schema.BaseRetriever [Required]
Base Retriever to use for getting relevant documents.
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
Sequence of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.DataberryRetriever(datastore_url, top_k=None, api_key=None)[source]
Bases: langchain.schema.BaseRetriever
Retriever that uses the Databerry API.
Parameters
datastore_url (str) – 
top_k (Optional[int]) – 
api_key (Optional[str]) – 
datastore_url: str
api_key: Optional[str]
top_k: Optional[int]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.ElasticSearchBM25Retriever(client, index_name)[source]
Bases: langchain.schema.BaseRetriever
Wrapper around Elasticsearch using BM25 as a retrieval method.
To connect to an Elasticsearch instance that requires login credentials,
including Elastic Cloud, use the Elasticsearch URL format
https://username:password@es_host:9243. For example, to connect to Elastic
Cloud, create the Elasticsearch URL with the required authentication details and
pass it to the ElasticVectorSearch constructor as the named parameter
elasticsearch_url.
You can obtain your Elastic Cloud URL and login credentials by logging in to the
Elastic Cloud console at https://cloud.elastic.co, selecting your deployment, and
navigating to the “Deployments” page.
To obtain your Elastic Cloud password for the default “elastic” user:
Log in to the Elastic Cloud console at https://cloud.elastic.co
Go to “Security” > “Users”
Locate the “elastic” user and click “Edit”
Click “Reset password”
Follow the prompts to reset the password
The format for Elastic Cloud URLs is
https://username:password@cluster_id.region_id.gcp.cloud.es.io:9243.
Parameters
client (Any) – 
index_name (str) – 
classmethod create(elasticsearch_url, index_name, k1=2.0, b=0.75)[source]
Parameters
elasticsearch_url (str) – 
index_name (str) – 
k1 (float) – 
b (float) – 
Return type
langchain.retrievers.elastic_search_bm25.ElasticSearchBM25Retriever
add_texts(texts, refresh_indices=True)[source]
Run more texts through the embeddings and add to the retriever.
Parameters
texts (Iterable[str]) – Iterable of strings to add to the retriever.
refresh_indices (bool) – bool to refresh ElasticSearch indices
Returns
List of ids from adding the texts into the retriever.
Return type
List[str]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.KNNRetriever(*, embeddings, index=None, texts, k=4, relevancy_threshold=None)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
KNN Retriever.
Parameters
embeddings (langchain.embeddings.base.Embeddings) – 
index (Any) – 
texts (List[str]) – 
k (int) – 
relevancy_threshold (Optional[float]) – 
Return type
None
attribute embeddings: langchain.embeddings.base.Embeddings [Required]
attribute index: Any = None
attribute k: int = 4
attribute relevancy_threshold: Optional[float] = None
attribute texts: List[str] [Required]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
classmethod from_texts(texts, embeddings, **kwargs)[source]
Parameters
texts (List[str]) – 
embeddings (langchain.embeddings.base.Embeddings) – 
kwargs (Any) – 
Return type
langchain.retrievers.knn.KNNRetriever
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.LlamaIndexGraphRetriever(*, graph=None, query_configs=None)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Question-answering with sources over an LlamaIndex graph data structure.
Parameters
graph (Any) – 
query_configs (List[Dict]) – 
Return type
None
attribute graph: Any = None
attribute query_configs: List[Dict] [Optional]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – 
Return type
List[langchain.schema.Document]
class langchain.retrievers.LlamaIndexRetriever(*, index=None, query_kwargs=None)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Question-answering with sources over an LlamaIndex data structure.
Parameters
index (Any) – 
query_kwargs (Dict) – 
Return type
None
attribute index: Any = None
attribute query_kwargs: Dict [Optional]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – 
Return type
List[langchain.schema.Document]
class langchain.retrievers.MergerRetriever(retrievers)[source]
Bases: langchain.schema.BaseRetriever
This class merges the results of multiple retrievers.
Parameters
retrievers (List[langchain.schema.BaseRetriever]) – A list of retrievers to merge.
get_relevant_documents(query)[source]
Get the relevant documents for a given query.
Parameters
query (str) – The query to search for.
Returns
A list of relevant documents.
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query)[source]
Asynchronously get the relevant documents for a given query.
Parameters
query (str) – The query to search for.
Returns
A list of relevant documents.
Return type
List[langchain.schema.Document]
merge_documents(query)[source]
Merge the results of the retrievers.
Parameters
query (str) – The query to search for.
Returns
A list of merged documents.
Return type
List[langchain.schema.Document]
async amerge_documents(query)[source]
Asynchronously merge the results of the retrievers.
Parameters
query (str) – The query to search for.
Returns
A list of merged documents.
Return type
List[langchain.schema.Document]
class langchain.retrievers.MetalRetriever(client, params=None)[source]
Bases: langchain.schema.BaseRetriever
Retriever that uses the Metal API.
Parameters
client (Any) – 
params (Optional[dict]) – 
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.MilvusRetriever(embedding_function, collection_name='LangChainCollection', connection_args=None, consistency_level='Session', search_params=None)[source]
Bases: langchain.schema.BaseRetriever
Retriever that uses the Milvus API.
Parameters
embedding_function (langchain.embeddings.base.Embeddings) – 
collection_name (str) – 
connection_args (Optional[Dict[str, Any]]) – 
consistency_level (str) – 
search_params (Optional[dict]) – 
add_texts(texts, metadatas=None)[source]
Add text to the Milvus store
Parameters
texts (List[str]) – The text
metadatas (List[dict]) – Metadata dicts, must line up with existing store
Return type
None
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.PineconeHybridSearchRetriever(*, embeddings, sparse_encoder=None, index=None, top_k=4, alpha=0.5)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Parameters
embeddings (langchain.embeddings.base.Embeddings) – 
sparse_encoder (Any) – 
index (Any) – 
top_k (int) – 
alpha (float) – 
Return type
None
attribute alpha: float = 0.5
attribute embeddings: langchain.embeddings.base.Embeddings [Required]
attribute index: Any = None
attribute sparse_encoder: Any = None
attribute top_k: int = 4
add_texts(texts, ids=None, metadatas=None)[source]
Parameters
texts (List[str]) – 
ids (Optional[List[str]]) – 
metadatas (Optional[List[dict]]) – 
Return type
None
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.PubMedRetriever(*, top_k_results=3, load_max_docs=25, doc_content_chars_max=2000, load_all_available_meta=False, email='your_email@example.com', base_url_esearch='https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?', base_url_efetch='https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?', max_retry=5, sleep_time=0.2, ARXIV_MAX_QUERY_LENGTH=300)[source]
Bases: langchain.schema.BaseRetriever, langchain.utilities.pupmed.PubMedAPIWrapper
It is effectively a wrapper for PubMedAPIWrapper.
It wraps load() to get_relevant_documents().
It uses all PubMedAPIWrapper arguments without any change.
Parameters
top_k_results (int) – 
load_max_docs (int) – 
doc_content_chars_max (int) – 
load_all_available_meta (bool) – 
email (str) – 
base_url_esearch (str) – 
base_url_efetch (str) – 
max_retry (int) – 
sleep_time (float) – 
ARXIV_MAX_QUERY_LENGTH (int) – 
Return type
None
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.RemoteLangChainRetriever(*, url, headers=None, input_key='message', response_key='response', page_content_key='page_content', metadata_key='metadata')[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Parameters
url (str) – 
headers (Optional[dict]) – 
input_key (str) – 
response_key (str) – 
page_content_key (str) – 
metadata_key (str) – 
Return type
None
attribute headers: Optional[dict] = None
attribute input_key: str = 'message'
attribute metadata_key: str = 'metadata'
attribute page_content_key: str = 'page_content'
attribute response_key: str = 'response'
attribute url: str [Required]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.SVMRetriever(*, embeddings, index=None, texts, k=4, relevancy_threshold=None)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
SVM Retriever.
Parameters
embeddings (langchain.embeddings.base.Embeddings) – 
index (Any) – 
texts (List[str]) – 
k (int) – 
relevancy_threshold (Optional[float]) – 
Return type
None
attribute embeddings: langchain.embeddings.base.Embeddings [Required]
attribute index: Any = None
attribute k: int = 4
attribute relevancy_threshold: Optional[float] = None
attribute texts: List[str] [Required]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
classmethod from_texts(texts, embeddings, **kwargs)[source]
Parameters
texts (List[str]) – 
embeddings (langchain.embeddings.base.Embeddings) – 
kwargs (Any) – 
Return type
langchain.retrievers.svm.SVMRetriever
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.SelfQueryRetriever(*, vectorstore, llm_chain, search_type='similarity', search_kwargs=None, structured_query_translator, verbose=False, use_original_query=False)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Retriever that wraps around a vector store and uses an LLM to generate
the vector store queries.
Parameters
vectorstore (langchain.vectorstores.base.VectorStore) – 
llm_chain (langchain.chains.llm.LLMChain) – 
search_type (str) – 
search_kwargs (dict) – 
structured_query_translator (langchain.chains.query_constructor.ir.Visitor) – 
verbose (bool) – 
use_original_query (bool) – 
Return type
None
attribute llm_chain: langchain.chains.llm.LLMChain [Required]
The LLMChain for generating the vector store queries.
attribute search_kwargs: dict [Optional]
Keyword arguments to pass in to the vector store search.
attribute search_type: str = 'similarity'
The search type to perform on the vector store.
attribute structured_query_translator: langchain.chains.query_constructor.ir.Visitor [Required]
Translator for turning internal query language into vectorstore search params.
attribute use_original_query: bool = False
attribute vectorstore: langchain.vectorstores.base.VectorStore [Required]
The underlying vector store from which documents will be retrieved.
attribute verbose: bool = False
Use original query instead of the revised new query from LLM
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
classmethod from_llm(llm, vectorstore, document_contents, metadata_field_info, structured_query_translator=None, chain_kwargs=None, enable_limit=False, use_original_query=False, **kwargs)[source]
Parameters
llm (langchain.base_language.BaseLanguageModel) – 
vectorstore (langchain.vectorstores.base.VectorStore) – 
document_contents (str) – 
metadata_field_info (List[langchain.chains.query_constructor.schema.AttributeInfo]) – 
structured_query_translator (Optional[langchain.chains.query_constructor.ir.Visitor]) – 
chain_kwargs (Optional[Dict]) – 
enable_limit (bool) – 
use_original_query (bool) – 
kwargs (Any) – 
Return type
langchain.retrievers.self_query.base.SelfQueryRetriever
get_relevant_documents(query, callbacks=None)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
callbacks (Optional[Union[List[langchain.callbacks.base.BaseCallbackHandler], langchain.callbacks.base.BaseCallbackManager]]) – 
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.TFIDFRetriever(*, vectorizer=None, docs, tfidf_array=None, k=4)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Parameters
vectorizer (Any) – 
docs (List[langchain.schema.Document]) – 
tfidf_array (Any) – 
k (int) – 
Return type
None
attribute docs: List[langchain.schema.Document] [Required]
attribute k: int = 4
attribute tfidf_array: Any = None
attribute vectorizer: Any = None
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
classmethod from_documents(documents, *, tfidf_params=None, **kwargs)[source]
Parameters
documents (Iterable[langchain.schema.Document]) – 
tfidf_params (Optional[Dict[str, Any]]) – 
kwargs (Any) – 
Return type
langchain.retrievers.tfidf.TFIDFRetriever
classmethod from_texts(texts, metadatas=None, tfidf_params=None, **kwargs)[source]
Parameters
texts (Iterable[str]) – 
metadatas (Optional[Iterable[dict]]) – 
tfidf_params (Optional[Dict[str, Any]]) – 
kwargs (Any) – 
Return type
langchain.retrievers.tfidf.TFIDFRetriever
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.TimeWeightedVectorStoreRetriever(*, vectorstore, search_kwargs=None, memory_stream=None, decay_rate=0.01, k=4, other_score_keys=[], default_salience=None)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Retriever combining embedding similarity with recency.
Parameters
vectorstore (langchain.vectorstores.base.VectorStore) – 
search_kwargs (dict) – 
memory_stream (List[langchain.schema.Document]) – 
decay_rate (float) – 
k (int) – 
other_score_keys (List[str]) – 
default_salience (Optional[float]) – 
Return type
None
attribute decay_rate: float = 0.01
The exponential decay factor used as (1.0-decay_rate)**(hrs_passed).
attribute default_salience: Optional[float] = None
The salience to assign memories not retrieved from the vector store.
None assigns no salience to documents not fetched from the vector store.
attribute k: int = 4
The maximum number of documents to retrieve in a given call.
attribute memory_stream: List[langchain.schema.Document] [Optional]
The memory_stream of documents to search through.
attribute other_score_keys: List[str] = []
Other keys in the metadata to factor into the score, e.g. ‘importance’.
attribute search_kwargs: dict [Optional]
Keyword arguments to pass to the vectorstore similarity search.
attribute vectorstore: langchain.vectorstores.base.VectorStore [Required]
The vectorstore to store documents and determine salience.
async aadd_documents(documents, **kwargs)[source]
Add documents to vectorstore.
Parameters
documents (List[langchain.schema.Document]) – 
kwargs (Any) – 
Return type
List[str]
add_documents(documents, **kwargs)[source]
Add documents to vectorstore.
Parameters
documents (List[langchain.schema.Document]) – 
kwargs (Any) – 
Return type
List[str]
async aget_relevant_documents(query)[source]
Return documents that are relevant to the query.
Parameters
query (str) – 
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Return documents that are relevant to the query.
Parameters
query (str) – 
Return type
List[langchain.schema.Document]
get_salient_docs(query)[source]
Return documents that are salient to the query.
Parameters
query (str) – 
Return type
Dict[int, Tuple[langchain.schema.Document, float]]
class langchain.retrievers.VespaRetriever(app, body, content_field, metadata_fields=None)[source]
Bases: langchain.schema.BaseRetriever
Retriever that uses the Vespa.
Parameters
app (Vespa) – 
body (Dict) – 
content_field (str) – 
metadata_fields (Optional[Sequence[str]]) – 
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents_with_filter(query, *, _filter=None)[source]
Parameters
query (str) – 
_filter (Optional[str]) – 
Return type
List[langchain.schema.Document]
classmethod from_params(url, content_field, *, k=None, metadata_fields=(), sources=None, _filter=None, yql=None, **kwargs)[source]
Instantiate retriever from params.
Parameters
url (str) – Vespa app URL.
content_field (str) – Field in results to return as Document page_content.
k (Optional[int]) – Number of Documents to return. Defaults to None.
metadata_fields (Sequence[str] or "*") – Fields in results to include in
document metadata. Defaults to empty tuple ().
sources (Sequence[str] or "*" or None) – Sources to retrieve
from. Defaults to None.
_filter (Optional[str]) – Document filter condition expressed in YQL.
Defaults to None.
yql (Optional[str]) – Full YQL query to be used. Should not be specified
if _filter or sources are specified. Defaults to None.
kwargs (Any) – Keyword arguments added to query body.
Return type
langchain.retrievers.vespa_retriever.VespaRetriever
class langchain.retrievers.WeaviateHybridSearchRetriever(client, index_name, text_key, alpha=0.5, k=4, attributes=None, create_schema_if_missing=True)[source]
Bases: langchain.schema.BaseRetriever
Parameters
client (Any) – 
index_name (str) – 
text_key (str) – 
alpha (float) – 
k (int) – 
attributes (Optional[List[str]]) – 
create_schema_if_missing (bool) – 
class Config[source]
Bases: object
Configuration for this pydantic object.
extra = 'forbid'
arbitrary_types_allowed = True
add_documents(docs, **kwargs)[source]
Upload documents to Weaviate.
Parameters
docs (List[langchain.schema.Document]) – 
kwargs (Any) – 
Return type
List[str]
get_relevant_documents(query, where_filter=None)[source]
Look up similar documents in Weaviate.
Parameters
query (str) – 
where_filter (Optional[Dict[str, object]]) – 
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query, where_filter=None)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
where_filter (Optional[Dict[str, object]]) – 
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.WikipediaRetriever(*, wiki_client=None, top_k_results=3, lang='en', load_all_available_meta=False, doc_content_chars_max=4000)[source]
Bases: langchain.schema.BaseRetriever, langchain.utilities.wikipedia.WikipediaAPIWrapper
It is effectively a wrapper for WikipediaAPIWrapper.
It wraps load() to get_relevant_documents().
It uses all WikipediaAPIWrapper arguments without any change.
Parameters
wiki_client (Any) – 
top_k_results (int) – 
lang (str) – 
load_all_available_meta (bool) – 
doc_content_chars_max (int) – 
Return type
None
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.ZepRetriever(session_id, url, top_k=None)[source]
Bases: langchain.schema.BaseRetriever
A Retriever implementation for the Zep long-term memory store. Search your
user’s long-term chat history with Zep.
Note: You will need to provide the user’s session_id to use this retriever.
More on Zep:
Zep provides long-term conversation storage for LLM apps. The server stores,
summarizes, embeds, indexes, and enriches conversational AI chat
histories, and exposes them via simple, low-latency APIs.
For server installation instructions, see:
https://getzep.github.io/deployment/quickstart/
Parameters
session_id (str) – 
url (str) – 
top_k (Optional[int]) – 
get_relevant_documents(query, metadata=None)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
metadata (Optional[Dict]) – 
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query, metadata=None)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
metadata (Optional[Dict]) – 
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.ZillizRetriever(embedding_function, collection_name='LangChainCollection', connection_args=None, consistency_level='Session', search_params=None)[source]
Bases: langchain.schema.BaseRetriever
Retriever that uses the Zilliz API.
Parameters
embedding_function (langchain.embeddings.base.Embeddings) – 
collection_name (str) – 
connection_args (Optional[Dict[str, Any]]) – 
consistency_level (str) – 
search_params (Optional[dict]) – 
add_texts(texts, metadatas=None)[source]
Add text to the Zilliz store
Parameters
texts (List[str]) – The text
metadatas (List[dict]) – Metadata dicts, must line up with existing store
Return type
None
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
class langchain.retrievers.DocArrayRetriever(*, index=None, embeddings, search_field, content_field, search_type=SearchType.similarity, top_k=1, filters=None)[source]
Bases: langchain.schema.BaseRetriever, pydantic.main.BaseModel
Retriever class for DocArray Document Indices.
Currently, supports 5 backends:
InMemoryExactNNIndex, HnswDocumentIndex, QdrantDocumentIndex,
ElasticDocIndex, and WeaviateDocumentIndex.
Parameters
index (Any) – 
embeddings (langchain.embeddings.base.Embeddings) – 
search_field (str) – 
content_field (str) – 
search_type (langchain.retrievers.docarray.SearchType) – 
top_k (int) – 
filters (Optional[Any]) – 
Return type
None
index
One of the above-mentioned index instances
embeddings
Embedding model to represent text as vectors
search_field
Field to consider for searching in the documents.
Should be an embedding/vector/tensor.
content_field
Field that represents the main content in your document schema.
Will be used as a page_content. Everything else will go into metadata.
search_type
Type of search to perform (similarity / mmr)
filters
Filters applied for document retrieval.
top_k
Number of documents to return
attribute content_field: str [Required]
attribute embeddings: langchain.embeddings.base.Embeddings [Required]
attribute filters: Optional[Any] = None
attribute index: Any = None
attribute search_field: str [Required]
attribute search_type: langchain.retrievers.docarray.SearchType = SearchType.similarity
attribute top_k: int = 1
async aget_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
get_relevant_documents(query)[source]
Get documents relevant for a query.
Parameters
query (str) – string to find relevant documents for
Returns
List of relevant documents
Return type
List[langchain.schema.Document]
Document compressors
class langchain.retrievers.document_compressors.DocumentCompressorPipeline(*, transformers)[source]
Bases: langchain.retrievers.document_compressors.base.BaseDocumentCompressor
Document compressor that uses a pipeline of transformers.
Parameters
transformers (List[Union[langchain.schema.BaseDocumentTransformer, langchain.retrievers.document_compressors.base.BaseDocumentCompressor]]) – 
Return type
None
attribute transformers: List[Union[langchain.schema.BaseDocumentTransformer, langchain.retrievers.document_compressors.base.BaseDocumentCompressor]] [Required]
List of document filters that are chained together and run in sequence.
async acompress_documents(documents, query)[source]
Compress retrieved documents given the query context.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
compress_documents(documents, query)[source]
Transform a list of documents.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
class langchain.retrievers.document_compressors.EmbeddingsFilter(*, embeddings, similarity_fn=<function cosine_similarity>, k=20, similarity_threshold=None)[source]
Bases: langchain.retrievers.document_compressors.base.BaseDocumentCompressor
Parameters
embeddings (langchain.embeddings.base.Embeddings) – 
similarity_fn (Callable) – 
k (Optional[int]) – 
similarity_threshold (Optional[float]) – 
Return type
None
attribute embeddings: langchain.embeddings.base.Embeddings [Required]
Embeddings to use for embedding document contents and queries.
attribute k: Optional[int] = 20
The number of relevant documents to return. Can be set to None, in which case
similarity_threshold must be specified. Defaults to 20.
attribute similarity_fn: Callable = <function cosine_similarity>
Similarity function for comparing documents. Function expected to take as input
two matrices (List[List[float]]) and return a matrix of scores where higher values
indicate greater similarity.
attribute similarity_threshold: Optional[float] = None
Threshold for determining when two documents are similar enough
to be considered redundant. Defaults to None, must be specified if k is set
to None.
async acompress_documents(documents, query)[source]
Filter down documents.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
compress_documents(documents, query)[source]
Filter documents based on similarity of their embeddings to the query.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
class langchain.retrievers.document_compressors.LLMChainExtractor(*, llm_chain, get_input=<function default_get_input>)[source]
Bases: langchain.retrievers.document_compressors.base.BaseDocumentCompressor
Parameters
llm_chain (langchain.chains.llm.LLMChain) – 
get_input (Callable[[str, langchain.schema.Document], dict]) – 
Return type
None
attribute get_input: Callable[[str, langchain.schema.Document], dict] = <function default_get_input>
Callable for constructing the chain input from the query and a Document.
attribute llm_chain: langchain.chains.llm.LLMChain [Required]
LLM wrapper to use for compressing documents.
async acompress_documents(documents, query)[source]
Compress page content of raw documents asynchronously.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
compress_documents(documents, query)[source]
Compress page content of raw documents.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
classmethod from_llm(llm, prompt=None, get_input=None, llm_chain_kwargs=None)[source]
Initialize from LLM.
Parameters
llm (langchain.base_language.BaseLanguageModel) – 
prompt (Optional[langchain.prompts.prompt.PromptTemplate]) – 
get_input (Optional[Callable[[str, langchain.schema.Document], str]]) – 
llm_chain_kwargs (Optional[dict]) – 
Return type
langchain.retrievers.document_compressors.chain_extract.LLMChainExtractor
class langchain.retrievers.document_compressors.LLMChainFilter(*, llm_chain, get_input=<function default_get_input>)[source]
Bases: langchain.retrievers.document_compressors.base.BaseDocumentCompressor
Filter that drops documents that aren’t relevant to the query.
Parameters
llm_chain (langchain.chains.llm.LLMChain) – 
get_input (Callable[[str, langchain.schema.Document], dict]) – 
Return type
None
attribute get_input: Callable[[str, langchain.schema.Document], dict] = <function default_get_input>
Callable for constructing the chain input from the query and a Document.
attribute llm_chain: langchain.chains.llm.LLMChain [Required]
LLM wrapper to use for filtering documents.
The chain prompt is expected to have a BooleanOutputParser.
async acompress_documents(documents, query)[source]
Filter down documents.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
compress_documents(documents, query)[source]
Filter down documents based on their relevance to the query.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
classmethod from_llm(llm, prompt=None, **kwargs)[source]
Parameters
llm (langchain.base_language.BaseLanguageModel) – 
prompt (Optional[langchain.prompts.base.BasePromptTemplate]) – 
kwargs (Any) – 
Return type
langchain.retrievers.document_compressors.chain_filter.LLMChainFilter
class langchain.retrievers.document_compressors.CohereRerank(*, client, top_n=3, model='rerank-english-v2.0')[source]
Bases: langchain.retrievers.document_compressors.base.BaseDocumentCompressor
Parameters
client (Client) – 
top_n (int) – 
model (str) – 
Return type
None
attribute client: Client [Required]
attribute model: str = 'rerank-english-v2.0'
attribute top_n: int = 3
async acompress_documents(documents, query)[source]
Compress retrieved documents given the query context.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]
compress_documents(documents, query)[source]
Compress retrieved documents given the query context.
Parameters
documents (Sequence[langchain.schema.Document]) – 
query (str) – 
Return type
Sequence[langchain.schema.Document]