Ë
    µŒj/  ã                   ó’  — d dl Z d dl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 d dlZd dlmZmZ d dlmZmZm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!m"Z" d dl#m$Z$m%Z%m&Z& d d	l'm(Z(m)Z)m*Z*  ejV                  e,«      Z-d
Z.dZ/dede0fd„Z1de
e2ef   defd„Z3de
e2ef   dee   defd„Z4edede2de2dedef
d„«       Z5 G d„ de«      Z6y)é    N)Úasynccontextmanager)ÚAnyÚAsyncIteratorÚDictÚIteratorÚListÚMappingÚOptionalÚType)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseChatModelÚagenerate_from_streamÚgenerate_from_stream)	Ú	AIMessageÚAIMessageChunkÚBaseMessageÚBaseMessageChunkÚChatMessageÚChatMessageChunkÚHumanMessageÚHumanMessageChunkÚSystemMessage)ÚChatGenerationÚChatGenerationChunkÚ
ChatResult)Úconvert_to_secret_strÚget_from_dict_or_envÚget_pydantic_field_names)Ú
ConfigDictÚFieldÚ	SecretStrz/https://api.lingyiwanwu.com/v1/chat/completionsz%https://api.01.ai/v1/chat/completionsÚmessageÚreturnc                 ó:  — t        | t        «      r| j                  | j                  dœ}|S t        | t        «      rd| j                  dœ}|S t        | t
        «      rd| j                  dœ}|S t        | t        «      rd| j                  dœ}|S t        d| › �«      ‚)N)ÚroleÚcontentÚuserÚ	assistantzGot unknown type )Ú
isinstancer   r&   r'   r   r   r   Ú	TypeError)r#   Úmessage_dicts     úl/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/chat_models/yi.pyÚ_convert_message_to_dictr.   )   s¡   € ä�'œ;Ô'Ø '§¡¸¿¹ÑIˆð Ðô 
�Gœ\Ô	*Ø &°7·?±?ÑCˆð Ðô 
�GœYÔ	'Ø +¸¿¹ÑHˆð Ðô 
�Gœ]Ô	+Ø +¸¿¹ÑHˆð Ðô Ð+¨G¨9Ð5Ó6Ð6ó    Ú_dictc                 óÆ   — | d   }|dk(  rt        | d   ¬«      S |dk(  r t        | j                  dd«      xs d¬«      S |dk(  rt        | d   ¬«      S t        | d   |¬«      S )	Nr&   r(   r'   ©r'   r)   Ú Úsystem©r'   r&   )r   r   Úgetr   )r0   r&   s     r-   Ú_convert_dict_to_messager7   9   so   € Ø�‰=€DØˆv‚~Ü E¨)Ñ$4Ô5Ð5Ø	�Ò	Ü §¡¨9°bÓ!9Ò!?¸RÔ@Ð@Ø	�Ò	Ü  yÑ!1Ô2Ð2ä 5¨Ñ#3¸$Ô?Ð?r/   Údefault_classc                 óâ   — | d   }| j                  d«      xs d}|dk(  s	|t        k(  rt        |¬«      S |dk(  s	|t        k(  rt        |¬«      S |s	|t        k(  rt        ||¬«      S  |||¬«      S )	Nr&   r'   r3   r(   r2   r)   r5   )r'   Útype)r6   r   r   r   )r0   r8   r&   r'   s       r-   Ú_convert_delta_to_message_chunkr;   E   sy   € ð �f‘€DØ�i‰i˜	Ó"Ò( b€Gàˆv‚~˜Ô*;Ò;Ü ¨Ô1Ð1Ø	�Ò	 ´Ò ?Ü gÔ.Ð.Ù	�Ô"2Ò2Ü¨°dÔ;Ð;á W°4Ô8Ð8r/   ÚclientÚmethodÚurlÚkwargsc                óº   K  — ddl m}  | j                  ||fi |¤Ž4 ƒd {  –—† } ||«      ­–— d d d «      ƒd {  –—†  y 7 Œ 7 Œ# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   )ÚEventSource)Ú	httpx_sserA   Ústream)r<   r=   r>   r?   rA   Úresponses         r-   Úaconnect_httpx_sserE   U   sI   è ø€ õ &àˆv�}‰}˜V SÑ3¨F×3Ò3°xÙ˜(Ó#Ó#÷ 4×3Ñ3øÐ3ø×3×3Ñ3üsA   ‚A¡A¢A¥A±A¼A½AÁAÁAÁAÁAÁAc                   ó  ‡ — e Zd ZU dZedeeef   fd„«       Zedefd„«       Z	 e
e¬«      Zeed<    e
d¬«      Zeed	<    e
d
¬«      Zeed<   dZeed<    e
dd¬«      Zeed<   dZeed<    e
d¬«      Zee   ed<   dZeed<    e
e¬«      Zeeef   ed<    ed¬«      Zdeddfˆ fd„Zedeeef   fd„«       Z	 	 d-de e!   d ee e      d!ee"   dede#f
d"„Z$	 	 d-de e!   d ee e      d!ee"   dede%e&   f
d#„Z'	 	 	 d.de e!   d ee e      d!ee(   d$ee   dede#fd%„Z)	 	 d-de e!   d ee e      d!ee(   dede*e&   f
d&„Z+de e!   dede,jZ                  fd'„Z.de e!   dedeeef   fd(„Z/dedeeef   fd)„Z0d*e1eef   de#fd+„Z2edefd,„«       Z3ˆ xZ4S )/ÚChatYizYi chat models API.r$   c                 ó
   — ddiS )NÚ
