codekingpro/portable-devtools
114k
1"""**Embedding models** are wrappers around embedding models2from different APIs and services.3 4**Embedding models** can be LLMs or not.5 6**Class hierarchy:**7 8.. code-block::9 10 Embeddings --> <name>Embeddings # Examples: OpenAIEmbeddings, HuggingFaceEmbeddings11"""12 13import importlib14import logging15from typing import TYPE_CHECKING, Any16 17if TYPE_CHECKING:18 from langchain_community.embeddings.aleph_alpha import (19 AlephAlphaAsymmetricSemanticEmbedding,20 AlephAlphaSymmetricSemanticEmbedding,21 )22 from langchain_community.embeddings.anyscale import (23 AnyscaleEmbeddings,24 )25 from langchain_community.embeddings.ascend import (26 AscendEmbeddings,27 )28 from langchain_community.embeddings.awa import (29 AwaEmbeddings,30 )31 from langchain_community.embeddings.azure_openai import (32 AzureOpenAIEmbeddings,33 )34 from langchain_community.embeddings.baichuan import (35 BaichuanTextEmbeddings,36 )37 from langchain_community.embeddings.baidu_qianfan_endpoint import (38 QianfanEmbeddingsEndpoint,39 )40 from langchain_community.embeddings.bedrock import (41 BedrockEmbeddings,42 )43 from langchain_community.embeddings.bookend import (44 BookendEmbeddings,45 )46 from langchain_community.embeddings.clarifai import (47 ClarifaiEmbeddings,48 )49 from langchain_community.embeddings.clova import (50 ClovaEmbeddings,51 )52 from langchain_community.embeddings.cohere import (53 CohereEmbeddings,54 )55 from langchain_community.embeddings.dashscope import (56 DashScopeEmbeddings,57 )58 from langchain_community.embeddings.databricks import (59 DatabricksEmbeddings,60 )61 from langchain_community.embeddings.deepinfra import (62 DeepInfraEmbeddings,63 )64 from langchain_community.embeddings.edenai import (65 EdenAiEmbeddings,66 )67 from langchain_community.embeddings.elasticsearch import (68 ElasticsearchEmbeddings,69 )70 from langchain_community.embeddings.embaas import (71 EmbaasEmbeddings,72 )73 from langchain_community.embeddings.ernie import (74 ErnieEmbeddings,75 )76 from langchain_community.embeddings.fake import (77 DeterministicFakeEmbedding,78 FakeEmbeddings,79 )80 from langchain_community.embeddings.fastembed import (81 FastEmbedEmbeddings,82 )83 from langchain_community.embeddings.gigachat import (84 GigaChatEmbeddings,85 )86 from langchain_community.embeddings.google_palm import (87 GooglePalmEmbeddings,88 )89 from langchain_community.embeddings.gpt4all import (90 GPT4AllEmbeddings,91 )92 from langchain_community.embeddings.gradient_ai import (93 GradientEmbeddings,94 )95 from langchain_community.embeddings.huggingface import (96 HuggingFaceBgeEmbeddings,97 HuggingFaceEmbeddings,98 HuggingFaceInferenceAPIEmbeddings,99 HuggingFaceInstructEmbeddings,100 )101 from langchain_community.embeddings.huggingface_hub import (102 HuggingFaceHubEmbeddings,103 )104 from langchain_community.embeddings.hunyuan import (105 HunyuanEmbeddings,106 )107 from langchain_community.embeddings.infinity import (108 InfinityEmbeddings,109 )110 from langchain_community.embeddings.infinity_local import (111 InfinityEmbeddingsLocal,112 )113 from langchain_community.embeddings.ipex_llm import IpexLLMBgeEmbeddings114 from langchain_community.embeddings.itrex import (115 QuantizedBgeEmbeddings,116 )117 from langchain_community.embeddings.javelin_ai_gateway import (118 JavelinAIGatewayEmbeddings,119 )120 from langchain_community.embeddings.jina import (121 JinaEmbeddings,122 )123 from langchain_community.embeddings.johnsnowlabs import (124 JohnSnowLabsEmbeddings,125 )126 from langchain_community.embeddings.laser import (127 LaserEmbeddings,128 )129 from langchain_community.embeddings.llamacpp import (130 LlamaCppEmbeddings,131 )132 from langchain_community.embeddings.llamafile import (133 LlamafileEmbeddings,134 )135 from langchain_community.embeddings.llm_rails import (136 LLMRailsEmbeddings,137 )138 from langchain_community.embeddings.localai import (139 LocalAIEmbeddings,140 )141 from langchain_community.embeddings.minimax import (142 MiniMaxEmbeddings,143 )144 from langchain_community.embeddings.mlflow import (145 MlflowCohereEmbeddings,146 MlflowEmbeddings,147 )148 from langchain_community.embeddings.mlflow_gateway import (149 MlflowAIGatewayEmbeddings,150 )151 from langchain_community.embeddings.model2vec import (152 Model2vecEmbeddings,153 )154 from langchain_community.embeddings.modelscope_hub import (155 ModelScopeEmbeddings,156 )157 from langchain_community.embeddings.mosaicml import (158 MosaicMLInstructorEmbeddings,159 )160 from langchain_community.embeddings.naver import (161 ClovaXEmbeddings,162 )163 from langchain_community.embeddings.nemo import (164 NeMoEmbeddings,165 )166 from langchain_community.embeddings.nlpcloud import (167 NLPCloudEmbeddings,168 )169 from langchain_community.embeddings.oci_generative_ai import (170 OCIGenAIEmbeddings,171 )172 from langchain_community.embeddings.octoai_embeddings import (173 OctoAIEmbeddings,174 )175 from langchain_community.embeddings.ollama import (176 OllamaEmbeddings,177 )178 from langchain_community.embeddings.openai import (179 OpenAIEmbeddings,180 )181 from langchain_community.embeddings.openvino import (182 OpenVINOBgeEmbeddings,183 OpenVINOEmbeddings,184 )185 from langchain_community.embeddings.optimum_intel import (186 QuantizedBiEncoderEmbeddings,187 )188 from langchain_community.embeddings.oracleai import (189 OracleEmbeddings,190 )191 from langchain_community.embeddings.ovhcloud import (192 OVHCloudEmbeddings,193 )194 from langchain_community.embeddings.premai import (195 PremAIEmbeddings,196 )197 from langchain_community.embeddings.sagemaker_endpoint import (198 SagemakerEndpointEmbeddings,199 )200 from langchain_community.embeddings.sambanova import (201 SambaStudioEmbeddings,202 )203 from langchain_community.embeddings.self_hosted import (204 SelfHostedEmbeddings,205 )206 from langchain_community.embeddings.self_hosted_hugging_face import (207 SelfHostedHuggingFaceEmbeddings,208 SelfHostedHuggingFaceInstructEmbeddings,209 )210 from langchain_community.embeddings.sentence_transformer import (211 SentenceTransformerEmbeddings,212 )213 from langchain_community.embeddings.solar import (214 SolarEmbeddings,215 )216 from langchain_community.embeddings.spacy_embeddings import (217 SpacyEmbeddings,218 )219 from langchain_community.embeddings.sparkllm import (220 SparkLLMTextEmbeddings,221 )222 from langchain_community.embeddings.tensorflow_hub import (223 TensorflowHubEmbeddings,224 )225 from langchain_community.embeddings.textembed import (226 TextEmbedEmbeddings,227 )228 from langchain_community.embeddings.titan_takeoff import (229 TitanTakeoffEmbed,230 )231 from langchain_community.embeddings.vertexai import (232 VertexAIEmbeddings,233 )234 from langchain_community.embeddings.volcengine import (235 VolcanoEmbeddings,236 )237 from langchain_community.embeddings.voyageai import (238 VoyageEmbeddings,239 )240 from langchain_community.embeddings.xinference import (241 XinferenceEmbeddings,242 )243 from langchain_community.embeddings.yandex import (244 YandexGPTEmbeddings,245 )246 from langchain_community.embeddings.zhipuai import (247 ZhipuAIEmbeddings,248 )249 250__all__ = [251 "AlephAlphaAsymmetricSemanticEmbedding",252 "AlephAlphaSymmetricSemanticEmbedding",253 "AnyscaleEmbeddings",254 "AscendEmbeddings",255 "AwaEmbeddings",256 "AzureOpenAIEmbeddings",257 "BaichuanTextEmbeddings",258 "BedrockEmbeddings",259 "BookendEmbeddings",260 "ClarifaiEmbeddings",261 "ClovaEmbeddings",262 "ClovaXEmbeddings",263 "CohereEmbeddings",264 "DashScopeEmbeddings",265 "DatabricksEmbeddings",266 "DeepInfraEmbeddings",267 "DeterministicFakeEmbedding",268 "EdenAiEmbeddings",269 "ElasticsearchEmbeddings",270 "EmbaasEmbeddings",271 "ErnieEmbeddings",272 "FakeEmbeddings",273 "FastEmbedEmbeddings",274 "GPT4AllEmbeddings",275 "GigaChatEmbeddings",276 "GooglePalmEmbeddings",277 "GradientEmbeddings",278 "HuggingFaceBgeEmbeddings",279 "HuggingFaceEmbeddings",280 "HuggingFaceHubEmbeddings",281 "HuggingFaceInferenceAPIEmbeddings",282 "HuggingFaceInstructEmbeddings",283 "InfinityEmbeddings",284 "InfinityEmbeddingsLocal",285 "IpexLLMBgeEmbeddings",286 "JavelinAIGatewayEmbeddings",287 "JinaEmbeddings",288 "JohnSnowLabsEmbeddings",289 "LLMRailsEmbeddings",290 "LaserEmbeddings",291 "LlamaCppEmbeddings",292 "LlamafileEmbeddings",293 "LocalAIEmbeddings",294 "MiniMaxEmbeddings",295 "MlflowAIGatewayEmbeddings",296 "MlflowCohereEmbeddings",297 "MlflowEmbeddings",298 "Model2vecEmbeddings",299 "ModelScopeEmbeddings",300 "MosaicMLInstructorEmbeddings",301 "NLPCloudEmbeddings",302 "NeMoEmbeddings",303 "OCIGenAIEmbeddings",304 "OctoAIEmbeddings",305 "OllamaEmbeddings",306 "OpenAIEmbeddings",307 "OpenVINOBgeEmbeddings",308 "OpenVINOEmbeddings",309 "OracleEmbeddings",310 "OVHCloudEmbeddings",311 "PremAIEmbeddings",312 "QianfanEmbeddingsEndpoint",313 "QuantizedBgeEmbeddings",314 "QuantizedBiEncoderEmbeddings",315 "SagemakerEndpointEmbeddings",316 "SambaStudioEmbeddings",317 "SelfHostedEmbeddings",318 "SelfHostedHuggingFaceEmbeddings",319 "SelfHostedHuggingFaceInstructEmbeddings",320 "SentenceTransformerEmbeddings",321 "SolarEmbeddings",322 "SpacyEmbeddings",323 "SparkLLMTextEmbeddings",324 "TensorflowHubEmbeddings",325 "TextEmbedEmbeddings",326 "TitanTakeoffEmbed",327 "VertexAIEmbeddings",328 "VolcanoEmbeddings",329 "VoyageEmbeddings",330 "XinferenceEmbeddings",331 "YandexGPTEmbeddings",332 "ZhipuAIEmbeddings",333 "HunyuanEmbeddings",334]335 336_module_lookup = {337 "AlephAlphaAsymmetricSemanticEmbedding": "langchain_community.embeddings.aleph_alpha", # noqa: E501338 "AlephAlphaSymmetricSemanticEmbedding": "langchain_community.embeddings.aleph_alpha", # noqa: E501339 "AnyscaleEmbeddings": "langchain_community.embeddings.anyscale",340 "AwaEmbeddings": "langchain_community.embeddings.awa",341 "AzureOpenAIEmbeddings": "langchain_community.embeddings.azure_openai",342 "BaichuanTextEmbeddings": "langchain_community.embeddings.baichuan",343 "BedrockEmbeddings": "langchain_community.embeddings.bedrock",344 "BookendEmbeddings": "langchain_community.embeddings.bookend",345 "ClarifaiEmbeddings": "langchain_community.embeddings.clarifai",346 "ClovaEmbeddings": "langchain_community.embeddings.clova",347 "ClovaXEmbeddings": "langchain_community.embeddings.naver",348 "CohereEmbeddings": "langchain_community.embeddings.cohere",349 "DashScopeEmbeddings": "langchain_community.embeddings.dashscope",350 "DatabricksEmbeddings": "langchain_community.embeddings.databricks",351 "DeepInfraEmbeddings": "langchain_community.embeddings.deepinfra",352 "DeterministicFakeEmbedding": "langchain_community.embeddings.fake",353 "EdenAiEmbeddings": "langchain_community.embeddings.edenai",354 "ElasticsearchEmbeddings": "langchain_community.embeddings.elasticsearch",355 "EmbaasEmbeddings": "langchain_community.embeddings.embaas",356 "ErnieEmbeddings": "langchain_community.embeddings.ernie",357 "FakeEmbeddings": "langchain_community.embeddings.fake",358 "FastEmbedEmbeddings": "langchain_community.embeddings.fastembed",359 "GPT4AllEmbeddings": "langchain_community.embeddings.gpt4all",360 "GooglePalmEmbeddings": "langchain_community.embeddings.google_palm",361 "GradientEmbeddings": "langchain_community.embeddings.gradient_ai",362 "GigaChatEmbeddings": "langchain_community.embeddings.gigachat",363 "HuggingFaceBgeEmbeddings": "langchain_community.embeddings.huggingface",364 "HuggingFaceEmbeddings": "langchain_community.embeddings.huggingface",365 "HuggingFaceHubEmbeddings": "langchain_community.embeddings.huggingface_hub",366 "HuggingFaceInferenceAPIEmbeddings": "langchain_community.embeddings.huggingface",367 "HuggingFaceInstructEmbeddings": "langchain_community.embeddings.huggingface",368 "InfinityEmbeddings": "langchain_community.embeddings.infinity",369 "InfinityEmbeddingsLocal": "langchain_community.embeddings.infinity_local",370 "IpexLLMBgeEmbeddings": "langchain_community.embeddings.ipex_llm",371 "JavelinAIGatewayEmbeddings": "langchain_community.embeddings.javelin_ai_gateway",372 "JinaEmbeddings": "langchain_community.embeddings.jina",373 "JohnSnowLabsEmbeddings": "langchain_community.embeddings.johnsnowlabs",374 "LLMRailsEmbeddings": "langchain_community.embeddings.llm_rails",375 "LaserEmbeddings": "langchain_community.embeddings.laser",376 "LlamaCppEmbeddings": "langchain_community.embeddings.llamacpp",377 "LlamafileEmbeddings": "langchain_community.embeddings.llamafile",378 "LocalAIEmbeddings": "langchain_community.embeddings.localai",379 "MiniMaxEmbeddings": "langchain_community.embeddings.minimax",380 "MlflowAIGatewayEmbeddings": "langchain_community.embeddings.mlflow_gateway",381 "MlflowCohereEmbeddings": "langchain_community.embeddings.mlflow",382 "MlflowEmbeddings": "langchain_community.embeddings.mlflow",383 "Model2vecEmbeddings": "langchain_community.embeddings.model2vec",384 "ModelScopeEmbeddings": "langchain_community.embeddings.modelscope_hub",385 "MosaicMLInstructorEmbeddings": "langchain_community.embeddings.mosaicml",386 "NLPCloudEmbeddings": "langchain_community.embeddings.nlpcloud",387 "NeMoEmbeddings": "langchain_community.embeddings.nemo",388 "OCIGenAIEmbeddings": "langchain_community.embeddings.oci_generative_ai",389 "OctoAIEmbeddings": "langchain_community.embeddings.octoai_embeddings",390 "OllamaEmbeddings": "langchain_community.embeddings.ollama",391 "OpenAIEmbeddings": "langchain_community.embeddings.openai",392 "OpenVINOEmbeddings": "langchain_community.embeddings.openvino",393 "OpenVINOBgeEmbeddings": "langchain_community.embeddings.openvino",394 "QianfanEmbeddingsEndpoint": "langchain_community.embeddings.baidu_qianfan_endpoint", # noqa: E501395 "QuantizedBgeEmbeddings": "langchain_community.embeddings.itrex",396 "QuantizedBiEncoderEmbeddings": "langchain_community.embeddings.optimum_intel",397 "OracleEmbeddings": "langchain_community.embeddings.oracleai",398 "OVHCloudEmbeddings": "langchain_community.embeddings.ovhcloud",399 "SagemakerEndpointEmbeddings": "langchain_community.embeddings.sagemaker_endpoint",400 "SambaStudioEmbeddings": "langchain_community.embeddings.sambanova",401 "SelfHostedEmbeddings": "langchain_community.embeddings.self_hosted",402 "SelfHostedHuggingFaceEmbeddings": "langchain_community.embeddings.self_hosted_hugging_face", # noqa: E501403 "SelfHostedHuggingFaceInstructEmbeddings": "langchain_community.embeddings.self_hosted_hugging_face", # noqa: E501404 "SentenceTransformerEmbeddings": "langchain_community.embeddings.sentence_transformer", # noqa: E501405 "SolarEmbeddings": "langchain_community.embeddings.solar",406 "SpacyEmbeddings": "langchain_community.embeddings.spacy_embeddings",407 "SparkLLMTextEmbeddings": "langchain_community.embeddings.sparkllm",408 "TensorflowHubEmbeddings": "langchain_community.embeddings.tensorflow_hub",409 "VertexAIEmbeddings": "langchain_community.embeddings.vertexai",410 "VolcanoEmbeddings": "langchain_community.embeddings.volcengine",411 "VoyageEmbeddings": "langchain_community.embeddings.voyageai",412 "XinferenceEmbeddings": "langchain_community.embeddings.xinference",413 "TextEmbedEmbeddings": "langchain_community.embeddings.textembed",414 "TitanTakeoffEmbed": "langchain_community.embeddings.titan_takeoff",415 "PremAIEmbeddings": "langchain_community.embeddings.premai",416 "YandexGPTEmbeddings": "langchain_community.embeddings.yandex",417 "AscendEmbeddings": "langchain_community.embeddings.ascend",418 "ZhipuAIEmbeddings": "langchain_community.embeddings.zhipuai",419 "HunyuanEmbeddings": "langchain_community.embeddings.hunyuan",420}421 422 423def __getattr__(name: str) -> Any:424 if name in _module_lookup:425 module = importlib.import_module(_module_lookup[name])426 return getattr(module, name)427 raise AttributeError(f"module {__name__} has no attribute {name}")428 429 430logger = logging.getLogger(__name__)431 432 433# TODO: this is in here to maintain backwards compatibility434class HypotheticalDocumentEmbedder:435 def __init__(self, *args: Any, **kwargs: Any):436 logger.warning(437 "Using a deprecated class. Please use "438 "`from langchain_classic.chains import HypotheticalDocumentEmbedder` "439 "instead"440 )441 from langchain_classic.chains.hyde.base import HypotheticalDocumentEmbedder as H442 443 return H(*args, **kwargs) # type: ignore[return-value]444 445 @classmethod446 def from_llm(cls, *args: Any, **kwargs: Any) -> Any:447 logger.warning(448 "Using a deprecated class. Please use "449 "`from langchain_classic.chains import HypotheticalDocumentEmbedder` "450 "instead"451 )452 from langchain_classic.chains.hyde.base import HypotheticalDocumentEmbedder as H453 454 return H.from_llm(*args, **kwargs)455 