§
    æ˜ºhì7  ã                  ón  — d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZmZmZ d dlmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZ d dlm Z m!Z!m"Z" d dl#m$Z$m%Z%m&Z& d d	l'm(Z(m)Z) d d
l*m+Z+ d dl,m-Z-m.Z.m/Z/m0Z0m1Z1 d dl2m3Z3  ej4        e5¦  «        Z6	 d!d"d„Z7d#d„Z8d$d„Z9d%d„Z: G d „ de¦  «        Z;dS )&é    )ÚannotationsN)	ÚAnyÚAsyncIteratorÚCallableÚDictÚIteratorÚListÚMappingÚOptionalÚUnion)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseChatModel)
Ú	AIMessageÚAIMessageChunkÚBaseMessageÚBaseMessageChunkÚChatMessageÚChatMessageChunkÚHumanMessageÚHumanMessageChunkÚSystemMessageÚSystemMessageChunk)ÚChatGenerationÚChatGenerationChunkÚ
ChatResult)ÚFieldÚ	SecretStrÚroot_validator)Úconvert_to_secret_strÚget_from_dict_or_env)Ú	HTTPError)Úbefore_sleep_logÚretryÚretry_if_exception_typeÚstop_after_attemptÚwait_exponential)Úcheck_responseFÚ_dictúMapping[str, Any]Úis_chunkÚboolÚreturnú$Union[BaseMessage, BaseMessageChunk]c                óZ  — | d         }| d         }|dk    r"|rt          |¬¦  «        nt          |¬¦  «        S |dk    r"|rt          |¬¦  «        nt          |¬¦  «        S |dk    r"|rt	          |¬¦  «        nt          |¬¦  «        S |rt          ||¬¦  «        nt          ||¬¦  «        S )NÚroleÚcontentÚuser©r1   Ú	assistantÚsystem©r0   r1   )r   r   r   r   r   r   r   r   )r)   r+   r0   r1   s       ún/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/chat_models/tongyi.pyÚconvert_dict_to_messager8   8   sð   € ð �Œ=€DØ�IÔ€GØˆv‚~€~ð ð/Õ gÐ.Ñ.Ô.Ð.å gÐ.Ñ.Ô.ð	
ð
 
�Ò	Ð	à/7ÐW�N 7Ð+Ñ+Ô+Ð+½YÈwÐ=WÑ=WÔ=Wð	
ð 
�Ò	Ð	ð ð0Õ wÐ/Ñ/Ô/Ð/å wÐ/Ñ/Ô/ð	
ð ð9Õ $°Ð8Ñ8Ô8Ð8å $°Ð8Ñ8Ô8ð	
ó    Úmessage_chunkr   r   c                ó‚  — t          | t          ¦  «        rt          | j        ¬¦  «        S t          | t          ¦  «        rt          | j        ¬¦  «        S t          | t          ¦  «        rt          | j        ¬¦  «        S t          | t          ¦  «        rt          | j
        | j        ¬¦  «        S t          d| › �¦  «        ‚)Nr3   r6   úGot unknown type )Ú
isinstancer   r   r1   r   r   r   r   r   r   r0   Ú	TypeError)r:   s    r7   Ú convert_message_chunk_to_messager?   U   s¹   € Ý�-Õ!2Ñ3Ô3ð 	=Ý MÔ$9Ð:Ñ:Ô:Ð:Ý	�M¥>Ñ	2Ô	2ð =Ý Ô!6Ð7Ñ7Ô7Ð7Ý	�MÕ#5Ñ	6Ô	6ð =Ý ]Ô%:Ð;Ñ;Ô;Ð;Ý	�MÕ#3Ñ	4Ô	4ð =Ý Ô 2¸MÔ<QÐRÑRÔRÐRåÐ;¨MÐ;Ð;Ñ<Ô<Ð<r9   ÚmessageÚdictc                ó4  — t          | t          ¦  «        r| j        | j        dœ}nrt          | t          ¦  «        rd| j        dœ}nRt          | t
          ¦  «        rd| j        dœ}n2t          | t          ¦  «        rd| j        dœ}nt          d| › �¦  «        ‚|S )zConvert a message to a dict.r6   r2   r4   r5   r<   )r=   r   r0   r1   r   r   r   r>   )r@   Úmessage_dicts     r7   Úconvert_message_to_dictrD   b   s¯   € õ �'�;Ñ'Ô'ð 	7Ø '¤¸¼ÐIÐIˆˆÝ	�G�\Ñ	*Ô	*ð 7Ø &°7´?ÐCÐCˆˆÝ	�G�YÑ	'Ô	'ð 7Ø +¸¼ÐHÐHˆˆÝ	�G�]Ñ	+Ô	+ð 7Ø (°W´_ÐEÐEˆˆåÐ5¨GÐ5Ð5Ñ6Ô6Ð6ØÐr9   ÚllmÚ
ChatTongyiúCallable[[Any], Any]c           
     óÔ   — d}d}t          dt          | j        ¦  «        t          d||¬¦  «        t	          t
          ¦  «        t          t          t          j	        ¦  «        ¬¦  «        S )Né   é   T)Ú
