
    ~
i                         U d dl mZmZmZmZmZ d dlZd dlm	Z	 d dl
mZ d dlmZmZ dZeed<    G d d	ee	          ZdS )
    )AnyDictListOptionalcastN)
Embeddings)pre_init)	BaseModel
ConfigDictlaser2LASER_MULTILINGUAL_MODELc                       e Zd ZU dZdZee         ed<   	 dZe	ed<    e
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dS )LaserEmbeddingsa  LASER Language-Agnostic SEntence Representations.
    LASER is a Python library developed by the Meta AI Research team
    and used for creating multilingual sentence embeddings for over 147 languages
    as of 2/25/2024
    See more documentation at:
    * https://github.com/facebookresearch/LASER/
    * https://github.com/facebookresearch/LASER/tree/main/laser_encoders
    * https://arxiv.org/abs/2205.12654

    To use this class, you must install the `laser_encoders` Python package.

    `pip install laser_encoders`
    Example:
        from laser_encoders import LaserEncoderPipeline
        encoder = LaserEncoderPipeline(lang="eng_Latn")
        embeddings = encoder.encode_sentences(["Hello", "World"])
    Nlang_encoder_pipelineforbid)extravaluesreturnc                     	 ddl m} |                    d          }|r ||          }n |t                    }||d<   n"# t          $ r}t	          d          |d}~ww xY w|S )	z0Validate that laser_encoders has been installed.r   )LaserEncoderPipeliner   )r   )laserr   zfCould not import 'laser_encoders' Python package. Please install it with `pip install laser_encoders`.N)laser_encodersr   getr   ImportError)clsr   r   r   encoder_pipelinees         C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langchain_community/embeddings/laser.pyvalidate_environmentz$LaserEmbeddings.validate_environment,   s    	;;;;;;::f%%D X#7#7T#B#B#B  #7#7>V#W#W#W *:F&'' 	 	 	G  	
 s   A A 
A"AA"textsc                     | j                             |          }t          t          t          t                            |                                          S )zGenerate embeddings for documents using LASER.

        Args:
            texts: The list of texts to embed.

        Returns:
            List of embeddings, one for each text.
        r   encode_sentencesr   r   floattolist)selfr!   
embeddingss      r   embed_documentszLaserEmbeddings.embed_documents@   s?     +<<UCC
De%z'8'8':':;;;    textc                     | j                             |g          }t          t          t          t                            |                                          d         S )zGenerate single query text embeddings using LASER.

        Args:
            text: The text to embed.

        Returns:
            Embeddings for the text.
        r   r#   )r'   r+   query_embeddingss      r   embed_queryzLaserEmbeddings.embed_queryN   sH      1BBD6JJDe%'7'>'>'@'@AA!DDr*   )__name__
__module____qualname____doc__r   r   str__annotations__r   r   r   model_configr	   r   r    r   r%   r)   r.    r*   r   r   r      s          $ D(3- "s!!!:  L $ 4    X&<T#Y <4U3D < < < <E EU E E E E E Er*   r   )typingr   r   r   r   r   numpynplangchain_core.embeddingsr   langchain_core.utilsr	   pydanticr
   r   r   r3   r4   r   r6   r*   r   <module>r=      s    2 2 2 2 2 2 2 2 2 2 2 2 2 2 2     0 0 0 0 0 0 ) ) ) ) ) ) * * * * * * * * ( # ( ( (NE NE NE NE NEi NE NE NE NE NEr*   