SyamNaren's picture
upload env
63deadc verified
"""**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,
)
# Create a way to dynamically look up deprecated imports.
# Used to consolidate logic for raising deprecation warnings and
# handling optional imports.
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",
]