diff --git a/libs/community/langchain_community/retrievers/__init__.py b/libs/community/langchain_community/retrievers/__init__.py index a4b43dd978f18f..82e90c0741e5e8 100644 --- a/libs/community/langchain_community/retrievers/__init__.py +++ b/libs/community/langchain_community/retrievers/__init__.py @@ -28,7 +28,8 @@ from langchain_community.retrievers.arxiv import ( ArxivRetriever, ) - from langchain_community.retrievers.azure_cognitive_search import ( + from langchain_community.retrievers.azure_ai_search import ( + AzureAISearchRetriever, AzureCognitiveSearchRetriever, ) from langchain_community.retrievers.bedrock import ( @@ -100,6 +101,9 @@ from langchain_community.retrievers.qdrant_sparse_vector_retriever import ( QdrantSparseVectorRetriever, ) + from langchain_community.retrievers.rememberizer import ( + RememberizerRetriever, + ) from langchain_community.retrievers.remote_retriever import ( RemoteLangChainRetriever, ) @@ -112,6 +116,7 @@ from langchain_community.retrievers.tfidf import ( TFIDFRetriever, ) + from langchain_community.retrievers.thirdai_neuraldb import NeuralDBRetriever from langchain_community.retrievers.vespa_retriever import ( VespaRetriever, ) @@ -131,46 +136,6 @@ ZillizRetriever, ) -__all__ = [ - "AmazonKendraRetriever", - "AmazonKnowledgeBasesRetriever", - "ArceeRetriever", - "ArxivRetriever", - "AzureCognitiveSearchRetriever", - "BM25Retriever", - "BreebsRetriever", - "ChaindeskRetriever", - "ChatGPTPluginRetriever", - "CohereRagRetriever", - "DocArrayRetriever", - "DriaRetriever", - "ElasticSearchBM25Retriever", - "EmbedchainRetriever", - "GoogleCloudEnterpriseSearchRetriever", - "GoogleDocumentAIWarehouseRetriever", - "GoogleVertexAIMultiTurnSearchRetriever", - "GoogleVertexAISearchRetriever", - "KNNRetriever", - "KayAiRetriever", - "LlamaIndexGraphRetriever", - "LlamaIndexRetriever", - "MetalRetriever", - "MilvusRetriever", - "OutlineRetriever", - "PineconeHybridSearchRetriever", - "PubMedRetriever", - "QdrantSparseVectorRetriever", - "RemoteLangChainRetriever", - "SVMRetriever", - "TFIDFRetriever", - "TavilySearchAPIRetriever", - "VespaRetriever", - "WeaviateHybridSearchRetriever", - "WikipediaRetriever", - "YouRetriever", - "ZepRetriever", - "ZillizRetriever", -] _module_lookup = { "AmazonKendraRetriever": "langchain_community.retrievers.kendra", @@ -224,4 +189,46 @@ def __getattr__(name: str) -> Any: raise AttributeError(f"module {__name__} has no attribute {name}") -__all__ = list(_module_lookup.keys()) +__all__ = [ + "AmazonKendraRetriever", + "AmazonKnowledgeBasesRetriever", + "ArceeRetriever", + "ArxivRetriever", + "AzureCognitiveSearchRetriever", + "AzureAISearchRetriever", + "BM25Retriever", + "BreebsRetriever", + "ChaindeskRetriever", + "ChatGPTPluginRetriever", + "CohereRagRetriever", + "DocArrayRetriever", + "DriaRetriever", + "ElasticSearchBM25Retriever", + "EmbedchainRetriever", + "GoogleCloudEnterpriseSearchRetriever", + "GoogleDocumentAIWarehouseRetriever", + "GoogleVertexAIMultiTurnSearchRetriever", + "GoogleVertexAISearchRetriever", + "KNNRetriever", + "KayAiRetriever", + "LlamaIndexGraphRetriever", + "LlamaIndexRetriever", + "MetalRetriever", + "MilvusRetriever", + "NeuralDBRetriever", + "OutlineRetriever", + "PineconeHybridSearchRetriever", + "PubMedRetriever", + "QdrantSparseVectorRetriever", + "RememberizerRetriever", + "RemoteLangChainRetriever", + "SVMRetriever", + "TFIDFRetriever", + "TavilySearchAPIRetriever", + "VespaRetriever", + "WeaviateHybridSearchRetriever", + "WikipediaRetriever", + "YouRetriever", + "ZepRetriever", + "ZillizRetriever", +] diff --git a/libs/community/tests/unit_tests/retrievers/test_imports.py b/libs/community/tests/unit_tests/retrievers/test_imports.py index 773da501d1ad01..6e438bf5cde939 100644 --- a/libs/community/tests/unit_tests/retrievers/test_imports.py +++ b/libs/community/tests/unit_tests/retrievers/test_imports.py @@ -32,6 +32,8 @@ "RememberizerRetriever", "SVMRetriever", "TavilySearchAPIRetriever", + "NeuralDBRetriever", + "RememberizerRetriever", "TFIDFRetriever", "BM25Retriever", "VespaRetriever", diff --git a/libs/langchain/langchain/retrievers/__init__.py b/libs/langchain/langchain/retrievers/__init__.py index a1ba007f365f52..514b98c09237f6 100644 --- a/libs/langchain/langchain/retrievers/__init__.py +++ b/libs/langchain/langchain/retrievers/__init__.py @@ -17,7 +17,7 @@ Document, Serializable, Callbacks, CallbackManagerForRetrieverRun, AsyncCallbackManagerForRetrieverRun """ -from typing import Any +from typing import TYPE_CHECKING, Any from langchain._api.module_import import create_importer from langchain.retrievers.contextual_compression import ContextualCompressionRetriever @@ -34,14 +34,96 @@ ) from langchain.retrievers.web_research import WebResearchRetriever -import_lookup = create_importer( - __package__, fallback_module="langchain_community.retrievers" -) +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, + 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", + "TFIDFRetriever": "langchain_community.retrievers", + "BM25Retriever": "langchain_community.retrievers", + "VespaRetriever": "langchain_community.retrievers", + "NeuralDBRetriever": "langchain_community.retrievers", + "DriaRetriever": "langchain_community.retrievers", + "WeaviateHybridSearchRetriever": "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: - """Import retrievers from langchain_community.""" - return import_lookup(name) + """Look up attributes dynamically.""" + return _import_attribute(name) __all__ = [ @@ -51,14 +133,18 @@ def __getattr__(name: str) -> Any: "ArxivRetriever", "AzureAISearchRetriever", "AzureCognitiveSearchRetriever", - "ChatGPTPluginRetriever", - "ContextualCompressionRetriever", + "BM25Retriever", "ChaindeskRetriever", + "ChatGPTPluginRetriever", "CohereRagRetriever", + "ContextualCompressionRetriever", + "DocArrayRetriever", + "DriaRetriever", "ElasticSearchBM25Retriever", "EmbedchainRetriever", - "GoogleDocumentAIWarehouseRetriever", + "EnsembleRetriever", "GoogleCloudEnterpriseSearchRetriever", + "GoogleDocumentAIWarehouseRetriever", "GoogleVertexAIMultiTurnSearchRetriever", "GoogleVertexAISearchRetriever", "KayAiRetriever", @@ -69,25 +155,23 @@ def __getattr__(name: str) -> Any: "MetalRetriever", "MilvusRetriever", "MultiQueryRetriever", + "MultiVectorRetriever", "OutlineRetriever", + "ParentDocumentRetriever", "PineconeHybridSearchRetriever", "PubMedRetriever", "RemoteLangChainRetriever", - "SVMRetriever", + "RePhraseQueryRetriever", "SelfQueryRetriever", + "SVMRetriever", "TavilySearchAPIRetriever", "TFIDFRetriever", - "BM25Retriever", "TimeWeightedVectorStoreRetriever", "VespaRetriever", "WeaviateHybridSearchRetriever", + "WebResearchRetriever", "WikipediaRetriever", "ZepRetriever", + "NeuralDBRetriever", "ZillizRetriever", - "DocArrayRetriever", - "RePhraseQueryRetriever", - "WebResearchRetriever", - "EnsembleRetriever", - "ParentDocumentRetriever", - "MultiVectorRetriever", ] diff --git a/libs/langchain/langchain/retrievers/arcee.py b/libs/langchain/langchain/retrievers/arcee.py index a2f478dfc6b0d0..5ba3b56315661f 100644 --- a/libs/langchain/langchain/retrievers/arcee.py +++ b/libs/langchain/langchain/retrievers/arcee.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.arcee import ArceeRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["ArceeRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ArceeRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ArceeRetriever": "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__ = [ + "ArceeRetriever", +] diff --git a/libs/langchain/langchain/retrievers/arxiv.py b/libs/langchain/langchain/retrievers/arxiv.py index ae90cdd68e98dc..3fce2d20e9f274 100644 --- a/libs/langchain/langchain/retrievers/arxiv.py +++ b/libs/langchain/langchain/retrievers/arxiv.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.arxiv import ArxivRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["ArxivRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ArxivRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ArxivRetriever": "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__ = [ + "ArxivRetriever", +] diff --git a/libs/langchain/langchain/retrievers/azure_ai_search.py b/libs/langchain/langchain/retrievers/azure_ai_search.py index b7c90caa017599..fd0615350edad5 100644 --- a/libs/langchain/langchain/retrievers/azure_ai_search.py +++ b/libs/langchain/langchain/retrievers/azure_ai_search.py @@ -1,6 +1,30 @@ -from langchain_community.retrievers.azure_ai_search import ( - AzureAISearchRetriever, - AzureCognitiveSearchRetriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["AzureAISearchRetriever", "AzureCognitiveSearchRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ( + AzureAISearchRetriever, + AzureCognitiveSearchRetriever, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "AzureAISearchRetriever": "langchain_community.retrievers", + "AzureCognitiveSearchRetriever": "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__ = [ + "AzureAISearchRetriever", + "AzureCognitiveSearchRetriever", +] diff --git a/libs/langchain/langchain/retrievers/bedrock.py b/libs/langchain/langchain/retrievers/bedrock.py index cab6684fbd8d4b..25558d924b1d30 100644 --- a/libs/langchain/langchain/retrievers/bedrock.py +++ b/libs/langchain/langchain/retrievers/bedrock.py @@ -1,7 +1,33 @@ -from langchain_community.retrievers.bedrock import ( - AmazonKnowledgeBasesRetriever, - RetrievalConfig, - VectorSearchConfig, -) +from typing import TYPE_CHECKING, Any -__all__ = ["VectorSearchConfig", "RetrievalConfig", "AmazonKnowledgeBasesRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import AmazonKnowledgeBasesRetriever + from langchain_community.retrievers.bedrock import ( + RetrievalConfig, + VectorSearchConfig, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "VectorSearchConfig": "langchain_community.retrievers.bedrock", + "RetrievalConfig": "langchain_community.retrievers.bedrock", + "AmazonKnowledgeBasesRetriever": "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__ = [ + "VectorSearchConfig", + "RetrievalConfig", + "AmazonKnowledgeBasesRetriever", +] diff --git a/libs/langchain/langchain/retrievers/bm25.py b/libs/langchain/langchain/retrievers/bm25.py index 78c72852281115..e5dc41952282ee 100644 --- a/libs/langchain/langchain/retrievers/bm25.py +++ b/libs/langchain/langchain/retrievers/bm25.py @@ -1,6 +1,28 @@ -from langchain_community.retrievers.bm25 import ( - BM25Retriever, - default_preprocessing_func, -) +from typing import TYPE_CHECKING, Any -__all__ = ["default_preprocessing_func", "BM25Retriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import BM25Retriever + from langchain_community.retrievers.bm25 import default_preprocessing_func + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "default_preprocessing_func": "langchain_community.retrievers.bm25", + "BM25Retriever": "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__ = [ + "default_preprocessing_func", + "BM25Retriever", +] diff --git a/libs/langchain/langchain/retrievers/chaindesk.py b/libs/langchain/langchain/retrievers/chaindesk.py index 88085eb90bb6d7..a0a9f6eec23e80 100644 --- a/libs/langchain/langchain/retrievers/chaindesk.py +++ b/libs/langchain/langchain/retrievers/chaindesk.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.chaindesk import ChaindeskRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["ChaindeskRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ChaindeskRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ChaindeskRetriever": "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__ = [ + "ChaindeskRetriever", +] diff --git a/libs/langchain/langchain/retrievers/chatgpt_plugin_retriever.py b/libs/langchain/langchain/retrievers/chatgpt_plugin_retriever.py index 314d98455c52a5..6258c4621f8b15 100644 --- a/libs/langchain/langchain/retrievers/chatgpt_plugin_retriever.py +++ b/libs/langchain/langchain/retrievers/chatgpt_plugin_retriever.py @@ -1,5 +1,23 @@ -from langchain_community.retrievers.chatgpt_plugin_retriever import ( - ChatGPTPluginRetriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["ChatGPTPluginRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ChatGPTPluginRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ChatGPTPluginRetriever": "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__ = [ + "ChatGPTPluginRetriever", +] diff --git a/libs/langchain/langchain/retrievers/cohere_rag_retriever.py b/libs/langchain/langchain/retrievers/cohere_rag_retriever.py index 560e9957ce8984..7c2e1bed244be2 100644 --- a/libs/langchain/langchain/retrievers/cohere_rag_retriever.py +++ b/libs/langchain/langchain/retrievers/cohere_rag_retriever.py @@ -1,5 +1,23 @@ -from langchain_community.retrievers.cohere_rag_retriever import ( - CohereRagRetriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["CohereRagRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import CohereRagRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"CohereRagRetriever": "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__ = [ + "CohereRagRetriever", +] diff --git a/libs/langchain/langchain/retrievers/databerry.py b/libs/langchain/langchain/retrievers/databerry.py index ecb690898ebb1e..3eeca776bfcabc 100644 --- a/libs/langchain/langchain/retrievers/databerry.py +++ b/libs/langchain/langchain/retrievers/databerry.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.databerry import DataberryRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["DataberryRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers.databerry import DataberryRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"DataberryRetriever": "langchain_community.retrievers.databerry"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "DataberryRetriever", +] diff --git a/libs/langchain/langchain/retrievers/docarray.py b/libs/langchain/langchain/retrievers/docarray.py index 1191adf0e3b077..7f433c585974b5 100644 --- a/libs/langchain/langchain/retrievers/docarray.py +++ b/libs/langchain/langchain/retrievers/docarray.py @@ -1,3 +1,28 @@ -from langchain_community.retrievers.docarray import DocArrayRetriever, SearchType +from typing import TYPE_CHECKING, Any -__all__ = ["SearchType", "DocArrayRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import DocArrayRetriever + from langchain_community.retrievers.docarray import SearchType + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "SearchType": "langchain_community.retrievers.docarray", + "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__ = [ + "SearchType", + "DocArrayRetriever", +] diff --git a/libs/langchain/langchain/retrievers/elastic_search_bm25.py b/libs/langchain/langchain/retrievers/elastic_search_bm25.py index 649705438f4b91..52d5ffaea8d247 100644 --- a/libs/langchain/langchain/retrievers/elastic_search_bm25.py +++ b/libs/langchain/langchain/retrievers/elastic_search_bm25.py @@ -1,5 +1,23 @@ -from langchain_community.retrievers.elastic_search_bm25 import ( - ElasticSearchBM25Retriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["ElasticSearchBM25Retriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ElasticSearchBM25Retriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ElasticSearchBM25Retriever": "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__ = [ + "ElasticSearchBM25Retriever", +] diff --git a/libs/langchain/langchain/retrievers/embedchain.py b/libs/langchain/langchain/retrievers/embedchain.py index 92a718e4befa29..5e2958dbbf4dd7 100644 --- a/libs/langchain/langchain/retrievers/embedchain.py +++ b/libs/langchain/langchain/retrievers/embedchain.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.embedchain import EmbedchainRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["EmbedchainRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import EmbedchainRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"EmbedchainRetriever": "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__ = [ + "EmbedchainRetriever", +] diff --git a/libs/langchain/langchain/retrievers/google_cloud_documentai_warehouse.py b/libs/langchain/langchain/retrievers/google_cloud_documentai_warehouse.py index 6dc2079f3aad9b..f310037e092c43 100644 --- a/libs/langchain/langchain/retrievers/google_cloud_documentai_warehouse.py +++ b/libs/langchain/langchain/retrievers/google_cloud_documentai_warehouse.py @@ -1,5 +1,25 @@ -from langchain_community.retrievers.google_cloud_documentai_warehouse import ( - GoogleDocumentAIWarehouseRetriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["GoogleDocumentAIWarehouseRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import GoogleDocumentAIWarehouseRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "GoogleDocumentAIWarehouseRetriever": "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__ = [ + "GoogleDocumentAIWarehouseRetriever", +] diff --git a/libs/langchain/langchain/retrievers/google_vertex_ai_search.py b/libs/langchain/langchain/retrievers/google_vertex_ai_search.py index ffda6696fb1e03..1f8a71de6ca8e4 100644 --- a/libs/langchain/langchain/retrievers/google_vertex_ai_search.py +++ b/libs/langchain/langchain/retrievers/google_vertex_ai_search.py @@ -1,8 +1,30 @@ -from langchain_community.retrievers.google_vertex_ai_search import ( - GoogleCloudEnterpriseSearchRetriever, - GoogleVertexAIMultiTurnSearchRetriever, - GoogleVertexAISearchRetriever, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ( + GoogleCloudEnterpriseSearchRetriever, + GoogleVertexAIMultiTurnSearchRetriever, + GoogleVertexAISearchRetriever, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "GoogleVertexAISearchRetriever": "langchain_community.retrievers", + "GoogleVertexAIMultiTurnSearchRetriever": "langchain_community.retrievers", + "GoogleCloudEnterpriseSearchRetriever": "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__ = [ "GoogleVertexAISearchRetriever", diff --git a/libs/langchain/langchain/retrievers/kay.py b/libs/langchain/langchain/retrievers/kay.py index 70cb97be3d2b98..ddc4532326b426 100644 --- a/libs/langchain/langchain/retrievers/kay.py +++ b/libs/langchain/langchain/retrievers/kay.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.kay import KayAiRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["KayAiRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import KayAiRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"KayAiRetriever": "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__ = [ + "KayAiRetriever", +] diff --git a/libs/langchain/langchain/retrievers/kendra.py b/libs/langchain/langchain/retrievers/kendra.py index 1adc2fd6bbe9b3..824c6569cf4f7f 100644 --- a/libs/langchain/langchain/retrievers/kendra.py +++ b/libs/langchain/langchain/retrievers/kendra.py @@ -1,25 +1,56 @@ -from langchain_community.retrievers.kendra import ( - AdditionalResultAttribute, - AdditionalResultAttributeValue, - AmazonKendraRetriever, - DocumentAttribute, - DocumentAttributeValue, - DocumentAttributeValueType, - Highlight, - QueryResult, - QueryResultItem, - ResultItem, - RetrieveResult, - RetrieveResultItem, - TextWithHighLights, - clean_excerpt, - combined_text, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import AmazonKendraRetriever + from langchain_community.retrievers.kendra import ( + AdditionalResultAttribute, + AdditionalResultAttributeValue, + DocumentAttribute, + DocumentAttributeValue, + Highlight, + QueryResult, + QueryResultItem, + ResultItem, + RetrieveResult, + RetrieveResultItem, + TextWithHighLights, + clean_excerpt, + combined_text, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "clean_excerpt": "langchain_community.retrievers.kendra", + "combined_text": "langchain_community.retrievers.kendra", + "Highlight": "langchain_community.retrievers.kendra", + "TextWithHighLights": "langchain_community.retrievers.kendra", + "AdditionalResultAttributeValue": "langchain_community.retrievers.kendra", + "AdditionalResultAttribute": "langchain_community.retrievers.kendra", + "DocumentAttributeValue": "langchain_community.retrievers.kendra", + "DocumentAttribute": "langchain_community.retrievers.kendra", + "ResultItem": "langchain_community.retrievers.kendra", + "QueryResultItem": "langchain_community.retrievers.kendra", + "RetrieveResultItem": "langchain_community.retrievers.kendra", + "QueryResult": "langchain_community.retrievers.kendra", + "RetrieveResult": "langchain_community.retrievers.kendra", + "AmazonKendraRetriever": "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__ = [ "clean_excerpt", "combined_text", - "DocumentAttributeValueType", "Highlight", "TextWithHighLights", "AdditionalResultAttributeValue", diff --git a/libs/langchain/langchain/retrievers/knn.py b/libs/langchain/langchain/retrievers/knn.py index 7165eb9ca6cc62..6e10d9a70d077b 100644 --- a/libs/langchain/langchain/retrievers/knn.py +++ b/libs/langchain/langchain/retrievers/knn.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.knn import KNNRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["KNNRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import KNNRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"KNNRetriever": "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__ = [ + "KNNRetriever", +] diff --git a/libs/langchain/langchain/retrievers/llama_index.py b/libs/langchain/langchain/retrievers/llama_index.py index 939e81a9014a16..a86b9e0d3df340 100644 --- a/libs/langchain/langchain/retrievers/llama_index.py +++ b/libs/langchain/langchain/retrievers/llama_index.py @@ -1,6 +1,30 @@ -from langchain_community.retrievers.llama_index import ( - LlamaIndexGraphRetriever, - LlamaIndexRetriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["LlamaIndexRetriever", "LlamaIndexGraphRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ( + LlamaIndexGraphRetriever, + LlamaIndexRetriever, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "LlamaIndexRetriever": "langchain_community.retrievers", + "LlamaIndexGraphRetriever": "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__ = [ + "LlamaIndexRetriever", + "LlamaIndexGraphRetriever", +] diff --git a/libs/langchain/langchain/retrievers/metal.py b/libs/langchain/langchain/retrievers/metal.py index a38f89e1772d0b..9d4927de539820 100644 --- a/libs/langchain/langchain/retrievers/metal.py +++ b/libs/langchain/langchain/retrievers/metal.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.metal import MetalRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["MetalRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import MetalRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"MetalRetriever": "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__ = [ + "MetalRetriever", +] diff --git a/libs/langchain/langchain/retrievers/milvus.py b/libs/langchain/langchain/retrievers/milvus.py index 261b7e2a80d6c6..bd9fd8536bb9d0 100644 --- a/libs/langchain/langchain/retrievers/milvus.py +++ b/libs/langchain/langchain/retrievers/milvus.py @@ -1,3 +1,28 @@ -from langchain_community.retrievers.milvus import MilvusRetreiver, MilvusRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["MilvusRetriever", "MilvusRetreiver"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import MilvusRetriever + from langchain_community.retrievers.milvus import MilvusRetreiver + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "MilvusRetriever": "langchain_community.retrievers", + "MilvusRetreiver": "langchain_community.retrievers.milvus", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "MilvusRetriever", + "MilvusRetreiver", +] diff --git a/libs/langchain/langchain/retrievers/outline.py b/libs/langchain/langchain/retrievers/outline.py index efcd9e6ad61861..be0e4451b83524 100644 --- a/libs/langchain/langchain/retrievers/outline.py +++ b/libs/langchain/langchain/retrievers/outline.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.outline import OutlineRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["OutlineRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import OutlineRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"OutlineRetriever": "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__ = [ + "OutlineRetriever", +] diff --git a/libs/langchain/langchain/retrievers/pinecone_hybrid_search.py b/libs/langchain/langchain/retrievers/pinecone_hybrid_search.py index bd1fa64ee4fd67..e27acd052c9817 100644 --- a/libs/langchain/langchain/retrievers/pinecone_hybrid_search.py +++ b/libs/langchain/langchain/retrievers/pinecone_hybrid_search.py @@ -1,5 +1,23 @@ -from langchain_community.retrievers.pinecone_hybrid_search import ( - PineconeHybridSearchRetriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["PineconeHybridSearchRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import PineconeHybridSearchRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"PineconeHybridSearchRetriever": "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__ = [ + "PineconeHybridSearchRetriever", +] diff --git a/libs/langchain/langchain/retrievers/pubmed.py b/libs/langchain/langchain/retrievers/pubmed.py index 7fed1277fa2f2a..ae03d4b1e22f4e 100644 --- a/libs/langchain/langchain/retrievers/pubmed.py +++ b/libs/langchain/langchain/retrievers/pubmed.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.pubmed import PubMedRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["PubMedRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import PubMedRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"PubMedRetriever": "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__ = [ + "PubMedRetriever", +] diff --git a/libs/langchain/langchain/retrievers/pupmed.py b/libs/langchain/langchain/retrievers/pupmed.py index 3104dac6f47796..0d1029f516c2bd 100644 --- a/libs/langchain/langchain/retrievers/pupmed.py +++ b/libs/langchain/langchain/retrievers/pupmed.py @@ -1,5 +1,24 @@ +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer from langchain.retrievers.pubmed import PubMedRetriever +if TYPE_CHECKING: + from langchain_community.retrievers import PubMedRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"PubMedRetriever": "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__ = [ "PubMedRetriever", ] diff --git a/libs/langchain/langchain/retrievers/remote_retriever.py b/libs/langchain/langchain/retrievers/remote_retriever.py index fcb60c9a3ad7dd..d8384e2d432501 100644 --- a/libs/langchain/langchain/retrievers/remote_retriever.py +++ b/libs/langchain/langchain/retrievers/remote_retriever.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.remote_retriever import RemoteLangChainRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["RemoteLangChainRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import RemoteLangChainRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"RemoteLangChainRetriever": "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__ = [ + "RemoteLangChainRetriever", +] diff --git a/libs/langchain/langchain/retrievers/svm.py b/libs/langchain/langchain/retrievers/svm.py index 2e0d8b669ad077..4b50d5d56c4f9d 100644 --- a/libs/langchain/langchain/retrievers/svm.py +++ b/libs/langchain/langchain/retrievers/svm.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.svm import SVMRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["SVMRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import SVMRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"SVMRetriever": "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__ = [ + "SVMRetriever", +] diff --git a/libs/langchain/langchain/retrievers/tavily_search_api.py b/libs/langchain/langchain/retrievers/tavily_search_api.py index 6fc2bca6021390..fba6f611ed2d3c 100644 --- a/libs/langchain/langchain/retrievers/tavily_search_api.py +++ b/libs/langchain/langchain/retrievers/tavily_search_api.py @@ -1,6 +1,28 @@ -from langchain_community.retrievers.tavily_search_api import ( - SearchDepth, - TavilySearchAPIRetriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["SearchDepth", "TavilySearchAPIRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import TavilySearchAPIRetriever + from langchain_community.retrievers.tavily_search_api import SearchDepth + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "SearchDepth": "langchain_community.retrievers.tavily_search_api", + "TavilySearchAPIRetriever": "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__ = [ + "SearchDepth", + "TavilySearchAPIRetriever", +] diff --git a/libs/langchain/langchain/retrievers/tfidf.py b/libs/langchain/langchain/retrievers/tfidf.py index 0cefc03c2b97b2..d7c36a32c9ff3a 100644 --- a/libs/langchain/langchain/retrievers/tfidf.py +++ b/libs/langchain/langchain/retrievers/tfidf.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.tfidf import TFIDFRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["TFIDFRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import TFIDFRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"TFIDFRetriever": "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__ = [ + "TFIDFRetriever", +] diff --git a/libs/langchain/langchain/retrievers/vespa_retriever.py b/libs/langchain/langchain/retrievers/vespa_retriever.py index 889668853b497e..04065ba16e9528 100644 --- a/libs/langchain/langchain/retrievers/vespa_retriever.py +++ b/libs/langchain/langchain/retrievers/vespa_retriever.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.vespa_retriever import VespaRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["VespaRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import VespaRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"VespaRetriever": "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__ = [ + "VespaRetriever", +] diff --git a/libs/langchain/langchain/retrievers/weaviate_hybrid_search.py b/libs/langchain/langchain/retrievers/weaviate_hybrid_search.py index bd15f128e537bf..51e468cd646f7f 100644 --- a/libs/langchain/langchain/retrievers/weaviate_hybrid_search.py +++ b/libs/langchain/langchain/retrievers/weaviate_hybrid_search.py @@ -1,5 +1,23 @@ -from langchain_community.retrievers.weaviate_hybrid_search import ( - WeaviateHybridSearchRetriever, -) +from typing import TYPE_CHECKING, Any -__all__ = ["WeaviateHybridSearchRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import WeaviateHybridSearchRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"WeaviateHybridSearchRetriever": "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__ = [ + "WeaviateHybridSearchRetriever", +] diff --git a/libs/langchain/langchain/retrievers/wikipedia.py b/libs/langchain/langchain/retrievers/wikipedia.py index 8eaffa85b94f30..23ce07338ea78f 100644 --- a/libs/langchain/langchain/retrievers/wikipedia.py +++ b/libs/langchain/langchain/retrievers/wikipedia.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.wikipedia import WikipediaRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["WikipediaRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import WikipediaRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"WikipediaRetriever": "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__ = [ + "WikipediaRetriever", +] diff --git a/libs/langchain/langchain/retrievers/you.py b/libs/langchain/langchain/retrievers/you.py index c285b56263fe94..5267e940c8db2c 100644 --- a/libs/langchain/langchain/retrievers/you.py +++ b/libs/langchain/langchain/retrievers/you.py @@ -1,3 +1,23 @@ -from langchain_community.retrievers.you import YouRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["YouRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import YouRetriever + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"YouRetriever": "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__ = [ + "YouRetriever", +] diff --git a/libs/langchain/langchain/retrievers/zep.py b/libs/langchain/langchain/retrievers/zep.py index 9f09841bd6b7fd..ade5e59e2ef142 100644 --- a/libs/langchain/langchain/retrievers/zep.py +++ b/libs/langchain/langchain/retrievers/zep.py @@ -1,3 +1,30 @@ -from langchain_community.retrievers.zep import SearchScope, SearchType, ZepRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["SearchScope", "SearchType", "ZepRetriever"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ZepRetriever + from langchain_community.retrievers.zep import SearchScope, SearchType + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "SearchScope": "langchain_community.retrievers.zep", + "SearchType": "langchain_community.retrievers.zep", + "ZepRetriever": "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__ = [ + "SearchScope", + "SearchType", + "ZepRetriever", +] diff --git a/libs/langchain/langchain/retrievers/zilliz.py b/libs/langchain/langchain/retrievers/zilliz.py index 8daf25f61c8014..3b07c57c3b9121 100644 --- a/libs/langchain/langchain/retrievers/zilliz.py +++ b/libs/langchain/langchain/retrievers/zilliz.py @@ -1,3 +1,28 @@ -from langchain_community.retrievers.zilliz import ZillizRetreiver, ZillizRetriever +from typing import TYPE_CHECKING, Any -__all__ = ["ZillizRetriever", "ZillizRetreiver"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.retrievers import ZillizRetriever + from langchain_community.retrievers.zilliz import ZillizRetreiver + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "ZillizRetriever": "langchain_community.retrievers", + "ZillizRetreiver": "langchain_community.retrievers.zilliz", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "ZillizRetriever", + "ZillizRetreiver", +] diff --git a/libs/langchain/tests/unit_tests/retrievers/test_imports.py b/libs/langchain/tests/unit_tests/retrievers/test_imports.py index 0125b0f421add8..935f62bfa24cd0 100644 --- a/libs/langchain/tests/unit_tests/retrievers/test_imports.py +++ b/libs/langchain/tests/unit_tests/retrievers/test_imports.py @@ -8,14 +8,18 @@ "ArxivRetriever", "AzureAISearchRetriever", "AzureCognitiveSearchRetriever", - "ChatGPTPluginRetriever", - "ContextualCompressionRetriever", + "BM25Retriever", "ChaindeskRetriever", + "ChatGPTPluginRetriever", "CohereRagRetriever", + "ContextualCompressionRetriever", + "DocArrayRetriever", + "DriaRetriever", "ElasticSearchBM25Retriever", "EmbedchainRetriever", - "GoogleDocumentAIWarehouseRetriever", + "EnsembleRetriever", "GoogleCloudEnterpriseSearchRetriever", + "GoogleDocumentAIWarehouseRetriever", "GoogleVertexAIMultiTurnSearchRetriever", "GoogleVertexAISearchRetriever", "KayAiRetriever", @@ -26,27 +30,25 @@ "MetalRetriever", "MilvusRetriever", "MultiQueryRetriever", + "MultiVectorRetriever", + "NeuralDBRetriever", "OutlineRetriever", + "ParentDocumentRetriever", "PineconeHybridSearchRetriever", "PubMedRetriever", "RemoteLangChainRetriever", - "SVMRetriever", + "RePhraseQueryRetriever", "SelfQueryRetriever", + "SVMRetriever", "TavilySearchAPIRetriever", "TFIDFRetriever", - "BM25Retriever", "TimeWeightedVectorStoreRetriever", "VespaRetriever", "WeaviateHybridSearchRetriever", + "WebResearchRetriever", "WikipediaRetriever", "ZepRetriever", "ZillizRetriever", - "DocArrayRetriever", - "RePhraseQueryRetriever", - "WebResearchRetriever", - "EnsembleRetriever", - "ParentDocumentRetriever", - "MultiVectorRetriever", ]