§
    šŠtj  ã                   ó€   — 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         úb/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/embeddings/laser.pyÚvalidate_environmentz$LaserEmbeddings.validate_environment,   s°   € ð	Ø;Ð;Ð;Ð;Ð;Ð;à—:’:˜fÑ%Ô%ˆDØð XØ#7Ð#7¸TÐ#BÑ#BÔ#BÐ Ð à#7Ð#7Õ>VÐ#WÑ#WÔ#WÐ Ø*:ˆFÐ&Ñ'Ð'øåð 	ð 	ð 	ÝðGñô ð ðøøøøð	øøøð
 ˆs   ‚A A Á
A"ÁAÁA"Útextsc                 ó°   — | j                              |¦  «        }t          t          t          t                            |                     ¦   «         ¦  «        S )zºGenerate 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 )z¦Generate 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ÒBÀDÀ6Ñ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*   