yi_api_keyÚ
YI_API_KEY© ©Úselfs    r-   Ú
lc_secretszChatYi.lc_secretsb   s   € ð ˜,ð
ð 	
r/   c                  ó   — y)NTrK   rL   s    r-   Úlc_serializablezChatYi.lc_serializableh   s   € àr/   )ÚdefaultÚyi_api_baseÚapi_key)ÚaliasrI   ÚcnÚregionFÚ	streamingé<   Útimeout)rQ   rT   Úrequest_timeoutzyi-largeÚmodelçffffffæ?ÚtemperatureÚtop_p)Údefault_factoryÚmodel_kwargsT)Úpopulate_by_namer?   Nc                 ó  •— t        t        |ddgd«      «      |d<   |j                  d«      €8|j                  dd«      j                  «       }|dk(  r
t        |d<   n	t
        |d<   t        | j                  «      }|j                  di «      }t        |«      D ].  }||v rt        d	|› d
�«      ‚||vsŒ|j                  |«      ||<   Œ0 |j                  |j                  «       «      }|rt        d|› d�«      ‚||d<   t        ‰| �8  di |¤Ž y )NrI   rS   rJ   rR   rV   rU   Úglobalr`   zFound z supplied twice.zParameters za should be specified explicitly. Instead they were passed in as part of `model_kwargs` parameter.rK   )r   r   r6   ÚlowerÚDEFAULT_API_BASE_GLOBALÚDEFAULT_API_BASE_CNr   Ú	__class__ÚlistÚ
ValueErrorÚpopÚintersectionÚkeysÚsuperÚ__init__)rM   r?   rV   Úall_required_field_namesÚextraÚ
field_nameÚinvalid_model_kwargsrg   s          €r-   rn   zChatYi.__init__z   s.  ø€ Ü4Ü ØØ˜yÐ)Øóó 
ˆˆ|Ñð �:‰:�mÓ$Ð,Ø—Z‘Z ¨$Ó/×5Ñ5Ó7ˆFØ˜Ò!Ü(?��}Ò%ä(;��}Ñ%ä#;¸D¿N¹NÓ#KÐ Ø—
‘
˜>¨2Ó.ˆÜ˜vž,ˆJØ˜UÑ"Ü  6¨*¨Ð5EÐ!FÓGÐGØÐ!9Ò9Ø$*§J¡J¨zÓ$:��jÒ!ð	 'ð  8×DÑDÀUÇZÁZÃ\ÓRÐÙÜØÐ2Ð3ð 4Sð Tóð ð
 "'ˆˆ~ÑÜ‰ÑÑ"˜6Ó"r/   c                 ó`   — | j                   | j                  | j                  | j                  dœS )N)r[   r]   r^   rC   )r[   r]   r^   rW   rL   s    r-   Ú_default_paramszChatYi._default_params›   s,   € ð —Z‘ZØ×+Ñ+Ø—Z‘ZØ—n‘nñ	