multiplierÚminÚmax)ÚreraiseÚstopÚwaitr$   Úbefore_sleep)
r$   r&   Úmax_retriesr'   r%   r"   r#   ÚloggerÚloggingÚWARNING)rE   Úmin_secondsÚmax_secondss      r7   Ú_create_retry_decoratorrX   s   sa   € Ø€KØ€Kõ ØÝ ¤Ñ0Ô0Ý¨°ÀÐMÑMÔMÝ&¥yÑ1Ô1Ý%¥f­g¬oÑ>Ô>ðñ ô ð r9   c                  óª  — e Zd ZU dZed>d„¦   «         Zded<    edd¬	¦  «        Zd
ed<   	  ee	¬¦  «        Z
ded<   dZded<   	 dZded<   	 dZded<   	 dZded<   	 ed?d„¦   «         Z e¦   «         d@d„¦   «         ZedAd„¦   «         ZdBd!„ZdBd"„ZdBd#„Z	 	 dCdDd+„Z	 	 dCdEd-„Z	 	 dCdFd/„Z	 	 dCdGd1„ZdHd2„ZdId6„Ze	 dJdKd9„¦   «         ZedLd=„¦   «         ZdS )MrF   aw  Alibaba Tongyi Qwen chat models API.

    To use, you should have the ``dashscope`` python package installed,
    and set env ``DASHSCOPE_API_KEY`` with your API key, or pass
    it as a named parameter to the constructor.

    Example:
        .. code-block:: python

            from langchain_community.chat_models import Tongyi
            Tongyi_chat = ChatTongyi()
    r-   úDict[str, str]c                ó
   — ddiS )NÚdashscope_api_keyÚDASHSCOPE_API_KEY© ©Úselfs    r7   Ú
lc_secretszChatTongyi.lc_secrets�   s   € à#Ð%8Ð9Ð9r9   r   Úclientz
qwen-turboÚmodel)ÚdefaultÚaliasÚstrÚ
model_name)Údefault_factoryúDict[str, Any]Úmodel_kwargsgš™™™™™é?ÚfloatÚtop_pNzOptional[SecretStr]r\   Fr,   Ú	streamingé
   ÚintrR   c                ó   — dS )zReturn type of llm.Útongyir^   r_   s    r7   Ú	_llm_typezChatTongyi._llm_type¥   s	   € ð ˆxr9   Úvaluesr   c                óà   — t          t          |dd¦  «        ¦  «        |d<   	 ddl}n# t          $ r t          d¦  «        ‚w xY w	 |j        |d<   n# t
          $ r t          d¦  «        ‚w xY w|S )z?Validate that api key and python package exists in environment.r\   r]   r   NzdCould not import dashscope python package. Please install it with `pip install dashscope --upgrade`.rb   z¢`dashscope` has no `Generation` attribute, this is likely due to an old version of the dashscope package. Try upgrading it with `pip install --upgrade dashscope`.)r    r!   Ú	dashscopeÚImportErrorÚ
