§
    šŠtjF  ã                  ó˜   — 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dS )	é    )Ú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dS )"Ú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   ÚclientÚvaluesr   Úreturnc                óF  — t          |dd¦  «        |d<   t          |dd¦  «        |d<   	 ddlm}  ||d         |d         ¦  «        }|                     |d         ¦  «         |                     |d         ¦  «         ||d	<   n# t
          $ r t          d
¦  «        ‚w xY w|S )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)Úclsr   r   r   s       úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/embeddings/volcengine.pyÚvalidate_environmentz&VolcanoEmbeddings.validate_environment.   så   € õ.  4ØØØñ 
ô  
ˆˆ|Ñõ
  4ØØØñ 
ô  
ˆˆ|Ñð	Ø3Ð3Ð3Ð3Ð3Ð3à �[ ¨¤°¸Ô1AÑBÔBˆFØ�MŠM˜& Ô.Ñ/Ô/Ð/Ø�MŠM˜& Ô.Ñ/Ô/Ð/Ø%ˆF�8ÑÐøÝð 	ð 	ð 	Ýð+ñô ð ð	øøøð
 ˆs   ªAB ÂBÚtextúList[float]c                ó:   — |                       |g¦  «        d         S )Nr   )Úembed_documents)Úselfr&   s     r$   Úembed_queryzVolcanoEmbeddings.embed_query^   s   € Ø×#Ò# T FÑ+Ô+¨AÔ.Ð.ó    Útextsú	List[str]úList[List[float]]c                óf  ‡ ‡— ˆ ˆfd„t          dt          ‰¦  «        ‰ j        ¦  «        D ¦   «         }g }|D ]y}‰ j        ‰ j        dœ|dœ}	 ddlm} ‰ j                             |¦  «        }| 	                    d„ |d         D ¦   «         ¦  «         Œ[# |$ r}t          d|› �¦  «        ‚d	}~ww xY w|S )
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.
        c                ó4   •— g | ]}‰||‰j         z   …         ‘ŒS © )r   )Ú.0Úir*   r-   s     €€r$   ú
<listcomp>z5VolcanoEmbeddings.embed_documents.<locals>.<listcomp>l   s:   ø€ ð 
ð 
ð 
àð �!�a˜$œ/Ñ)Ð)Ô*ð
ð 
ð 
r,   r   )Únamer   )r   Úinput)ÚMaasExceptionc                ó   — g | ]
}|d          ‘ŒS )Ú	embeddingr2   )r3   Úress     r$   r5   z5VolcanoEmbeddings.embed_documents.<locals>.<listcomp>}   s   € ÐEÐEÐE°˜C Ô,ÐEÐEÐEr,   Údatazembed by volcengine Error: N)ÚrangeÚlenr   r   r   r   r8   r   Ú
embeddingsÚextendÚ
ValueError)	r*   r-   Útext_in_chunksÚlstÚchunkÚreqr8   ÚrespÚes	   ``       r$   r)   z!VolcanoEmbeddings.embed_documentsa   s  øø€ ð
ð 
ð 
ð 
ð 
å˜1�c %™jœj¨$¬/Ñ:Ô:ð
ñ 
ô 
ˆð ˆØ#ð 	Dð 	DˆEð !œJØ#œ|ðð ð ðð ˆCðDØ9Ð9Ð9Ð9Ð9Ð9à”{×-Ò-¨cÑ2Ô2�Ø—
’
ÐEÐE¸¸V¼ÐEÑEÔEÑFÔFÐFÐFøØ ð Dð Dð DÝ Ð!B¸qÐ!BÐ!BÑCÔCÐCøøøøðDøøøàˆ
s   ÁABÂB.ÂB)Â)B.)r   r   r   r   )r&   r   r   r'   )r-   r.   r   r/   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   r   r   r
   r%   r+   r)   r2   r,   r$   r   r      s  € € € € € € Ø3Ð3à $€JÐ$Ð$Ð$Ñ$ðIð !%€JÐ$Ð$Ð$Ñ$ðIð =€DÐ<Ð<Ð<Ñ<ðEà€FÐÐÐÑðEð  €EÐÐÐÑðð
 €GÐÐÐÑØà€JÐÐÐÑØ2à€K€K�KØàð-ð -ð -ñ „Xð-ð^/ð /ð /ð /ðð ð ð ð ð r,   r   )Ú
__future__r   ÚloggingÚtypingr   r   r   r   Úlangchain_core.embeddingsr   Úlangchain_core.utilsr	   r
   Úpydanticr   Ú	getLoggerrH   Úloggerr   r2   r,   r$   ú<module>rU      sÒ   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø Ð Ð Ð Ð Ð à	ˆÔ	˜8Ñ	$Ô	$€ðsð sð sð sð s˜	 :ñ sô sð sð sð sr,   