ð 	
r/   ÚmessagesÚstopÚrun_managerc                 óþ   — | j                   r! | j                  d|||dœ|¤Ž}t        |«      S  | j                  |fi |¤Ž}|j                  dk7  rt        d|› �«      ‚|j                  «       }| j                  |«      S )N)ru   rv   rw   éÈ   úError from Yi api response: rK   )rW   Ú_streamr   Ú_chatÚstatus_coderi   ÚjsonÚ_create_chat_result)rM   ru   rv   rw   r?   Ústream_iterÚresrD   s           r-   Ú	_generatezChatYi._generate¤   sŒ   € ð �>Š>Ø&˜$Ÿ,™,ð Ø!¨¸+ñØIOñˆKô (¨Ó4Ð4àˆd�j‰j˜Ñ, VÑ,ˆØ�?‰?˜cÒ!ÜÐ;¸C¸5ÐAÓBÐBØ—8‘8“:ˆØ×'Ñ'¨Ó1Ð1r/   c              +   ó\  K  —  | j                   |fddi|¤Ž}|j                  dk7  rt        d|› �«      ‚t        }|j	                  «       D ]Ý  }|j                  d«      j                  d«      }|j                  dd«      }t        |«      dkD  r|d   nd }|€ŒM|d	k(  r y t        j                  |«      }	|	j                  d
«      D ]a  }
t        |
j                  d«      |«      }|j                  }t        |¬«      }|r&|j                  t!        |j"                  «      |¬«       |–— Œc Œß y ­w)NrC   Try   rz   zutf-8z
zdata: é   z[DONE]ÚchoicesÚdelta©r#   ©Úchunk)r|   r}   ri   r   Ú
iter_linesÚdecodeÚstripÚsplitÚlenr~   Úloadsr6   r;   rg   r   Úon_llm_new_tokenÚstrr'   )rM   ru   rv   rw   r?   r�   Údefault_chunk_classr‰   ÚpartsrD   ÚmÚcg_chunks               r-   r{   zChatYi._stream·   s  è ø€ ð ˆd�j‰j˜Ñ9¨$Ð9°&Ñ9ˆØ�?‰?˜cÒ!ÜÐ;¸C¸5ÐAÓBÐBÜ6DÐØ—^‘^Ö%ˆEØ—L‘L Ó)×/Ñ/°Ó7ˆEØ—K‘K ¨!Ó,ˆEÜ # E£
¨Q¢�E˜!’H°DˆEØˆ}ØØ˜Ò ÙÜ—z‘z %Ó(ˆHØ—\‘\ )Ö,�Ü7Ø—E‘E˜'“NÐ$7ó�ð ',§o¡oÐ#Ü.°uÔ=�ÙØ×0Ñ0´°U·]±]Ó1CÈ8Ð0ÔTØ“ñ -ñ &ùs   ‚D*D,rC   c              ‹   ó   K  — |�|n| j                   }|r) | j                  |f||dœ|¤Ž}t        |«      ƒ d {  –—† S  | j                  di |¤Ž} | j                  |fi |¤Ž}	dd l}
|
j                  || j                  ¬«      4 ƒd {  –—† }|j                  | j                  |	¬«      ƒ d {  –—† }|j                  «        d d d «      ƒd {  –—†  | j                  j                  «       «      S 7 Œ·7 Œj7 ŒG7 Œ)# 1 ƒd {  –—†7  sw Y   Œ9xY w­w)N)rv   rw   r   ©ÚheadersrY   ©r~   rK   )rW   Ú_astreamr   Ú_create_headers_parametersÚ_create_payload_parametersÚhttpxÚAsyncClientrZ   ÚpostrR   Úraise_for_statusr   r~   )rM   ru   rv   rw   rC   r?   Úshould_streamr€   r˜   Úpayloadr�   r<   rD   s                r-   Ú
_ageneratezChatYi._agenerateÕ   s  è ø€ ð #)Ð"4™¸$¿.¹.ˆÙØ'˜$Ÿ-™-ØðØ#°ñØ@FñˆKô /¨{Ó;×;Ð;à1�$×1Ñ1Ñ;°FÑ;ˆØ1�$×1Ñ1°(ÑE¸fÑEˆãà×$Ñ$Ø T×%9Ñ%9ð %÷ 
ô 
àØ#Ÿ[™[¨×)9Ñ)9À˜[ÓH×HˆHØ×%Ñ%Ô'÷	
÷ 
ð
 ×'Ñ'¨¯©«Ó8Ð8ð <øð
