
    7|h                     \    d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
mZ  G d de
e      Zy)    )AnyDictList)
Embeddings)get_from_dict_or_envpre_init)	BaseModel
ConfigDictc            	            e Zd ZU dZeed<   eed<   eed<    ed      Z		 	 ddedededd	f fd
Z
ededefd       Zdee   deee      fdZdedee   fdZ xZS )NLPCloudEmbeddingsa
  NLP Cloud embedding models.

    To use, you should have the nlpcloud python package installed

    Example:
        .. code-block:: python

            from langchain_community.embeddings import NLPCloudEmbeddings

            embeddings = NLPCloudEmbeddings()
    
model_namegpuclient )protected_namespaceskwargsreturnNc                 *    t        |   d||d| y )N)r   r   r   )super__init__)selfr   r   r   	__class__s       f/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain_community/embeddings/nlpcloud.pyr   zNLPCloudEmbeddings.__init__   s     	BJCB6B    valuesc                     t        |dd      }	 ddl}|j                  |d   ||d   d      |d	<   |S # t        $ r t        d
      w xY w)z?Validate that api key and python package exists in environment.nlpcloud_api_keyNLPCLOUD_API_KEYr   Nr   r   en)r   langr   zXCould not import nlpcloud python package. Please install it with `pip install nlpcloud`.)r   nlpcloudClientImportError)clsr   r   r!   s       r   validate_environmentz'NLPCloudEmbeddings.validate_environment#   sw     0&(:

	'|$&6F5MPT  /  F8   	A 	s	   "3 Atextsc                 >    | j                   j                  |      d   S )zEmbed a list of documents using NLP Cloud.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        
embeddingsr   r(   )r   r&   s     r   embed_documentsz"NLPCloudEmbeddings.embed_documents6   s     {{%%e,\::r   textc                 F    | j                   j                  |g      d   d   S )zEmbed a query using NLP Cloud.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        r(   r   r)   )r   r+   s     r   embed_queryzNLPCloudEmbeddings.embed_queryB   s%     {{%%tf-l;A>>r   )z%paraphrase-multilingual-mpnet-base-v2F)__name__
__module____qualname____doc__str__annotations__boolr   r
   model_configr   r   r   r%   r   floatr*   r-   __classcell__)r   s   @r   r   r      s    
 O	IK26L BCC C 	C
 
C $ 4  $
;T#Y 
;4U3D 
;	? 	?U 	?r   r   N)typingr   r   r   langchain_core.embeddingsr   langchain_core.utilsr   r   pydanticr	   r
   r   r   r   r   <module>r<      s$    " " 0 ? *C?J C?r   