U
    hy                   6   @   s.  d Z ddlZddlmZmZ ddlmZ ddlmZ erd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-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> e?e@ZAG dd dZBd	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	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d5ZCeeDeCd
ZEeFedddZGd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/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCg6ZHdS )Da  **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)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                   @   s2   e Zd ZeedddZeeeedddZdS )HypotheticalDocumentEmbedder)argskwargsc                 O   s    t d ddlm} |||S NzhUsing a deprecated class. Please use `from langchain.chains import HypotheticalDocumentEmbedder` insteadr   )r;   )loggerwarninglangchain.chains.hyde.baser;   )selfr<   r=   H rD   A/tmp/pip-unpacked-wheel-bo69hh5q/langchain/embeddings/__init__.py__init__R   s
    z%HypotheticalDocumentEmbedder.__init__)r<   r=   returnc                 O   s"   t d ddlm} |j||S r>   )r?   r@   rA   r;   from_llm)clsr<   r=   rC   rD   rD   rE   rH   [   s
    z%HypotheticalDocumentEmbedder.from_llmN)__name__
__module____qualname__r   rF   classmethodrH   rD   rD   rD   rE   r;   Q   s   	r;   zlangchain_community.embeddings)Zdeprecated_lookups)namerG   c                 C   s   t | S )zLook up attributes dynamically.)_import_attribute)rN   rD   rD   rE   __getattr__   s    rP   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-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   )I__doc__loggingtypingr   r   Zlangchain._apir   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.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   	getLoggerrJ   r?   r;   ZDEPRECATED_LOOKUP__package__rO   strrP   __all__rD   rD   rD   rE   <module>   s   9
8