o
    Zh                      @   s  d Z ddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
 erddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ eAeBZCG dd	 d	ZDi d
dddddddddddddddddddddddddddddddddi ddddddddd dd!dd"dd#dd$dd%dd&dd'dd(dd)dd*dd+dd,di d-dd.dd/dd0dd1dd2dd3dd4dd5dd6dd7dd8dd9dd:dd;dd<dd=dddd>ZEeeFeEd?ZGd@eHdAefdBdCZIg dDZJdS )Ea  **Embedding models**  are wrappers around embedding models
from different APIs and services.

**Embedding models** can be LLMs or not.

**Class hierarchy:**

.. code-block::

    Embeddings --> <name>Embeddings  # Examples: OpenAIEmbeddings, HuggingFaceEmbeddings
    N)TYPE_CHECKINGAny)create_importer)init_embeddings)CacheBackedEmbeddings)5%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XinferenceEmbeddingsc                   @   s8   e Zd ZdedefddZedededefddZdS )	HypotheticalDocumentEmbedderargskwargsc                 O   s$   t d ddlm} ||i |S NzhUsing a deprecated class. Please use `from langchain.chains import HypotheticalDocumentEmbedder` insteadr   )r<   )loggerwarninglangchain.chains.hyde.baser<   )selfr=   r>   H rE   T/var/www/html/lang_env/lib/python3.10/site-packages/langchain/embeddings/__init__.py__init__S   s
   z%HypotheticalDocumentEmbedder.__init__returnc                 O   s&   t d ddlm} |j|i |S r?   )r@   rA   rB   r<   from_llm)clsr=   r>   rD   rE   rE   rF   rI   \   s
   z%HypotheticalDocumentEmbedder.from_llmN)__name__
__module____qualname__r   rG   classmethodrI   rE   rE   rE   rF   r<   R   s    	r<   r   zlangchain_community.embeddingsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   )r:   r;   )Zdeprecated_lookupsnamerH   c                 C   s   t | S )zLook up attributes dynamically.)_import_attribute)rO   rE   rE   rF   __getattr__   s   rQ   )7r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r   )K__doc__loggingtypingr   r   Zlangchain._apir   Zlangchain.embeddings.baser   Zlangchain.embeddings.cacher   Zlangchain_community.embeddingsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   	getLoggerrK   r@   r<   ZDEPRECATED_LOOKUP__package__rP   strrQ   __all__rE   rE   rE   rF   <module>   s    
9	
 !"#$%&'()*+,-./012348