GenerationÚAttributeErrorÚ
ValueError)Úclsrs   ru   s      r7   Úvalidate_environmentzChatTongyi.validate_environmentª   s¿   € õ '<Ý  Ð)<Ð>QÑRÔRñ'
ô '
ˆÐ"Ñ#ð	ØÐÐÐÐøÝð 	ð 	ð 	ÝðLñô ð ð	øøøð
	Ø(Ô3ˆF�8ÑÐøÝð 	ð 	ð 	Ýð:ñô ð ð	øøøð ˆs   £( ¨AÁ
A ÁA+c                ó`   — | j         | j        | j                             ¦   «         ddœ| j        ¥S )z7Get the default parameters for calling Tongyi Qwen API.r@   )rc   rl   Úapi_keyÚresult_format)rg   rl   r\   Úget_secret_valuerj   r_   s    r7   Ú_default_paramszChatTongyi._default_paramsÂ   s?   € ð ”_Ø”ZØÔ-×>Ò>Ñ@Ô@Ø&ð	
ð 
ð
 Ôð
ð 	
r9   Úkwargsc                óN   ‡ — t          ‰ ¦  «        }|dˆ fd„¦   «         } |di |¤ŽS )ú*Use tenacity to retry the completion call.Ú_kwargsr   r-   c                 óF   •—  ‰j         j        di | ¤Ž}t          |¦  «        S ©Nr^   ©rb   Úcallr(   )r„   Úrespr`   s     €r7   Ú_completion_with_retryz@ChatTongyi.completion_with_retry.<locals>._completion_with_retryÑ   s+   ø€ à#�4”;Ô#Ð.Ð. gÐ.Ð.ˆDÝ! $Ñ'Ô'Ð'r9   ©r„   r   r-   r   r^   ©rX   )r`   r�   Úretry_decoratorrŠ   s   `   r7   Úcompletion_with_retryz ChatTongyi.completion_with_retryÍ   sQ   ø€ å1°$Ñ7Ô7ˆà	ð	(ð 	(ð 	(ð 	(ð 	(ñ 
Œð	(ð &Ð%Ð/Ð/¨Ð/Ð/Ð/r9   c                óN   ‡ — t          ‰ ¦  «        }|dˆ fd„¦   «         } |di |¤ŽS )rƒ   r„   r   r-   c               ;  ó\   •K  —  ‰j         j        di | ¤Ž}|D ]}t          |¦  «        V — Œd S r†   r‡   )r„   Ú	responsesr‰   r`   s      €r7   Ú_stream_completion_with_retryzNChatTongyi.stream_completion_with_retry.<locals>._stream_completion_with_retryÜ   sQ   øè è € à(˜œÔ(Ð3Ð3¨7Ð3Ð3ˆIØ!ð +ð +�Ý$ TÑ*Ô*Ð*Ð*Ð*Ð*ð+ð +r9   r‹   r^   rŒ   )r`   r�   r�   r’   s   `   r7   Ústream_completion_with_retryz'ChatTongyi.stream_completion_with_retryØ   sQ   ø€ å1°$Ñ7Ô7ˆà	ð	+ð 	+ð 	+ð 	+ð 	+ñ 
Œð	+ð
 -Ð,Ð6Ð6¨vÐ6Ð6Ð6r9   c               ón   K  —  G d„ d¦  «        } | | j         di |¤Ž¬¦  «        2 3 d{V —†}|W V — Œ6 dS )z}Because the dashscope SDK doesn't provide an async API,
        we wrap `stream_generate_with_retry` with an async generator.c                  ó.   — e Zd Zd
d„Zdd„Zdd„Zdd„Zd	S )úEChatTongyi.astream_completion_with_retry.<locals>._AioTongyiGeneratorÚ	generatorr   c                ó   — || _         d S ©N©r—   )r`   r—   s     r7   Ú__init__zNChatTongyi.astream_completion_with_retry.<locals>._AioTongyiGenerator.__init__é   s   € Ø!*�”��r9   r-   úAsyncIterator[Any]c                ó   — | S r™   r^   r_   s    r7   Ú	__aiter__zOChatTongyi.astream_completion_with_retry.<locals>._AioTongyiGenerator.__aiter__ì   s   € Ø�r9   c              “  ó€   K  — t          j        ¦   «                              d | j        ¦  «        ƒ d {V —†}|�|S t          ‚r™   )ÚasyncioÚget_running_loopÚrun_in_executorÚ
_safe_nextÚStopAsyncIteration)r`   Úvalues     r7   Ú	__anext__zOChatTongyi.astream_completion_with_retry.<locals>._AioTongyiGenerator.__anext__ï   s\   è è € Ý%Ô6Ñ8Ô8×HÒHØ˜$œ/ñô ð ð ð ð ð ð �ð Ð$Ø �Lå,Ð,r9   c                óN   — 	 t          | j        ¦  «        S # t          $ r Y d S w xY wr™   )Únextr—   ÚStopIterationr_   s    r7   r£   zPChatTongyi.astream_completion_with_retry.<locals>._AioTongyiGenerator._safe_nextø   s9   € ð Ý ¤Ñ/Ô/Ð/øÝ$ð  ð  ð  Ø˜4˜4ð øøøs   ‚ –
$£$N)r—   r   )r-   rœ   )r-   r   )Ú__name__Ú
__module__Ú__qualname__r›   rž   r¦   r£   r^   r9   r7   Ú_AioTongyiGeneratorr–   è   sd   € € € € € ð+ð +ð +ð +ðð ð ð ð-ð -ð -ð -ð ð  ð  ð  ð  ð  r9   r­   rš   Nr^   )r“   )r`   r�   r­   Úchunks       r7   Úastream_completion_with_retryz(ChatTongyi.astream_completion_with_retryä   sž   è è € ð	 ð 	 ð 	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð, /Ð.Ø7�dÔ7ÐAÐA¸&ÐAÐAð
ñ 
ô 
ð 	ð 	ð 	ð 	ð 	ð 	ð 	�%ð ˆKˆKˆKˆKˆKð
ð 
ð 
s   §4ÚmessagesúList[BaseMessage]rO   úOptional[List[str]]Úrun_managerú"Optional[CallbackManagerForLLMRun]r   c           	     ó|  — g }| j         rMd } | j        |f||dœ|¤ŽD ]}|€|}Œ||z  }Œ|€J ‚|                     |                      |¦  «        ¦  «         nO | j        d||dœ|¤Ž} | j        di |¤Ž}	|                     t          di |                      |	¦  «        ¤Ž¦  «         t          |d| j	        i¬¦  «        S ©N)rO   r³   )r°   rO   rg   )ÚgenerationsÚ
llm_outputr^   )
rm   Ú_streamÚappendÚ_chunk_to_generationÚ_invocation_paramsrŽ   r   Ú_chat_generation_from_qwen_respr   rg   ©
r`   r°   rO   r³   r�   r·   Ú
generationr®   Úparamsr‰   s
             r7   Ú	_generatezChatTongyi._generate  s?  € ð ˆØŒ>ð 	Ø8<ˆJØ%˜œØðØ#°ðð Ø@Fðð ð (ð (�ð Ð%Ø!&�J�Jà %Ñ'�J�JØÐ)Ð)Ð)Ø×Ò˜t×8Ò8¸ÑDÔDÑEÔEÐEÐEà%< TÔ%<ð &Ø!¨ð&ð &Ø06ð&ð &ˆFð .�4Ô-Ð7Ð7°Ð7Ð7ˆDØ×ÒÝÐLÐL ×!EÒ!EÀdÑ!KÔ!KÐLÐLñô ð õ Ø#à˜dœoðð
ñ 
ô 
ð 	
r9   ú'Optional[AsyncCallbackManagerForLLMRun]c           	   ‹  óö  K  — g }| j         rSd } | j        |f||dœ|¤Ž2 3 d {V —†}|€|}Œ||z  }Œ6 |€J ‚|                     |                      |¦  «        ¦  «         n„ | j        d||dœ|¤Ž}t          j        ¦   «                              d t          j	        | j
        fi |¤Ž¦  «        ƒ d {V —†}	|                     t          di |                      |	¦  «        ¤Ž¦  «         t          |d| j        i¬¦  «        S r¶   )rm   Ú_astreamrº   r»   r¼   r    r¡   r¢   Ú	functoolsÚpartialrŽ   r   r½   r   rg   r¾   s
             r7   Ú
_ageneratezChatTongyi._agenerate%  s¥  è è € ð ˆØŒ>ð 	Ø8<ˆJØ,˜tœ}Øð Ø#°ð ð  Ø@Fð ð  ð (ð (ð (ð (ð (ð (ð (�eð Ð%Ø!&�J�Jà %Ñ'�J�Jð ð Ð)Ð)Ð)Ø×Ò˜t×8Ò8¸ÑDÔDÑEÔEÐEÐEà%< TÔ%<ð &Ø!¨ð&ð &Ø06ð&ð &ˆFõ !Ô1Ñ3Ô3×CÒCØÝÔ! $Ô"<ÐGÐGÀÐGÐGñô ð ð ð ð ð ð ˆDð ×ÒÝÐLÐL ×!EÒ!EÀdÑ!KÔ!KÐLÐLñô ð õ Ø#à˜dœoðð
ñ 
ô 
ð 	
s   Ÿ1úIterator[ChatGenerationChunk]c           	   +  óÒ   K  —  | j         d||ddœ|¤Ž} | j        di |¤ŽD ]E}t          di |                      |d¬¦  «        ¤Ž}|V — |r|                     |j        |¬¦  «         ŒFd S ©NT)r°   rO   Ústream©r+   ©r®   r^   )r¼   r“   r   r½   Úon_llm_new_tokenÚtext©r`   r°   rO   r³   r�   rÀ   Ústream_respr®   s           r7   r¹   zChatTongyi._streamJ  sÆ   è è € ð "9 Ô!8ð "
Ø D°ð"
ð "
Ø9?ð"
ð "
ˆð =˜4Ô<ÐFÐF¸vÐFÐFð 	Fð 	FˆKÝ'ð ð Ø×6Ò6°{ÈTÐ6ÑRÔRðð ˆEð ˆKˆKˆKØð FØ×,Ò,¨U¬Z¸uÐ,ÑEÔEÐEøð	Fð 	Fr9   ú"AsyncIterator[ChatGenerationChunk]c           	    óì   K  —  | j         d||ddœ|¤Ž} | j        di |¤Ž2 3 d {V —†}t          di |                      |d¬¦  «        ¤Ž}|W V — |r"|                     |j        |¬¦  «        ƒ d {V —† ŒR6 d S rÊ   )r¼   r¯   r   r½   rÎ   rÏ   rÐ   s           r7   rÄ   zChatTongyi._astream\  sù   è è € ð "9 Ô!8ð "
Ø D°ð"
ð "
Ø9?ð"
ð "
ˆð "D Ô!CÐ!MÐ!MÀfÐ!MÐ!Mð 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	L�+Ý'ð ð Ø×6Ò6°{ÈTÐ6ÑRÔRðð ˆEð ˆKˆKˆKˆKØð LØ!×2Ò2°5´:ÀUÐ2ÑKÔKÐKÐKÐKÐKÐKÐKÐKøð "NÐ!MÐ!Ms   ¡A3c                ó”  — i | j         ¥|¥}|�||d<   |                     d¦  «        rd|d<   d„ |D ¦   «         }|d         d         dk    rt          d	¦  «        ‚d
„ t          |¦  «        D ¦   «         }t	          |¦  «        dk    r|d         dk    rt          d¦  «        ‚t	          |¦  «        dk    rt          d¦  «        ‚||d<   |S )NrO   rË   TÚincremental_outputc                ó,   — g | ]}t          |¦  «        ‘ŒS r^   )rD   )Ú.0Úms     r7   ú
<listcomp>z1ChatTongyi._invocation_params.<locals>.<listcomp>w  s!   € ÐFÐFÐF¸Õ0°Ñ3Ô3ÐFÐFÐFr9   éÿÿÿÿr0   r2   z$Last message should be user message.c                ó0   — g | ]\  }}|d          dk    ¯|‘ŒS )r0   r5   r^   )r×   ÚirØ   s      r7   rÙ   z1ChatTongyi._invocation_params.<locals>.<listcomp>}  s1   € ð "
ð "
ð "
Ù�!�Q°a¸´iÀ8Ò6KÐ6KˆAÐ6KÐ6KÐ6Kr9   rI   r   z-System message can only be the first message.z-There can be only one system message at most.r°   )r€   Úgetry   Ú	enumerateÚlen)r`   r°   rO   r�   rÀ   Úmessage_dictsÚsystem_message_indicess          r7   r¼   zChatTongyi._invocation_paramsn  s  € ð 4�DÔ(Ð3¨FÐ3ˆØÐØ!ˆF�6‰NØ�:Š:�hÑÔð 	0Ø+/ˆFÐ'Ñ(àFÐF¸XÐFÑFÔFˆð ˜Ô˜VÔ$¨Ò.Ð.ÝÐCÑDÔDÐDð"
ð "
Ý# MÑ2Ô2ð"
ñ "
ô "
Ðõ Ð%Ñ&Ô&¨!Ò+Ð+Ð0FÀqÔ0IÈQÒ0NÐ0NÝÐLÑMÔMÐMÝÐ'Ñ(Ô(¨1Ò,Ð,ÝÐLÑMÔMÐMà*ˆˆzÑàˆr9   Úllm_outputsúList[Optional[dict]]rA   c                ó&   — |d         €i S |d         S )Nr   r^   )r`   râ   s     r7   Ú_combine_llm_outputszChatTongyi._combine_llm_outputs‰  s   € Ø�qŒ>Ð!ØˆIØ˜1Œ~Ðr9   r‰   r+   c                óØ   — | d         d         d         }t          |d         |¬¦  «        }t          |t          |d         | d         t          | d         ¦  «        ¬	¦  «        ¬
¦  «        S )NÚoutputÚchoicesr   r@   rÌ   Úfinish_reasonÚ
request_idÚusage)ré   rê   Útoken_usage©r@   Úgeneration_info)r8   rA   )r‰   r+   Úchoicer@   s       r7   r½   z*ChatTongyi._chat_generation_from_qwen_respŽ  sy   € ð �h” 	Ô*¨1Ô-ˆÝ)¨&°Ô*;ÀhÐOÑOÔOˆÝØÝ Ø$ _Ô5Ø Ô-Ý   g¤Ñ/Ô/ðñ ô ð
ñ 
ô 
ð 	
r9   r®   r   r   c                óR   — t          t          | j        ¦  «        | j        ¬¦  «        S )Nrí   )r   r?   r@   rî   rÍ   s    r7   r»   zChatTongyi._chunk_to_generation�  s,   € åÝ4°U´]ÑCÔCØ!Ô1ð
ñ 
ô 
ð 	
r9   )r-   rZ   )r-   rf   )rs   r   r-   r   )r-   ri   )r�   r   r-   r   )NN)
r°   r±   rO   r²   r³   r´   r�   r   r-   r   )
r°   r±   rO   r²   r³   rÂ   r�   r   r-   r   )
r°   r±   rO   r²   r³   r´   r�   r   r-   rÈ   )
r°   r±   rO   r²   r³   rÂ   r�   r   r-   rÒ   )r°   r±   rO   r   r�   r   r-   ri   )râ   rã   r-   rA   ©F)r‰   r   r+   r,   r-   ri   )r®   r   r-   r   )rª   r«   r¬   Ú__doc__Úpropertyra   Ú__annotations__r   rg   rA   rj   rl   r\   rm   rR   rr   r   r{   r€   rŽ   r“   r¯   rÁ   rÇ   r¹   rÄ   r¼   rå   Ústaticmethodr½   r»   r^   r9   r7   rF   rF   �   s�  € € € € € € ðð ð ð:ð :ð :ñ „Xð:ð €K€K�KØ�e L¸Ð@Ñ@Ô@€JÐ@Ð@Ð@Ñ@àØ#( 5¸Ð#>Ñ#>Ô#>€LÐ>Ð>Ð>Ñ>à€EÐÐÐÑØDà-1ÐÐ1Ð1Ð1Ñ1Ø5à€IÐÐÐÑØ/à€KÐÐÐÑØ<àðð ð ñ „Xðð €^ÑÔðð ð ñ Ôðð. ð
ð 
ð 
ñ „Xð
ð	0ð 	0ð 	0ð 	0ð
7ð 
7ð 
7ð 
7ðð ð ð ðD %)Ø:>ð	 
ð  
ð  
ð  
ð  
ðJ %)Ø?Cð	#
ð #
ð #
ð #
ð #
ðP %)Ø:>ð	Fð Fð Fð Fð Fð* %)Ø?Cð	Lð Lð Lð Lð Lð$ð ð ð ð6ð ð ð ð
 à$)ð
