|
"""**Retriever** class returns Documents given a text **query**. |
|
|
|
It is more general than a vector store. A retriever does not need to be able to |
|
store documents, only to return (or retrieve) it. Vector stores can be used as |
|
the backbone of a retriever, but there are other types of retrievers as well. |
|
|
|
**Class hierarchy:** |
|
|
|
.. code-block:: |
|
|
|
BaseRetriever --> <name>Retriever # Examples: ArxivRetriever, MergerRetriever |
|
|
|
**Main helpers:** |
|
|
|
.. code-block:: |
|
|
|
Document, Serializable, Callbacks, |
|
CallbackManagerForRetrieverRun, AsyncCallbackManagerForRetrieverRun |
|
""" |
|
|
|
from typing import TYPE_CHECKING, Any |
|
|
|
from langchain._api.module_import import create_importer |
|
from langchain.retrievers.contextual_compression import ContextualCompressionRetriever |
|
from langchain.retrievers.ensemble import EnsembleRetriever |
|
from langchain.retrievers.merger_retriever import MergerRetriever |
|
from langchain.retrievers.multi_query import MultiQueryRetriever |
|
from langchain.retrievers.multi_vector import MultiVectorRetriever |
|
from langchain.retrievers.parent_document_retriever import ParentDocumentRetriever |
|
from langchain.retrievers.re_phraser import RePhraseQueryRetriever |
|
from langchain.retrievers.self_query.base import SelfQueryRetriever |
|
from langchain.retrievers.time_weighted_retriever import ( |
|
TimeWeightedVectorStoreRetriever, |
|
) |
|
|
|
if TYPE_CHECKING: |
|
from langchain_community.retrievers import ( |
|
AmazonKendraRetriever, |
|
AmazonKnowledgeBasesRetriever, |
|
ArceeRetriever, |
|
ArxivRetriever, |
|
AzureAISearchRetriever, |
|
AzureCognitiveSearchRetriever, |
|
BM25Retriever, |
|
ChaindeskRetriever, |
|
ChatGPTPluginRetriever, |
|
CohereRagRetriever, |
|
DocArrayRetriever, |
|
DriaRetriever, |
|
ElasticSearchBM25Retriever, |
|
EmbedchainRetriever, |
|
GoogleCloudEnterpriseSearchRetriever, |
|
GoogleDocumentAIWarehouseRetriever, |
|
GoogleVertexAIMultiTurnSearchRetriever, |
|
GoogleVertexAISearchRetriever, |
|
KayAiRetriever, |
|
KNNRetriever, |
|
LlamaIndexGraphRetriever, |
|
LlamaIndexRetriever, |
|
MetalRetriever, |
|
MilvusRetriever, |
|
NeuralDBRetriever, |
|
OutlineRetriever, |
|
PineconeHybridSearchRetriever, |
|
PubMedRetriever, |
|
RemoteLangChainRetriever, |
|
SVMRetriever, |
|
TavilySearchAPIRetriever, |
|
TFIDFRetriever, |
|
VespaRetriever, |
|
WeaviateHybridSearchRetriever, |
|
WebResearchRetriever, |
|
WikipediaRetriever, |
|
ZepRetriever, |
|
ZillizRetriever, |
|
) |
|
|
|
|
|
|
|
|
|
DEPRECATED_LOOKUP = { |
|
"AmazonKendraRetriever": "langchain_community.retrievers", |
|
"AmazonKnowledgeBasesRetriever": "langchain_community.retrievers", |
|
"ArceeRetriever": "langchain_community.retrievers", |
|
"ArxivRetriever": "langchain_community.retrievers", |
|
"AzureAISearchRetriever": "langchain_community.retrievers", |
|
"AzureCognitiveSearchRetriever": "langchain_community.retrievers", |
|
"ChatGPTPluginRetriever": "langchain_community.retrievers", |
|
"ChaindeskRetriever": "langchain_community.retrievers", |
|
"CohereRagRetriever": "langchain_community.retrievers", |
|
"ElasticSearchBM25Retriever": "langchain_community.retrievers", |
|
"EmbedchainRetriever": "langchain_community.retrievers", |
|
"GoogleDocumentAIWarehouseRetriever": "langchain_community.retrievers", |
|
"GoogleCloudEnterpriseSearchRetriever": "langchain_community.retrievers", |
|
"GoogleVertexAIMultiTurnSearchRetriever": "langchain_community.retrievers", |
|
"GoogleVertexAISearchRetriever": "langchain_community.retrievers", |
|
"KayAiRetriever": "langchain_community.retrievers", |
|
"KNNRetriever": "langchain_community.retrievers", |
|
"LlamaIndexGraphRetriever": "langchain_community.retrievers", |
|
"LlamaIndexRetriever": "langchain_community.retrievers", |
|
"MetalRetriever": "langchain_community.retrievers", |
|
"MilvusRetriever": "langchain_community.retrievers", |
|
"OutlineRetriever": "langchain_community.retrievers", |
|
"PineconeHybridSearchRetriever": "langchain_community.retrievers", |
|
"PubMedRetriever": "langchain_community.retrievers", |
|
"RemoteLangChainRetriever": "langchain_community.retrievers", |
|
"SVMRetriever": "langchain_community.retrievers", |
|
"TavilySearchAPIRetriever": "langchain_community.retrievers", |
|
"BM25Retriever": "langchain_community.retrievers", |
|
"DriaRetriever": "langchain_community.retrievers", |
|
"NeuralDBRetriever": "langchain_community.retrievers", |
|
"TFIDFRetriever": "langchain_community.retrievers", |
|
"VespaRetriever": "langchain_community.retrievers", |
|
"WeaviateHybridSearchRetriever": "langchain_community.retrievers", |
|
"WebResearchRetriever": "langchain_community.retrievers", |
|
"WikipediaRetriever": "langchain_community.retrievers", |
|
"ZepRetriever": "langchain_community.retrievers", |
|
"ZillizRetriever": "langchain_community.retrievers", |
|
"DocArrayRetriever": "langchain_community.retrievers", |
|
} |
|
|
|
_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) |
|
|
|
|
|
def __getattr__(name: str) -> Any: |
|
"""Look up attributes dynamically.""" |
|
return _import_attribute(name) |
|
|
|
|
|
__all__ = [ |
|
"AmazonKendraRetriever", |
|
"AmazonKnowledgeBasesRetriever", |
|
"ArceeRetriever", |
|
"ArxivRetriever", |
|
"AzureAISearchRetriever", |
|
"AzureCognitiveSearchRetriever", |
|
"BM25Retriever", |
|
"ChaindeskRetriever", |
|
"ChatGPTPluginRetriever", |
|
"CohereRagRetriever", |
|
"ContextualCompressionRetriever", |
|
"DocArrayRetriever", |
|
"DriaRetriever", |
|
"ElasticSearchBM25Retriever", |
|
"EmbedchainRetriever", |
|
"EnsembleRetriever", |
|
"GoogleCloudEnterpriseSearchRetriever", |
|
"GoogleDocumentAIWarehouseRetriever", |
|
"GoogleVertexAIMultiTurnSearchRetriever", |
|
"GoogleVertexAISearchRetriever", |
|
"KayAiRetriever", |
|
"KNNRetriever", |
|
"LlamaIndexGraphRetriever", |
|
"LlamaIndexRetriever", |
|
"MergerRetriever", |
|
"MetalRetriever", |
|
"MilvusRetriever", |
|
"MultiQueryRetriever", |
|
"MultiVectorRetriever", |
|
"OutlineRetriever", |
|
"ParentDocumentRetriever", |
|
"PineconeHybridSearchRetriever", |
|
"PubMedRetriever", |
|
"RemoteLangChainRetriever", |
|
"RePhraseQueryRetriever", |
|
"SelfQueryRetriever", |
|
"SVMRetriever", |
|
"TavilySearchAPIRetriever", |
|
"TFIDFRetriever", |
|
"TimeWeightedVectorStoreRetriever", |
|
"VespaRetriever", |
|
"WeaviateHybridSearchRetriever", |
|
"WebResearchRetriever", |
|
"WikipediaRetriever", |
|
"ZepRetriever", |
|
"NeuralDBRetriever", |
|
"ZillizRetriever", |
|
] |
|
|