øð Iøð
ø÷ 
÷ 
ñ 
üsj   ‚7D¹C1ºADÂC3Â	DÂ!C9Â-C5Â.C9ÃDÃC7Ã$DÃ3DÃ5C9Ã7DÃ9DÃ?DÄ DÄDc                ó  K  —  | j                   di |¤Ž} | j                  |fddi|¤Ž}dd l}|j                  || j                  ¬«      4 ƒd {  –—† }t        |d| j                  |¬«      4 ƒd {  –—† }	|	j                  «       2 3 d {  –—† }
t        j                  |
j                  «      }t        |d   «      dk(  rŒ:|d   d   }t        |d   t        «      }|j                  d	d «      }|�d	|ind }t        ||¬
«      }|r%|j!                  |j"                  |¬«      ƒ d {  –—†  |­–— |€Œ« d d d «      ƒd {  –—†  d d d «      ƒd {  –—†  y 7 �Œ7 Œä7 ŒÍ7 Œ56 Œ,7 Œ # 1 ƒd {  –—†7  sw Y   Œ0xY w7 Œ'# 1 ƒd {  –—†7  sw Y   y xY w­w)NrC   Tr   r—   ÚPOSTr™   r…   r†   Úfinish_reason)r#   Úgeneration_inforˆ   rK   )r›   rœ   r�   rž   rZ   rE   rR   Ú	aiter_sser~   r�   ÚdatarŽ   r;   r   r6   r   r�   Útext)rM   ru   rv   rw   r?   r˜   r¢   r�   r<   Úevent_sourceÚsser‰   Úchoicer¦   r§   s                  r-   rš   zChatYi._astreamð   s¨  è ø€ ð 2�$×1Ñ1Ñ;°FÑ;ˆØ1�$×1Ñ1°(ÑRÀ4ÐRÈ6ÑRˆÛà×$Ñ$Ø T×%9Ñ%9ð %÷ 
ô 
àÜ)Ø˜ × 0Ñ 0°w÷õ àØ!-×!7Ñ!7Ô!9÷ ˜#Ü ŸJ™J s§x¡xÓ0�EÜ˜5 Ñ+Ó,°Ò1Ø Ø" 9Ñ-¨aÑ0�FÜ;Ø˜w™¬ó�Eð %+§J¡J¨ÀÓ$E�Mð )Ð4ð )¨-Ñ8à!ð $ô
 0Ø %°ô�Eñ #Ø)×:Ñ:¸5¿:¹:ÈUÐ:ÓS×SÐSØ“KØ$Ñ0Ø÷3÷ ÷
÷ 
ñ 
ùðøðøð& Tøð' ":øðø÷ ÷ ñ úð
ø÷ 
÷ 
ñ 
üsÍ   ‚AFÁEÁFÁE7Á1EÁ2E7Á5E ÂEÂ
E
ÂEÂBE Ä$E
Ä%E Ä1E Ä2E7Ä=EÄ>E7ÅFÅE5ÅFÅE7ÅEÅE ÅE ÅE7Å E2	Å&E)Å'E2	Å.E7Å5FÅ7F	Å=F Å>F	ÆFc                 óÄ   —  | j                   |fi |¤Ž}| j                  } | j                  di |¤Ž}t        j                  || j
                  ||| j                  ¬«      }|S )N)r>   rY   r˜   r~   rC   rK   )rœ   rR   r›   ÚrequestsrŸ   rZ   rW   )rM   ru   r?   r¢   r>   r˜   r�   s          r-   r|   zChatYi._chat  sg   € Ø1�$×1Ñ1°(ÑE¸fÑEˆØ×ÑˆØ1�$×1Ñ1Ñ;°FÑ;ˆä�m‰mØØ×(Ñ(ØØØ—>‘>ô
ˆð ˆ
r/   c                 óü   — i | j                   ¥|¥}|j                  dd«      }|j                  dd«      }|j                  d«      }|j                  dd«      }||D �cg c]  }t        |«      ‘Œ c}|||dœ}	|	S c c}w )Nr]   r\   r^   r[   rC   F)r[   ru   r^   r]   rC   )rt   rj   r.   )
rM   ru   r?   Ú
parametersr]   r^   r[   rC   r”   r¢   s
             r-   rœ   z!ChatYi._create_payload_parameters'  s‘   € ð 8˜×,Ñ,Ð7°Ð7ˆ
Ø —n‘n ]°CÓ8ˆØ—‘˜w¨Ó,ˆØ—‘˜wÓ'ˆØ—‘ ¨%Ó0ˆð Ù>FÓG¹h¸Ô1°!Õ4¸hÑGØØ&Øñ
ˆð ˆùò Hs   ÁA9c                 ó®   — i | j                   ¥|¥}|j                  di «      }d}| j                  r| j                  j                  «       }dd|› �dœ|¥}|S )Nr˜   r3   zapplication/jsonzBearer )zContent-TypeÚAuthorization)rt   rj   rI   Úget_secret_value)rM   r?   r±   Údefault_headersrS   r˜   s         r-   r›   z!ChatYi._create_headers_parameters9  sl   € Ø7˜×,Ñ,Ð7°Ð7ˆ
Ø$Ÿ.™.¨°BÓ7ˆØˆØ�?Š?Ø—o‘o×6Ñ6Ó8ˆGð /Ø& w iÐ0ñ
ð ð
ˆð
 ˆr/   rD   c                 ó²   — g }|d   D ]-  }t        |d   «      }t        |¬«      }|j                  |«       Œ/ |d   }|| j                  dœ}t	        ||¬«      S )Nr…   r#   r‡   Úusage)Útoken_usager[   )ÚgenerationsÚ
