
    dh                     x    % S SK JrJrJrJrJr  S SKrS SKJ	r	  S SK
Jr  S SKJrJr  Sr\\S'    " S S	\\	5      rg)
    )AnyDictListOptionalcastN)
Embeddings)pre_init)	BaseModel
ConfigDictlaser2LASER_MULTILINGUAL_MODELc                       \ rS rSr% SrSr\\   \S'    Sr	\
\S'   \" SS9r\S\S	\4S
 j5       rS\\   S	\\\      4S jrS\S	\\   4S jrSrg)LaserEmbeddings   a  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                      SSK Jn  UR                  S5      nU(       a  U" US9nO
U" [        S9nXAS'   U$ ! [         a  n[	        S5      UeSnAff = f)	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         \/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/embeddings/laser.pyvalidate_environment$LaserEmbeddings.validate_environment,   sl    	;::f%D#7T#B #7>V#W *:&'   	G 	s   37 
AAAtextsc                     U R                   R                  U5      n[        [        [        [              UR                  5       5      $ )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_documentsLaserEmbeddings.embed_documents@   s9     ++<<UC
De%z'8'8':;;    textc                     U R                   R                  U/5      n[        [        [        [              UR                  5       5      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_queryLaserEmbeddings.embed_queryN   sB      11BBD6JDe%'7'>'>'@A!DDr-    )__name__
__module____qualname____firstlineno____doc__r   r   str__annotations__r   r   r   model_configr	   r   r!   r   r'   r+   r1   __static_attributes__r3   r-   r    r   r      s    $ D(3- "s!L $ 4  &<T#Y <4U3D <E EU Er-   r   )typingr   r   r   r   r   numpynplangchain_core.embeddingsr   langchain_core.utilsr	   pydanticr
   r   r   r9   r:   r   r3   r-   r    <module>rC      s4    2 2  0 ) * ( # (NEi NEr-   