ð 
ð 
ð 
ñ „\ð
ð ð
ð 
ð 
ñ „\ð
ð 
ð 
r9   rñ   )r)   r*   r+   r,   r-   r.   )r:   r   r-   r   )r@   r   r-   rA   )rE   rF   r-   rG   )<Ú
__future__r   r    rÅ   rT   Útypingr   r   r   r   r   r	   r
   r   r   Úlangchain_core.callbacksr   r   Ú*langchain_core.language_models.chat_modelsr   Úlangchain_core.messagesr   r   r   r   r   r   r   r   r   r   Úlangchain_core.outputsr   r   r   Úlangchain_core.pydantic_v1r   r   r   Úlangchain_core.utilsr    r!   Úrequests.exceptionsr"   Útenacityr#   r$   r%   r&   r'   Úlangchain_community.llms.tongyir(   Ú	getLoggerrª   rS   r8   r?   rD   rX   rF   r^   r9   r7   ú<module>r     sÙ  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðð ð ð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ Dðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 HÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ;Ð :Ð :Ð :Ð :Ð :à	ˆÔ	˜8Ñ	$Ô	$€ð 05ð
ð 
ð 
ð 
ð 
ð:
=ð 
=ð 
=ð 
=ðð ð ð ð"ð ð ð ða
ð a
ð a
ð a
ð a
�ñ a
ô a
ð a
ð a
ð a
r9   