llm_output)r7   r   Úappendr[   r   )rM   rD   r¹   Úcr#   Úgenr¸   rº   s           r-   r   zChatYi._create_chat_resultG  sc   € ØˆØ˜)Ô$ˆAÜ.¨q°©|Ó<ˆGÜ ¨Ô1ˆCØ×Ñ˜sÕ#ð %ð
 ˜wÑ'ˆØ%0¸4¿:¹:ÑFˆ
Ü k¸jÔIÐIr/   c                  ó   — y)Nzyi-chatrK   rL   s    r-   Ú	_llm_typezChatYi._llm_typeR  s   € àr/   )NN)NNN)5Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr   r‘   rN   ÚboolrP   r!   rf   rR   Ú__annotations__rI   r"   rV   rW   rZ   Úintr[   r]   r
   Úfloatr^   Údictr`   r   r    Úmodel_configrn   rt   r   r   r   r   r‚   r   r   r{   r   r£   r   rš   r¯   ÚResponser|   rœ   r›   r	   r   r¿   Ú__classcell__)rg   s   @r-   rG   rG   _   s  ø… Ùàð
˜D  c ™Nò 
ó ð
ð
 ð ò ó ðñ Ð%8Ô9€K�Ó9Ù!¨	Ô2€J�	Ó2Ù Ô%€FˆCÓ%Ø€IˆtÓÙ ¨°9Ô=€O�SÓ=Ø€Eˆ3ÓÙ#(°Ô#5€K�˜%‘Ó5Ø€Eˆ5ÓÙ#(¸Ô#>€L�$�s˜C�x‘.Ó>áØô€Lð# ð #¨õ #ðB ð
  c¨3 h¡ò 
ó ð
ð %)Ø:>ñ	2à�{Ñ#ð2ð �t˜C‘yÑ!ð2ð Ð6Ñ7ð	2ð
 ð2ð 
ó2ð, %)Ø:>ñ	à�{Ñ#ðð �t˜C‘yÑ!ðð Ð6Ñ7ð	ð
 ðð 
Ð%Ñ	&óðB %)Ø?CØ!%ñ9à�{Ñ#ð9ð �t˜C‘yÑ!ð9ð Ð;Ñ<ð	9ð
 ˜‘ð9ð ð9ð 
ó9ð< %)Ø?Cñ	'à�{Ñ#ð'ð �t˜C‘yÑ!ð'ð Ð;Ñ<ð	'ð
 ð'ð 
Ð*Ñ	+ó'ðR˜d ;Ñ/ð ¸3ð À8×CTÑCTó ðØ˜[Ñ)ðØ58ðà	ˆc�3ˆh‰óð$°3ð ¸4ÀÀSÀ¹>ó ð	J¨G°C¸°HÑ,=ð 	JÀ*ó 	Jð ð˜3ò ó ôr/   rG   )7r~   ÚloggingÚ
contextlibr   Útypingr   r   r   r   r   r	   r
   r   r¯   Úlangchain_core.callbacksr   r   Ú*langchain_core.language_models.chat_modelsr   r   r   Úlangchain_core.messagesr   r   r   r   r   r   r   r   r   Úlangchain_core.outputsr   r   r   Úlangchain_core.utilsr   r   r   Úpydanticr    r!   r"   Ú	getLoggerrÀ   Úloggerrf   re   rÉ   r.   r‘   r7   r;   rE   rG   rK   r/   r-   Ú<module>rØ      s  ðÛ Û Ý *ß T× TÓ Tã ÷÷ñ ÷

÷ 
õ 
÷ SÑ R÷ñ ÷
 2Ñ 1à	ˆ×	Ñ	˜8Ó	$€àGÐ ØAÐ ð kð °dó ð 	@ G¨C°¨HÑ$5ð 	@¸+ó 	@ð9Ø�3˜�8Ñð9Ø-1Ð2BÑ-Cð9àó9ð  ð$Øð$Øð$Ø#&ð$Ø25ð$àò$ó ð$ôuˆ]õ ur/   