Ë
    µŒjF  ã                  ó”   — d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZmZ d dlmZ  ej                  e«      Z G d„ dee	«      Zy)	é    )ÚannotationsN)ÚAnyÚDictÚListÚOptional)Ú
Embeddings)Úget_from_dict_or_envÚpre_init)Ú	BaseModelc                  ó°   — e Zd ZU dZdZded<   	 dZded<   	 dZded<   	 d	Zded
<   	 dZ	ded<   	 dZ
ded<   	 dZded<   	 ded<   	 edd„«       Zdd„Zdd„Zy)ÚVolcanoEmbeddingsz)`Volcengine Embeddings` embedding models.NzOptional[str]Ú
volcano_akÚ
volcano_skz*maas-api.ml-platform-cn-beijing.volces.comÚstrÚhostz
cn-beijingÚregionzbge-large-zhÚmodelz1.0Úversionéd   ÚintÚ
chunk_sizer   Úclientc                óü   — t        |dd«      |d<   t        |dd«      |d<   	 ddlm}  ||d   |d   «      }|j                  |d   «       |j	                  |d   «       ||d	<   |S # t
        $ r t        d
«      ‚w xY w)a6  
        Validate whether volcano_ak and volcano_sk in the environment variables or
        configuration file are available or not.

        init volcano embedding client with `ak`, `sk`, `host`, `region`

        Args:

            values: a dictionary containing configuration information, must include the
            fields of volcano_ak and volcano_sk
        Returns:

            a dictionary containing configuration information. If volcano_ak and
            volcano_sk are not provided in the environment variables or configuration
            file,the original values will be returned; otherwise, values containing
            volcano_ak and volcano_sk will be returned.
        Raises:

            ValueError: volcengine package not found, please install it with
            `pip install volcengine`
        r   ÚVOLC_ACCESSKEYr   ÚVOLC_SECRETKEYr   )ÚMaasServicer   r   r   zMvolcengine package not found, please install it with `pip install volcengine`)r	   Úvolcengine.maasr   Úset_akÚset_skÚImportError)ÚclsÚvaluesr   r   s       ús/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/embeddings/volcengine.pyÚvalidate_environmentz&VolcanoEmbeddings.validate_environment.   s©   € ô.  4ØØØó 
ˆˆ|Ñô
  4ØØØó 
ˆˆ|Ñð	Ý3á  ¨¡°¸Ñ1AÓBˆFØ�M‰M˜& Ñ.Ô/Ø�M‰M˜& Ñ.Ô/Ø%ˆF�8Ñð ˆøô ò 	Üð+óð ð	ús   ¢AA& Á&A;c                ó,   — | j                  |g«      d   S )Nr   )Úembed_documents)ÚselfÚtexts     r#   Úembed_queryzVolcanoEmbeddings.embed_query^   s   € Ø×#Ñ# T FÓ+¨AÑ.Ð.ó    c                ó¢  — t        dt        |«      | j                  «      D �cg c]  }|||| j                  z    ‘Œ }}g }|D ]e  }| j                  | j                  dœ|dœ}	 ddlm} | j                  j                  |«      }|j                  |d   D �	cg c]  }	|	d   ‘Œ	 c}	«       Œg |S c c}w c c}	w # $ r}
t        d|
› �«      ‚d}
~
ww xY w)	a_  
        Embeds a list of text documents using the AutoVOT algorithm.

        Args:
            texts (List[str]): A list of text documents to embed.

        Returns:
            List[List[float]]: A list of embeddings for each document in the input list.
                            Each embedding is represented as a list of float values.
        r   )Únamer   )r   Úinput)ÚMaasExceptionÚdataÚ	embeddingzembed by volcengine Error: N)ÚrangeÚlenr   r   r   r   r.   r   Ú
embeddingsÚextendÚ
ValueError)r'   ÚtextsÚiÚtext_in_chunksÚlstÚchunkÚreqr.   ÚrespÚresÚes              r#   r&   z!VolcanoEmbeddings.embed_documentsa   sï   € ô ˜1œc %›j¨$¯/©/Ô:ó
á:�ð �!�a˜$Ÿ/™/Ñ)Ò*Ø:ð 	ð 
ð ˆÛ#ˆEð !ŸJ™JØ#Ÿ|™|ñð ñˆCðDÝ9à—{‘{×-Ñ-¨cÓ2�Ø—
‘
¸¸VºÓE¹°˜C Ó,¸ÑEÕFð $ð ˆ
ùò)
ùò" FøØ ò DÜ Ð#>¸q¸cÐ!BÓCÐCûðDús/   £B,Á"3B6ÂB1
Â!B6Â1B6Â6CÂ;C	Ã	C)r"   r   Úreturnr   )r(   r   r?   zList[float])r6   z	List[str]r?   zList[List[float]])Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   r   r   r
   r$   r)   r&   © r*   r#   r   r      s›   … Ù3à $€J�Ó$ðIð !%€J�Ó$ðIð =€Dˆ#Ó<ðEà€FˆCÓðEð  €Eˆ3Óðð
 €GˆSÓØà€J�ÓØ2àƒKØàò-ó ð-ó^/ôr*   r   )Ú
__future__r   ÚloggingÚtypingr   r   r   r   Úlangchain_core.embeddingsr   Úlangchain_core.utilsr	   r
   Úpydanticr   Ú	getLoggerr@   Úloggerr   rE   r*   r#   Ú<module>rN      s<   ðÝ "ã ß ,Ó ,å 0ß ?Ý à	ˆ×	Ñ	˜8Ó	$€ôs˜	 :õ sr*   