From 59f10ab3e04f523d79ba034d34b8fa5db498cb63 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Wed, 1 May 2024 13:47:37 -0400 Subject: [PATCH] langchain[patch]: Migrate embeddings to optional imports (#21099) --- .../langchain/embeddings/__init__.py | 260 ++++++++++++------ .../langchain/embeddings/aleph_alpha.py | 29 +- libs/langchain/langchain/embeddings/awa.py | 24 +- .../langchain/embeddings/azure_openai.py | 24 +- .../embeddings/baidu_qianfan_endpoint.py | 26 +- .../langchain/langchain/embeddings/bedrock.py | 24 +- .../langchain/langchain/embeddings/bookend.py | 26 +- .../langchain/embeddings/clarifai.py | 24 +- .../embeddings/cloudflare_workersai.py | 32 ++- libs/langchain/langchain/embeddings/cohere.py | 24 +- .../langchain/embeddings/dashscope.py | 26 +- .../langchain/embeddings/databricks.py | 24 +- .../langchain/embeddings/deepinfra.py | 26 +- libs/langchain/langchain/embeddings/edenai.py | 24 +- .../langchain/embeddings/elasticsearch.py | 24 +- libs/langchain/langchain/embeddings/embaas.py | 22 +- libs/langchain/langchain/embeddings/ernie.py | 24 +- libs/langchain/langchain/embeddings/fake.py | 34 ++- .../langchain/embeddings/fastembed.py | 24 +- .../langchain/embeddings/google_palm.py | 26 +- .../langchain/langchain/embeddings/gpt4all.py | 24 +- .../langchain/embeddings/gradient_ai.py | 24 +- .../langchain/embeddings/huggingface.py | 35 ++- .../langchain/embeddings/huggingface_hub.py | 26 +- .../langchain/embeddings/infinity.py | 34 ++- .../embeddings/javelin_ai_gateway.py | 26 +- libs/langchain/langchain/embeddings/jina.py | 24 +- .../langchain/embeddings/johnsnowlabs.py | 24 +- .../langchain/embeddings/llamacpp.py | 24 +- .../langchain/embeddings/llm_rails.py | 24 +- .../langchain/langchain/embeddings/localai.py | 22 +- .../langchain/langchain/embeddings/minimax.py | 26 +- libs/langchain/langchain/embeddings/mlflow.py | 24 +- .../langchain/embeddings/mlflow_gateway.py | 26 +- .../langchain/embeddings/modelscope_hub.py | 24 +- .../langchain/embeddings/mosaicml.py | 24 +- .../langchain/embeddings/nlpcloud.py | 24 +- .../langchain/embeddings/octoai_embeddings.py | 26 +- libs/langchain/langchain/embeddings/ollama.py | 24 +- libs/langchain/langchain/embeddings/openai.py | 22 +- .../embeddings/sagemaker_endpoint.py | 34 ++- .../langchain/embeddings/self_hosted.py | 26 +- .../embeddings/self_hosted_hugging_face.py | 29 +- .../langchain/embeddings/spacy_embeddings.py | 24 +- .../langchain/embeddings/tensorflow_hub.py | 26 +- .../langchain/embeddings/vertexai.py | 24 +- .../langchain/embeddings/voyageai.py | 22 +- .../langchain/embeddings/xinference.py | 24 +- .../unit_tests/embeddings/test_imports.py | 1 + 49 files changed, 1246 insertions(+), 218 deletions(-) diff --git a/libs/langchain/langchain/embeddings/__init__.py b/libs/langchain/langchain/embeddings/__init__.py index 785308e71c4..8f4545a2285 100644 --- a/libs/langchain/langchain/embeddings/__init__.py +++ b/libs/langchain/langchain/embeddings/__init__.py @@ -12,90 +12,71 @@ from different APIs and services. import logging -import warnings -from typing import Any - -from langchain_core._api import LangChainDeprecationWarning +from typing import TYPE_CHECKING, Any +from langchain._api import create_importer from langchain.embeddings.cache import CacheBackedEmbeddings -from langchain.utils.interactive_env import is_interactive_env - -def __getattr__(name: str) -> Any: - from langchain_community import embeddings - - # If not in interactive env, raise warning. - if not is_interactive_env(): - warnings.warn( - "Importing embeddings from langchain is deprecated. Importing from " - "langchain will no longer be supported as of langchain==0.2.0. " - "Please import from langchain-community instead:\n\n" - f"`from langchain_community.embeddings import {name}`.\n\n" - "To install langchain-community run `pip install -U langchain-community`.", - category=LangChainDeprecationWarning, - ) - - return getattr(embeddings, name) +if TYPE_CHECKING: + from langchain_community.embeddings import ( + AlephAlphaAsymmetricSemanticEmbedding, + AlephAlphaSymmetricSemanticEmbedding, + AwaEmbeddings, + AzureOpenAIEmbeddings, + BedrockEmbeddings, + BookendEmbeddings, + ClarifaiEmbeddings, + CohereEmbeddings, + DashScopeEmbeddings, + DatabricksEmbeddings, + DeepInfraEmbeddings, + DeterministicFakeEmbedding, + EdenAiEmbeddings, + ElasticsearchEmbeddings, + EmbaasEmbeddings, + ErnieEmbeddings, + FakeEmbeddings, + FastEmbedEmbeddings, + GooglePalmEmbeddings, + GPT4AllEmbeddings, + GradientEmbeddings, + HuggingFaceBgeEmbeddings, + HuggingFaceEmbeddings, + HuggingFaceHubEmbeddings, + HuggingFaceInferenceAPIEmbeddings, + HuggingFaceInstructEmbeddings, + InfinityEmbeddings, + JavelinAIGatewayEmbeddings, + JinaEmbeddings, + JohnSnowLabsEmbeddings, + LlamaCppEmbeddings, + LocalAIEmbeddings, + MiniMaxEmbeddings, + MlflowAIGatewayEmbeddings, + MlflowEmbeddings, + ModelScopeEmbeddings, + MosaicMLInstructorEmbeddings, + NLPCloudEmbeddings, + OctoAIEmbeddings, + OllamaEmbeddings, + OpenAIEmbeddings, + OpenVINOEmbeddings, + QianfanEmbeddingsEndpoint, + SagemakerEndpointEmbeddings, + SelfHostedEmbeddings, + SelfHostedHuggingFaceEmbeddings, + SelfHostedHuggingFaceInstructEmbeddings, + SentenceTransformerEmbeddings, + SpacyEmbeddings, + TensorflowHubEmbeddings, + VertexAIEmbeddings, + VoyageEmbeddings, + XinferenceEmbeddings, + ) logger = logging.getLogger(__name__) -__all__ = [ - "OpenAIEmbeddings", - "AzureOpenAIEmbeddings", - "CacheBackedEmbeddings", - "ClarifaiEmbeddings", - "CohereEmbeddings", - "DatabricksEmbeddings", - "ElasticsearchEmbeddings", - "FastEmbedEmbeddings", - "HuggingFaceEmbeddings", - "HuggingFaceInferenceAPIEmbeddings", - "InfinityEmbeddings", - "GradientEmbeddings", - "JinaEmbeddings", - "LlamaCppEmbeddings", - "HuggingFaceHubEmbeddings", - "MlflowEmbeddings", - "MlflowAIGatewayEmbeddings", - "ModelScopeEmbeddings", - "TensorflowHubEmbeddings", - "SagemakerEndpointEmbeddings", - "HuggingFaceInstructEmbeddings", - "MosaicMLInstructorEmbeddings", - "SelfHostedEmbeddings", - "SelfHostedHuggingFaceEmbeddings", - "SelfHostedHuggingFaceInstructEmbeddings", - "FakeEmbeddings", - "DeterministicFakeEmbedding", - "AlephAlphaAsymmetricSemanticEmbedding", - "AlephAlphaSymmetricSemanticEmbedding", - "SentenceTransformerEmbeddings", - "GooglePalmEmbeddings", - "MiniMaxEmbeddings", - "VertexAIEmbeddings", - "BedrockEmbeddings", - "DeepInfraEmbeddings", - "EdenAiEmbeddings", - "DashScopeEmbeddings", - "EmbaasEmbeddings", - "OctoAIEmbeddings", - "SpacyEmbeddings", - "NLPCloudEmbeddings", - "GPT4AllEmbeddings", - "XinferenceEmbeddings", - "LocalAIEmbeddings", - "AwaEmbeddings", - "HuggingFaceBgeEmbeddings", - "ErnieEmbeddings", - "JavelinAIGatewayEmbeddings", - "OllamaEmbeddings", - "QianfanEmbeddingsEndpoint", - "JohnSnowLabsEmbeddings", - "VoyageEmbeddings", - "BookendEmbeddings", -] - # TODO: this is in here to maintain backwards compatibility class HypotheticalDocumentEmbedder: @@ -117,3 +98,128 @@ class HypotheticalDocumentEmbedder: from langchain.chains.hyde.base import HypotheticalDocumentEmbedder as H return H.from_llm(*args, **kwargs) + + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "AlephAlphaAsymmetricSemanticEmbedding": "langchain_community.embeddings", + "AlephAlphaSymmetricSemanticEmbedding": "langchain_community.embeddings", + "AwaEmbeddings": "langchain_community.embeddings", + "AzureOpenAIEmbeddings": "langchain_community.embeddings", + "BedrockEmbeddings": "langchain_community.embeddings", + "BookendEmbeddings": "langchain_community.embeddings", + "ClarifaiEmbeddings": "langchain_community.embeddings", + "CohereEmbeddings": "langchain_community.embeddings", + "DashScopeEmbeddings": "langchain_community.embeddings", + "DatabricksEmbeddings": "langchain_community.embeddings", + "DeepInfraEmbeddings": "langchain_community.embeddings", + "DeterministicFakeEmbedding": "langchain_community.embeddings", + "EdenAiEmbeddings": "langchain_community.embeddings", + "ElasticsearchEmbeddings": "langchain_community.embeddings", + "EmbaasEmbeddings": "langchain_community.embeddings", + "ErnieEmbeddings": "langchain_community.embeddings", + "FakeEmbeddings": "langchain_community.embeddings", + "FastEmbedEmbeddings": "langchain_community.embeddings", + "GooglePalmEmbeddings": "langchain_community.embeddings", + "GPT4AllEmbeddings": "langchain_community.embeddings", + "GradientEmbeddings": "langchain_community.embeddings", + "HuggingFaceBgeEmbeddings": "langchain_community.embeddings", + "HuggingFaceEmbeddings": "langchain_community.embeddings", + "HuggingFaceHubEmbeddings": "langchain_community.embeddings", + "HuggingFaceInferenceAPIEmbeddings": "langchain_community.embeddings", + "HuggingFaceInstructEmbeddings": "langchain_community.embeddings", + "InfinityEmbeddings": "langchain_community.embeddings", + "JavelinAIGatewayEmbeddings": "langchain_community.embeddings", + "JinaEmbeddings": "langchain_community.embeddings", + "JohnSnowLabsEmbeddings": "langchain_community.embeddings", + "LlamaCppEmbeddings": "langchain_community.embeddings", + "LocalAIEmbeddings": "langchain_community.embeddings", + "MiniMaxEmbeddings": "langchain_community.embeddings", + "MlflowAIGatewayEmbeddings": "langchain_community.embeddings", + "MlflowEmbeddings": "langchain_community.embeddings", + "ModelScopeEmbeddings": "langchain_community.embeddings", + "MosaicMLInstructorEmbeddings": "langchain_community.embeddings", + "NLPCloudEmbeddings": "langchain_community.embeddings", + "OctoAIEmbeddings": "langchain_community.embeddings", + "OllamaEmbeddings": "langchain_community.embeddings", + "OpenAIEmbeddings": "langchain_community.embeddings", + "OpenVINOEmbeddings": "langchain_community.embeddings", + "QianfanEmbeddingsEndpoint": "langchain_community.embeddings", + "SagemakerEndpointEmbeddings": "langchain_community.embeddings", + "SelfHostedEmbeddings": "langchain_community.embeddings", + "SelfHostedHuggingFaceEmbeddings": "langchain_community.embeddings", + "SelfHostedHuggingFaceInstructEmbeddings": "langchain_community.embeddings", + "SentenceTransformerEmbeddings": "langchain_community.embeddings", + "SpacyEmbeddings": "langchain_community.embeddings", + "TensorflowHubEmbeddings": "langchain_community.embeddings", + "VertexAIEmbeddings": "langchain_community.embeddings", + "VoyageEmbeddings": "langchain_community.embeddings", + "XinferenceEmbeddings": "langchain_community.embeddings", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "AlephAlphaAsymmetricSemanticEmbedding", + "AlephAlphaSymmetricSemanticEmbedding", + "AwaEmbeddings", + "AzureOpenAIEmbeddings", + "BedrockEmbeddings", + "BookendEmbeddings", + "CacheBackedEmbeddings", + "ClarifaiEmbeddings", + "CohereEmbeddings", + "DashScopeEmbeddings", + "DatabricksEmbeddings", + "DeepInfraEmbeddings", + "DeterministicFakeEmbedding", + "EdenAiEmbeddings", + "ElasticsearchEmbeddings", + "EmbaasEmbeddings", + "ErnieEmbeddings", + "FakeEmbeddings", + "FastEmbedEmbeddings", + "GooglePalmEmbeddings", + "GPT4AllEmbeddings", + "GradientEmbeddings", + "HuggingFaceBgeEmbeddings", + "HuggingFaceEmbeddings", + "HuggingFaceHubEmbeddings", + "HuggingFaceInferenceAPIEmbeddings", + "HuggingFaceInstructEmbeddings", + "InfinityEmbeddings", + "JavelinAIGatewayEmbeddings", + "JinaEmbeddings", + "JohnSnowLabsEmbeddings", + "LlamaCppEmbeddings", + "LocalAIEmbeddings", + "MiniMaxEmbeddings", + "MlflowAIGatewayEmbeddings", + "MlflowEmbeddings", + "ModelScopeEmbeddings", + "MosaicMLInstructorEmbeddings", + "NLPCloudEmbeddings", + "OctoAIEmbeddings", + "OllamaEmbeddings", + "OpenAIEmbeddings", + "OpenVINOEmbeddings", + "QianfanEmbeddingsEndpoint", + "SagemakerEndpointEmbeddings", + "SelfHostedEmbeddings", + "SelfHostedHuggingFaceEmbeddings", + "SelfHostedHuggingFaceInstructEmbeddings", + "SentenceTransformerEmbeddings", + "SpacyEmbeddings", + "TensorflowHubEmbeddings", + "VertexAIEmbeddings", + "VoyageEmbeddings", + "XinferenceEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/aleph_alpha.py b/libs/langchain/langchain/embeddings/aleph_alpha.py index c35f73758ad..45027c6b163 100644 --- a/libs/langchain/langchain/embeddings/aleph_alpha.py +++ b/libs/langchain/langchain/embeddings/aleph_alpha.py @@ -1,7 +1,28 @@ -from langchain_community.embeddings.aleph_alpha import ( - AlephAlphaAsymmetricSemanticEmbedding, - AlephAlphaSymmetricSemanticEmbedding, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import ( + AlephAlphaAsymmetricSemanticEmbedding, + AlephAlphaSymmetricSemanticEmbedding, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "AlephAlphaAsymmetricSemanticEmbedding": "langchain_community.embeddings", + "AlephAlphaSymmetricSemanticEmbedding": "langchain_community.embeddings", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "AlephAlphaAsymmetricSemanticEmbedding", diff --git a/libs/langchain/langchain/embeddings/awa.py b/libs/langchain/langchain/embeddings/awa.py index 1fd41303f57..bf0c6048fe5 100644 --- a/libs/langchain/langchain/embeddings/awa.py +++ b/libs/langchain/langchain/embeddings/awa.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.awa import AwaEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["AwaEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import AwaEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"AwaEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "AwaEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/azure_openai.py b/libs/langchain/langchain/embeddings/azure_openai.py index 73c83d647f6..d915224fd33 100644 --- a/libs/langchain/langchain/embeddings/azure_openai.py +++ b/libs/langchain/langchain/embeddings/azure_openai.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.azure_openai import AzureOpenAIEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["AzureOpenAIEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import AzureOpenAIEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"AzureOpenAIEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "AzureOpenAIEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/baidu_qianfan_endpoint.py b/libs/langchain/langchain/embeddings/baidu_qianfan_endpoint.py index 66ff2c4bb7b..b361978de1c 100644 --- a/libs/langchain/langchain/embeddings/baidu_qianfan_endpoint.py +++ b/libs/langchain/langchain/embeddings/baidu_qianfan_endpoint.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.baidu_qianfan_endpoint import ( - QianfanEmbeddingsEndpoint, -) +from typing import TYPE_CHECKING, Any -__all__ = ["QianfanEmbeddingsEndpoint"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import QianfanEmbeddingsEndpoint + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"QianfanEmbeddingsEndpoint": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "QianfanEmbeddingsEndpoint", +] diff --git a/libs/langchain/langchain/embeddings/bedrock.py b/libs/langchain/langchain/embeddings/bedrock.py index da8de8ee897..ecb6fbb5070 100644 --- a/libs/langchain/langchain/embeddings/bedrock.py +++ b/libs/langchain/langchain/embeddings/bedrock.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.bedrock import BedrockEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["BedrockEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import BedrockEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"BedrockEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "BedrockEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/bookend.py b/libs/langchain/langchain/embeddings/bookend.py index 41beb55addf..4854b6f586f 100644 --- a/libs/langchain/langchain/embeddings/bookend.py +++ b/libs/langchain/langchain/embeddings/bookend.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.bookend import ( - BookendEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["BookendEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import BookendEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"BookendEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "BookendEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/clarifai.py b/libs/langchain/langchain/embeddings/clarifai.py index 8d5094cb16f..b0ec39cc1ff 100644 --- a/libs/langchain/langchain/embeddings/clarifai.py +++ b/libs/langchain/langchain/embeddings/clarifai.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.clarifai import ClarifaiEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["ClarifaiEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import ClarifaiEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ClarifaiEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "ClarifaiEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/cloudflare_workersai.py b/libs/langchain/langchain/embeddings/cloudflare_workersai.py index bbc80aae851..548b53f5107 100644 --- a/libs/langchain/langchain/embeddings/cloudflare_workersai.py +++ b/libs/langchain/langchain/embeddings/cloudflare_workersai.py @@ -1,5 +1,29 @@ -from langchain_community.embeddings.cloudflare_workersai import ( - CloudflareWorkersAIEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["CloudflareWorkersAIEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings.cloudflare_workersai import ( + CloudflareWorkersAIEmbeddings, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "CloudflareWorkersAIEmbeddings": ( + "langchain_community.embeddings.cloudflare_workersai" + ), +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "CloudflareWorkersAIEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/cohere.py b/libs/langchain/langchain/embeddings/cohere.py index 013654f2f21..8fe49f10a27 100644 --- a/libs/langchain/langchain/embeddings/cohere.py +++ b/libs/langchain/langchain/embeddings/cohere.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.cohere import CohereEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["CohereEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import CohereEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"CohereEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "CohereEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/dashscope.py b/libs/langchain/langchain/embeddings/dashscope.py index e09b0bd4794..62c9531ab92 100644 --- a/libs/langchain/langchain/embeddings/dashscope.py +++ b/libs/langchain/langchain/embeddings/dashscope.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.dashscope import ( - DashScopeEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["DashScopeEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import DashScopeEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"DashScopeEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "DashScopeEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/databricks.py b/libs/langchain/langchain/embeddings/databricks.py index 6fcd17fcac0..8ea6ec6e792 100644 --- a/libs/langchain/langchain/embeddings/databricks.py +++ b/libs/langchain/langchain/embeddings/databricks.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.databricks import DatabricksEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["DatabricksEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import DatabricksEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"DatabricksEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "DatabricksEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/deepinfra.py b/libs/langchain/langchain/embeddings/deepinfra.py index 6ade9969bfc..b8abdad3708 100644 --- a/libs/langchain/langchain/embeddings/deepinfra.py +++ b/libs/langchain/langchain/embeddings/deepinfra.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.deepinfra import ( - DeepInfraEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["DeepInfraEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import DeepInfraEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"DeepInfraEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "DeepInfraEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/edenai.py b/libs/langchain/langchain/embeddings/edenai.py index 5c611e17ca0..dc81d02ce4c 100644 --- a/libs/langchain/langchain/embeddings/edenai.py +++ b/libs/langchain/langchain/embeddings/edenai.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.edenai import EdenAiEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["EdenAiEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import EdenAiEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"EdenAiEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "EdenAiEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/elasticsearch.py b/libs/langchain/langchain/embeddings/elasticsearch.py index f273d6b6fdd..5d04f7ef413 100644 --- a/libs/langchain/langchain/embeddings/elasticsearch.py +++ b/libs/langchain/langchain/embeddings/elasticsearch.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.elasticsearch import ElasticsearchEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["ElasticsearchEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import ElasticsearchEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ElasticsearchEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "ElasticsearchEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/embaas.py b/libs/langchain/langchain/embeddings/embaas.py index 192c6684294..5b4f9c4b880 100644 --- a/libs/langchain/langchain/embeddings/embaas.py +++ b/libs/langchain/langchain/embeddings/embaas.py @@ -1,6 +1,22 @@ -from langchain_community.embeddings.embaas import ( - EmbaasEmbeddings, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import EmbaasEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"EmbaasEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "EmbaasEmbeddings", diff --git a/libs/langchain/langchain/embeddings/ernie.py b/libs/langchain/langchain/embeddings/ernie.py index 3959bceaca3..cfd00a638ac 100644 --- a/libs/langchain/langchain/embeddings/ernie.py +++ b/libs/langchain/langchain/embeddings/ernie.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.ernie import ErnieEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["ErnieEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import ErnieEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ErnieEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "ErnieEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/fake.py b/libs/langchain/langchain/embeddings/fake.py index 73b61098e85..8b17af0cb9f 100644 --- a/libs/langchain/langchain/embeddings/fake.py +++ b/libs/langchain/langchain/embeddings/fake.py @@ -1,6 +1,30 @@ -from langchain_community.embeddings.fake import ( - DeterministicFakeEmbedding, - FakeEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["FakeEmbeddings", "DeterministicFakeEmbedding"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import ( + DeterministicFakeEmbedding, + FakeEmbeddings, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "FakeEmbeddings": "langchain_community.embeddings", + "DeterministicFakeEmbedding": "langchain_community.embeddings", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "FakeEmbeddings", + "DeterministicFakeEmbedding", +] diff --git a/libs/langchain/langchain/embeddings/fastembed.py b/libs/langchain/langchain/embeddings/fastembed.py index 3f062def8a4..7e5ea496a10 100644 --- a/libs/langchain/langchain/embeddings/fastembed.py +++ b/libs/langchain/langchain/embeddings/fastembed.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.fastembed import FastEmbedEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["FastEmbedEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import FastEmbedEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"FastEmbedEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "FastEmbedEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/google_palm.py b/libs/langchain/langchain/embeddings/google_palm.py index e6a680758e3..73107ca18d3 100644 --- a/libs/langchain/langchain/embeddings/google_palm.py +++ b/libs/langchain/langchain/embeddings/google_palm.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.google_palm import ( - GooglePalmEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["GooglePalmEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import GooglePalmEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"GooglePalmEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "GooglePalmEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/gpt4all.py b/libs/langchain/langchain/embeddings/gpt4all.py index f8ea03905c3..0cfa0aa0e9e 100644 --- a/libs/langchain/langchain/embeddings/gpt4all.py +++ b/libs/langchain/langchain/embeddings/gpt4all.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.gpt4all import GPT4AllEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["GPT4AllEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import GPT4AllEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"GPT4AllEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "GPT4AllEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/gradient_ai.py b/libs/langchain/langchain/embeddings/gradient_ai.py index b3866edeb15..3677f732805 100644 --- a/libs/langchain/langchain/embeddings/gradient_ai.py +++ b/libs/langchain/langchain/embeddings/gradient_ai.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.gradient_ai import GradientEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["GradientEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import GradientEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"GradientEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "GradientEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/huggingface.py b/libs/langchain/langchain/embeddings/huggingface.py index 2aaa442f771..5627bbedbb6 100644 --- a/libs/langchain/langchain/embeddings/huggingface.py +++ b/libs/langchain/langchain/embeddings/huggingface.py @@ -1,9 +1,32 @@ -from langchain_community.embeddings.huggingface import ( - HuggingFaceBgeEmbeddings, - HuggingFaceEmbeddings, - HuggingFaceInferenceAPIEmbeddings, - HuggingFaceInstructEmbeddings, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import ( + HuggingFaceBgeEmbeddings, + HuggingFaceEmbeddings, + HuggingFaceInferenceAPIEmbeddings, + HuggingFaceInstructEmbeddings, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "HuggingFaceEmbeddings": "langchain_community.embeddings", + "HuggingFaceInstructEmbeddings": "langchain_community.embeddings", + "HuggingFaceBgeEmbeddings": "langchain_community.embeddings", + "HuggingFaceInferenceAPIEmbeddings": "langchain_community.embeddings", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "HuggingFaceEmbeddings", diff --git a/libs/langchain/langchain/embeddings/huggingface_hub.py b/libs/langchain/langchain/embeddings/huggingface_hub.py index 0caac659aaa..1f147b786f9 100644 --- a/libs/langchain/langchain/embeddings/huggingface_hub.py +++ b/libs/langchain/langchain/embeddings/huggingface_hub.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.huggingface_hub import ( - HuggingFaceHubEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["HuggingFaceHubEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import HuggingFaceHubEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"HuggingFaceHubEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "HuggingFaceHubEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/infinity.py b/libs/langchain/langchain/embeddings/infinity.py index 4773b203502..9225b088514 100644 --- a/libs/langchain/langchain/embeddings/infinity.py +++ b/libs/langchain/langchain/embeddings/infinity.py @@ -1,6 +1,30 @@ -from langchain_community.embeddings.infinity import ( - InfinityEmbeddings, - TinyAsyncOpenAIInfinityEmbeddingClient, -) +from typing import TYPE_CHECKING, Any -__all__ = ["InfinityEmbeddings", "TinyAsyncOpenAIInfinityEmbeddingClient"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import InfinityEmbeddings + from langchain_community.embeddings.infinity import ( + TinyAsyncOpenAIInfinityEmbeddingClient, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "InfinityEmbeddings": "langchain_community.embeddings", + "TinyAsyncOpenAIInfinityEmbeddingClient": "langchain_community.embeddings.infinity", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "InfinityEmbeddings", + "TinyAsyncOpenAIInfinityEmbeddingClient", +] diff --git a/libs/langchain/langchain/embeddings/javelin_ai_gateway.py b/libs/langchain/langchain/embeddings/javelin_ai_gateway.py index cdd2c3a2f7c..1e9953d6ac5 100644 --- a/libs/langchain/langchain/embeddings/javelin_ai_gateway.py +++ b/libs/langchain/langchain/embeddings/javelin_ai_gateway.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.javelin_ai_gateway import ( - JavelinAIGatewayEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["JavelinAIGatewayEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import JavelinAIGatewayEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"JavelinAIGatewayEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "JavelinAIGatewayEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/jina.py b/libs/langchain/langchain/embeddings/jina.py index 6f330cbfebf..ba8234593c5 100644 --- a/libs/langchain/langchain/embeddings/jina.py +++ b/libs/langchain/langchain/embeddings/jina.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.jina import JinaEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["JinaEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import JinaEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"JinaEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "JinaEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/johnsnowlabs.py b/libs/langchain/langchain/embeddings/johnsnowlabs.py index 6e851eada8a..56378f5aeff 100644 --- a/libs/langchain/langchain/embeddings/johnsnowlabs.py +++ b/libs/langchain/langchain/embeddings/johnsnowlabs.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.johnsnowlabs import JohnSnowLabsEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["JohnSnowLabsEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import JohnSnowLabsEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"JohnSnowLabsEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "JohnSnowLabsEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/llamacpp.py b/libs/langchain/langchain/embeddings/llamacpp.py index 260b0c7d16f..00cc9089432 100644 --- a/libs/langchain/langchain/embeddings/llamacpp.py +++ b/libs/langchain/langchain/embeddings/llamacpp.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.llamacpp import LlamaCppEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["LlamaCppEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import LlamaCppEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"LlamaCppEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "LlamaCppEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/llm_rails.py b/libs/langchain/langchain/embeddings/llm_rails.py index df00b2085df..1baf1dcdb71 100644 --- a/libs/langchain/langchain/embeddings/llm_rails.py +++ b/libs/langchain/langchain/embeddings/llm_rails.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.llm_rails import LLMRailsEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["LLMRailsEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import LLMRailsEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"LLMRailsEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "LLMRailsEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/localai.py b/libs/langchain/langchain/embeddings/localai.py index e1a8d812acd..76468cadd97 100644 --- a/libs/langchain/langchain/embeddings/localai.py +++ b/libs/langchain/langchain/embeddings/localai.py @@ -1,6 +1,22 @@ -from langchain_community.embeddings.localai import ( - LocalAIEmbeddings, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import LocalAIEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"LocalAIEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "LocalAIEmbeddings", diff --git a/libs/langchain/langchain/embeddings/minimax.py b/libs/langchain/langchain/embeddings/minimax.py index fcbd5949f3d..53790ed541b 100644 --- a/libs/langchain/langchain/embeddings/minimax.py +++ b/libs/langchain/langchain/embeddings/minimax.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.minimax import ( - MiniMaxEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["MiniMaxEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import MiniMaxEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"MiniMaxEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "MiniMaxEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/mlflow.py b/libs/langchain/langchain/embeddings/mlflow.py index 7f1f4b6a14d..ed2c3e4fded 100644 --- a/libs/langchain/langchain/embeddings/mlflow.py +++ b/libs/langchain/langchain/embeddings/mlflow.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.mlflow import MlflowEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["MlflowEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import MlflowEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"MlflowEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "MlflowEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/mlflow_gateway.py b/libs/langchain/langchain/embeddings/mlflow_gateway.py index cd1665408f7..fc964a9975b 100644 --- a/libs/langchain/langchain/embeddings/mlflow_gateway.py +++ b/libs/langchain/langchain/embeddings/mlflow_gateway.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.mlflow_gateway import ( - MlflowAIGatewayEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["MlflowAIGatewayEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import MlflowAIGatewayEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"MlflowAIGatewayEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "MlflowAIGatewayEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/modelscope_hub.py b/libs/langchain/langchain/embeddings/modelscope_hub.py index 915dfca4fe7..dbc958c2b25 100644 --- a/libs/langchain/langchain/embeddings/modelscope_hub.py +++ b/libs/langchain/langchain/embeddings/modelscope_hub.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.modelscope_hub import ModelScopeEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["ModelScopeEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import ModelScopeEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"ModelScopeEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "ModelScopeEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/mosaicml.py b/libs/langchain/langchain/embeddings/mosaicml.py index d026696f162..14fac75f346 100644 --- a/libs/langchain/langchain/embeddings/mosaicml.py +++ b/libs/langchain/langchain/embeddings/mosaicml.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.mosaicml import MosaicMLInstructorEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["MosaicMLInstructorEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import MosaicMLInstructorEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"MosaicMLInstructorEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "MosaicMLInstructorEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/nlpcloud.py b/libs/langchain/langchain/embeddings/nlpcloud.py index 18528e99d90..3111dd069d1 100644 --- a/libs/langchain/langchain/embeddings/nlpcloud.py +++ b/libs/langchain/langchain/embeddings/nlpcloud.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.nlpcloud import NLPCloudEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["NLPCloudEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import NLPCloudEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"NLPCloudEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "NLPCloudEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/octoai_embeddings.py b/libs/langchain/langchain/embeddings/octoai_embeddings.py index deb330b0957..0ef4b9b58d6 100644 --- a/libs/langchain/langchain/embeddings/octoai_embeddings.py +++ b/libs/langchain/langchain/embeddings/octoai_embeddings.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.octoai_embeddings import ( - OctoAIEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["OctoAIEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import OctoAIEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"OctoAIEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "OctoAIEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/ollama.py b/libs/langchain/langchain/embeddings/ollama.py index 9d624f14ec2..2cab88e9847 100644 --- a/libs/langchain/langchain/embeddings/ollama.py +++ b/libs/langchain/langchain/embeddings/ollama.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.ollama import OllamaEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["OllamaEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import OllamaEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"OllamaEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "OllamaEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/openai.py b/libs/langchain/langchain/embeddings/openai.py index ab80e12ccc1..5fb9d58f1af 100644 --- a/libs/langchain/langchain/embeddings/openai.py +++ b/libs/langchain/langchain/embeddings/openai.py @@ -1,6 +1,22 @@ -from langchain_community.embeddings.openai import ( - OpenAIEmbeddings, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import OpenAIEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"OpenAIEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "OpenAIEmbeddings", diff --git a/libs/langchain/langchain/embeddings/sagemaker_endpoint.py b/libs/langchain/langchain/embeddings/sagemaker_endpoint.py index 5bc7f8ed685..546c31d5f97 100644 --- a/libs/langchain/langchain/embeddings/sagemaker_endpoint.py +++ b/libs/langchain/langchain/embeddings/sagemaker_endpoint.py @@ -1,6 +1,30 @@ -from langchain_community.embeddings.sagemaker_endpoint import ( - EmbeddingsContentHandler, - SagemakerEndpointEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["EmbeddingsContentHandler", "SagemakerEndpointEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import SagemakerEndpointEmbeddings + from langchain_community.embeddings.sagemaker_endpoint import ( + EmbeddingsContentHandler, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "EmbeddingsContentHandler": "langchain_community.embeddings.sagemaker_endpoint", + "SagemakerEndpointEmbeddings": "langchain_community.embeddings", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "EmbeddingsContentHandler", + "SagemakerEndpointEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/self_hosted.py b/libs/langchain/langchain/embeddings/self_hosted.py index 4ffcb2cf954..c34e0c3e438 100644 --- a/libs/langchain/langchain/embeddings/self_hosted.py +++ b/libs/langchain/langchain/embeddings/self_hosted.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.self_hosted import ( - SelfHostedEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["SelfHostedEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import SelfHostedEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"SelfHostedEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "SelfHostedEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/self_hosted_hugging_face.py b/libs/langchain/langchain/embeddings/self_hosted_hugging_face.py index e70b1cfcc29..f78e916c164 100644 --- a/libs/langchain/langchain/embeddings/self_hosted_hugging_face.py +++ b/libs/langchain/langchain/embeddings/self_hosted_hugging_face.py @@ -1,7 +1,28 @@ -from langchain_community.embeddings.self_hosted_hugging_face import ( - SelfHostedHuggingFaceEmbeddings, - SelfHostedHuggingFaceInstructEmbeddings, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import ( + SelfHostedHuggingFaceEmbeddings, + SelfHostedHuggingFaceInstructEmbeddings, + ) + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = { + "SelfHostedHuggingFaceEmbeddings": "langchain_community.embeddings", + "SelfHostedHuggingFaceInstructEmbeddings": "langchain_community.embeddings", +} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "SelfHostedHuggingFaceEmbeddings", diff --git a/libs/langchain/langchain/embeddings/spacy_embeddings.py b/libs/langchain/langchain/embeddings/spacy_embeddings.py index e6b69611a48..188ac85ad7b 100644 --- a/libs/langchain/langchain/embeddings/spacy_embeddings.py +++ b/libs/langchain/langchain/embeddings/spacy_embeddings.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.spacy_embeddings import SpacyEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["SpacyEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import SpacyEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"SpacyEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "SpacyEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/tensorflow_hub.py b/libs/langchain/langchain/embeddings/tensorflow_hub.py index 2969b84edd0..327563d8ff1 100644 --- a/libs/langchain/langchain/embeddings/tensorflow_hub.py +++ b/libs/langchain/langchain/embeddings/tensorflow_hub.py @@ -1,5 +1,23 @@ -from langchain_community.embeddings.tensorflow_hub import ( - TensorflowHubEmbeddings, -) +from typing import TYPE_CHECKING, Any -__all__ = ["TensorflowHubEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import TensorflowHubEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"TensorflowHubEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "TensorflowHubEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/vertexai.py b/libs/langchain/langchain/embeddings/vertexai.py index 024546de4fc..e09947754a4 100644 --- a/libs/langchain/langchain/embeddings/vertexai.py +++ b/libs/langchain/langchain/embeddings/vertexai.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.vertexai import VertexAIEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["VertexAIEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import VertexAIEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"VertexAIEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "VertexAIEmbeddings", +] diff --git a/libs/langchain/langchain/embeddings/voyageai.py b/libs/langchain/langchain/embeddings/voyageai.py index 584c1575242..0f36e609d17 100644 --- a/libs/langchain/langchain/embeddings/voyageai.py +++ b/libs/langchain/langchain/embeddings/voyageai.py @@ -1,6 +1,22 @@ -from langchain_community.embeddings.voyageai import ( - VoyageEmbeddings, -) +from typing import TYPE_CHECKING, Any + +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import VoyageEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"VoyageEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + __all__ = [ "VoyageEmbeddings", diff --git a/libs/langchain/langchain/embeddings/xinference.py b/libs/langchain/langchain/embeddings/xinference.py index 0dabc5c1346..7aa08c20bb8 100644 --- a/libs/langchain/langchain/embeddings/xinference.py +++ b/libs/langchain/langchain/embeddings/xinference.py @@ -1,3 +1,23 @@ -from langchain_community.embeddings.xinference import XinferenceEmbeddings +from typing import TYPE_CHECKING, Any -__all__ = ["XinferenceEmbeddings"] +from langchain._api import create_importer + +if TYPE_CHECKING: + from langchain_community.embeddings import XinferenceEmbeddings + +# Create a way to dynamically look up deprecated imports. +# Used to consolidate logic for raising deprecation warnings and +# handling optional imports. +DEPRECATED_LOOKUP = {"XinferenceEmbeddings": "langchain_community.embeddings"} + +_import_attribute = create_importer(__package__, deprecated_lookups=DEPRECATED_LOOKUP) + + +def __getattr__(name: str) -> Any: + """Look up attributes dynamically.""" + return _import_attribute(name) + + +__all__ = [ + "XinferenceEmbeddings", +] diff --git a/libs/langchain/tests/unit_tests/embeddings/test_imports.py b/libs/langchain/tests/unit_tests/embeddings/test_imports.py index 1ec9887b655..0a5c67c704b 100644 --- a/libs/langchain/tests/unit_tests/embeddings/test_imports.py +++ b/libs/langchain/tests/unit_tests/embeddings/test_imports.py @@ -44,6 +44,7 @@ EXPECTED_ALL = [ "SpacyEmbeddings", "NLPCloudEmbeddings", "GPT4AllEmbeddings", + "OpenVINOEmbeddings", "XinferenceEmbeddings", "LocalAIEmbeddings", "AwaEmbeddings",