§
    šŠtjÄ  ã                   óŒ   — d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZmZmZmZ  G d„ de	e¦  «        ZdS )	é    N)ÚAnyÚDictÚListÚLiteralÚOptionalÚType)Ú
Embeddings)Úrun_in_executor)Úconvert_to_secret_strÚget_from_dict_or_env)Ú	BaseModelÚFieldÚ	SecretStrÚmodel_validatorc                   óü  — e Zd ZU dZ edd¬¦  «        Zee         ed<   	  edd¬¦  «        Z	ee         ed<   	 dZ
ed	         ed
<   	 dZeed<   	 dZeed<   	  edd¬¦  «        Zeed<   	  edd¬¦  «        Zee         ed<   	  ed¬¦  «        dedefd„¦   «         Zdedee         fd„Zdee         deee                  fd„Zdedee         fd„Zdee         deee                  fd„Zdedee         fd„ZdS )ÚHunyuanEmbeddingsz„Tencent Hunyuan embedding models API by Tencent.

    For more information, see https://cloud.tencent.com/document/product/1729
    Ú	secret_idN)ÚaliasÚdefaultÚhunyuan_secret_idÚ
secret_keyÚhunyuan_secret_keyúap-guangzhou)r   z
ap-beijingÚregioni   Úembedding_ctx_lengthFÚshow_progress_barT)r   ÚexcludeÚclientÚrequest_clsÚbefore)ÚmodeÚvaluesÚreturnc                 óÒ  — t          t          |dd¦  «        ¦  «        |d<   t          t          |dd¦  «        ¦  «        |d<   	 ddlm} ddlm} ddlm} dd	lm	} n# t          $ r t          d
¦  «        ‚w xY w |¦   «         }d|j        _         ||d                              ¦   «         |d                              ¦   «         ¦  «        }||d<    |||d         |¦  «        |d<   |S )z?Validate that api key and python package exists in environment.r   ÚHUNYUAN_SECRET_IDr   ÚHUNYUAN_SECRET_KEYr   )Ú
Credential)ÚClientProfile)ÚHunyuanClient)ÚGetEmbeddingRequestz{Could not import tencentcloud sdk python package. Please install it with `pip install "tencentcloud-sdk-python>=3.0.1139"`.é   r   r   r   )r   r   Útencentcloud.common.credentialr'   Ú*tencentcloud.common.profile.client_profiler(   Ú-tencentcloud.hunyuan.v20230901.hunyuan_clientr)   Ú%tencentcloud.hunyuan.v20230901.modelsr*   ÚImportErrorÚhttpProfileÚpre_conn_pool_sizeÚget_secret_value)Úclsr"   r'   r(   r)   r*   Úclient_profileÚ
credentials           úd/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/embeddings/hunyuan.pyÚvalidate_environmentz&HunyuanEmbeddings.validate_environment    s`  € õ '<Ý ØØ#Ø#ñô ñ'
ô '
ˆÐ"Ñ#õ (=Ý ØØ$Ø$ñô ñ(
ô (
ˆÐ#Ñ$ð		ØAÐAÐAÐAÐAÐAØPÐPÐPÐPÐPÐPØSÐSÐSÐSÐSÐSØQÐQÐQÐQÐQÐQÐQøÝð 	ð 	ð 	ÝðJñô ð ð	øøøð '˜™œˆØ89ˆÔ"Ô5à�ZØÐ&Ô'×8Ò8Ñ:Ô:ØÐ'Ô(×9Ò9Ñ;Ô;ñ
ô 
ˆ
ð
 !4ˆˆ}Ñà(˜=¨°V¸HÔ5EÀ~ÑVÔVˆˆxÑØˆs   ÁA ÁA7Útextc                 óŒ  — | j         €t          d¦  «        ‚|                       ¦   «         }||_        | j                             |¦  «        }t          j        |                     ¦   «         ¦  «        }|                     d¦  «        }|st          d¦  «        ‚|d                              d¦  «        }|st          d¦  «        ‚|S )Nz!Request class is not initialized.ÚDataz,Occur hunyuan embedding error: Data is emptyr   Ú	Embeddingz1Occur hunyuan embedding error: Embedding is empty)
r   ÚAssertionErrorÚInputr   ÚGetEmbeddingÚjsonÚloadsÚto_json_stringÚgetÚRuntimeError)Úselfr9   ÚrequestÚresponseÚ	_responseÚdataÚ	embeddings          r7   Ú_embed_textzHunyuanEmbeddings._embed_textJ   s¾   € ØÔÐ#Ý Ð!DÑEÔEÐEØ×"Ò"Ñ$Ô$ˆØˆŒà”;×+Ò+¨GÑ4Ô4ˆå$(¤J¨x×/FÒ/FÑ/HÔ/HÑ$IÔ$Iˆ	à/8¯}ª}¸VÑ/DÔ/DˆØð 	OÝÐMÑNÔNÐNà˜”G—K’K Ñ,Ô,ˆ	Øð 	TÝÐRÑSÔSÐSàÐó    Útextsc                 óæ   — g }| j         r8	 ddlm} n"# t          $ r}t          d¦  «        |‚d}~ww xY w ||d¬¦  «        }n|}|D ]*}|                     |                      |¦  «        ¦  «         Œ+|S )zEmbed search docs.r   )Útqdmz€Package tqdm must be installed if show_progress_bar=True. Please install with 'pip install tqdm' or set show_progress_bar=False.NzHunyuan Embedding)ÚiterableÚdesc)r   rO   r0   ÚappendÚembed_query)rE   rM   Ú
embeddingsrO   ÚeÚ_iterr9   s          r7   Úembed_documentsz!HunyuanEmbeddings.embed_documents^   s¿   € àˆ
ØÔ!ð 	ðØ%Ð%Ð%Ð%Ð%Ð%Ð%øÝð ð ð Ý!ð/ñô ð ð	øøøøðøøøð �D %Ð.AÐBÑBÔBˆEˆEàˆEØð 	6ð 	6ˆDØ×Ò˜d×.Ò.¨tÑ4Ô4Ñ5Ô5Ð5Ð5àÐs   ‹ ’
1œ,¬1c                 ó,   — |                       |¦  «        S )zEmbed query text.)rK   ©rE   r9   s     r7   rS   zHunyuanEmbeddings.embed_queryr   s   € à×Ò Ñ%Ô%Ð%rL   c              ƒ   ó>   K  — t          d| j        |¦  «        ƒ d{V —†S )zAsynchronous Embed search docs.N)r
   rW   )rE   rM   s     r7   Úaembed_documentsz"HunyuanEmbeddings.aembed_documentsv   s-   è è € å$ T¨4Ô+?ÀÑGÔGÐGÐGÐGÐGÐGÐGÐGrL   c              ƒ   ó>   K  — t          d| j        |¦  «        ƒ d{V —†S )zAsynchronous Embed query text.N)r
   rS   rY   s     r7   Úaembed_queryzHunyuanEmbeddings.aembed_queryz   s-   è è € å$ T¨4Ô+;¸TÑBÔBÐBÐBÐBÐBÐBÐBÐBrL   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Ú__annotations__r   r   r   r   Úintr   Úboolr   r   r   r   r   r   r8   Ústrr   ÚfloatrK   rW   rS   r[   r]   © rL   r7   r   r   
   s  € € € € € € ðð ð
 .3¨U¸ÈdÐ-SÑ-SÔ-SÐ�x 	Ô*ÐSÐSÑSØØ.3¨e¸,ÐPTÐ.UÑ.UÔ.UÐ˜ Ô+ÐUÐUÑUØØ4B€FˆGÐ0Ô1ÐBÐBÑBØ(Ø $Ð˜#Ð$Ð$Ñ$ØSØ#Ð�tÐ#Ð#Ñ#Ø=à�% ¨dÐ3Ñ3Ô3€FˆCÐ3Ð3Ñ3Ø"Ø"' %°¸dÐ"CÑ"CÔ"C€K�˜$”ÐCÐCÑCØ0à€_˜(Ð#Ñ#Ô#ð'¨$ð '°4ð 'ð 'ð 'ñ $Ô#ð'ðR ð ¨¨U¬ð ð ð ð ð( T¨#¤Yð °4¸¸U¼Ô3Dð ð ð ð ð(& ð &¨¨U¬ð &ð &ð &ð &ðH¨D°¬Ið H¸$¸tÀE¼{Ô:Kð Hð Hð Hð HðC sð C¨t°E¬{ð Cð Cð Cð Cð Cð CrL   r   )r@   Útypingr   r   r   r   r   r   Úlangchain_core.embeddingsr	   Úlangchain_core.runnables.configr
   Úlangchain_core.utilsr   r   Úpydanticr   r   r   r   r   rg   rL   r7   ú<module>rm      sè   ðØ €€€Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AðrCð rCð rCð rCð rC˜
 Iñ rCô rCð rCð rCð rCrL   