Ë
    µŒj°  ã                  óÂ   — d dl mZ d dlZd dlZd dlmZmZmZmZm	Z	 d dl
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 d dlmZ  ej.                  e«      Z G d	„ d
e«      Zy)é    )ÚannotationsN)ÚAnyÚDictÚListÚLiteralÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_env)ÚFieldÚ	SecretStr)Úenforce_stop_tokensc                  óþ   ‡ — 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<    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<   dˆ fd„Zed d„«       Zd!d„Z	 	 d"	 	 	 	 	 	 	 	 	 d#d„Zed$d„«       Zˆ xZS )%ÚYiLLMzYi large language models.zyi-largeÚstrÚmodelg333333Ó?ÚfloatÚtemperaturegffffffî?Útop_pé<   ÚintÚtimeout)Údefault_factoryúDict[str, Any]Úmodel_kwargsNzOptional[SecretStr]Ú
yi_api_keyÚautoz,Literal['auto', 'domestic', 'international']Úregionz/https://api.lingyiwanwu.com/v1/chat/completionsÚyi_api_url_domesticz%https://api.01.ai/v1/chat/completionsÚyi_api_url_internationalc                óV   •— t        t        |dd«      «      |d<   t        ‰| �  di |¤Ž y )Nr   Ú
YI_API_KEY© )r   r   ÚsuperÚ__init__)ÚselfÚkwargsÚ	__class__s     €úe/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/yi.pyr&   zYiLLM.__init__    s0   ø€ Ü4Ü  ¨°|ÓDó 
ˆˆ|Ñô 	‰ÑÑ"˜6Ó"ó    c                ób   — | j                   | j                  | j                  dœ| j                  ¥S )N)r   r   r   )r   r   r   r   ©r'   s    r*   Ú_default_paramszYiLLM._default_params&   s5   € ð —Z‘ZØ×+Ñ+Ø—Z‘Zñ
ð ×Ñð	
ð 	
r+   c                ó®  — dd| j                   j                  «       › �dœ}g }| j                  dk(  r| j                  g}n5| j                  dk(  r| j                  g}n| j                  | j                  g}|D ]ƒ  }	 t        j                  |||| j                  ¬«      }|j                  dk(  r/t        j                  |j                  «      }|d   d	   d
   d   c S |j                  dk7  r|j                  «        Œ… t        d«      ‚# t
        j                  $ r9}||d   k(  rt        d|› �«      ‚t        j!                  d|› d�«       Y d }~ŒØd }~ww xY w)Nzapplication/jsonzBearer )zContent-TypeÚAuthorizationÚdomesticÚinternational)ÚheadersÚjsonr   éÈ   Úchoicesr   ÚmessageÚcontenti“  éÿÿÿÿzAn error has occurred: zFailed to connect to z, trying next URLz'Failed to connect to all available URLs)r   Úget_secret_valuer   r    r!   ÚrequestsÚpostr   Ústatus_coder4   ÚloadsÚtextÚraise_for_statusÚRequestExceptionÚ
ValueErrorÚloggerÚwarning)r'   Úrequestr3   ÚurlsÚurlÚresponseÚparsed_jsonÚes           r*   Ú_postzYiLLM._post/   sW  € à.Ø& t§¡×'GÑ'GÓ'IÐ&JÐKñ
ˆð
 ˆØ�;‰;˜*Ò$Ø×,Ñ,Ð-‰DØ�[‰[˜OÒ+Ø×1Ñ1Ð2‰Dà×,Ñ,¨d×.KÑ.KÐLˆDãˆCðÜ#Ÿ=™=ØØ#Ø Ø ŸL™Lô	�ð ×'Ñ'¨3Ò.Ü"&§*¡*¨X¯]©]Ó";�KØ& yÑ1°!Ñ4°YÑ?À	ÑJÒJà×(Ñ(¨CÒ/à×-Ñ-Ô/øð ô. ÐBÓCÐCøô ×,Ñ,ò Ø˜$˜r™(’?Ü$Ð'>¸q¸cÐ%BÓCÐCä—N‘NÐ%:¸3¸%Ð?PÐ#QÔRÜûðús   Á;ADÃDÄEÄ/EÅEc                ó�   — | j                   }d|dœg|d<   |j                  |«       | j                  |«      }|�t        ||«      }|S )NÚuser)Úroler8   Úmessages)r.   ÚupdaterK   r   )r'   ÚpromptÚstopÚrun_managerr(   rE   r?   s          r*   Ú_callzYiLLM._callV   sR   € ð ×&Ñ&ˆØ(.¸6ÑBÐCˆ�
ÑØ�‰�vÔØ�z‰z˜'Ó"ˆØÐÜ& t¨TÓ2ˆDØˆr+   c                 ó   — y)zReturn type of chat_model.zyi-llmr$   r-   s    r*   Ú	_llm_typezYiLLM._llm_typee   s   € ð r+   )r(   r   )Úreturnr   )rE   r   rW   r   )NN)
rQ   r   rR   zOptional[List[str]]rS   z"Optional[CallbackManagerForLLMRun]r(   r   rW   r   )rW   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   Údictr   r   r   r    r!   r&   Úpropertyr.   rK   rT   rV   Ú__classcell__)r)   s   @r*   r   r      sÚ   ø… Ù#à€Eˆ3ÓØ€K�ÓØ€Eˆ5ÓØ€GˆSÓÙ#(¸Ô#>€L�.Ó>à&*€JÐ#Ó*Ø;A€FÐ8ÓAØPÐ˜ÓPØ$KÐ˜cÓKõ#ð ò
ó ð
ó%DðT %)Ø:>ð	àðð "ðð 8ð	ð
 ðð 
óð òó ôr+   r   )Ú
__future__r   r4   ÚloggingÚtypingr   r   r   r   r   r;   Úlangchain_core.callbacksr	   Ú#langchain_core.language_models.llmsr
   Úlangchain_core.utilsr   r   Úpydanticr   r   Úlangchain_community.llms.utilsr   Ú	getLoggerrX   rC   r   r$   r+   r*   Ú<module>ri      sF   ðÝ "ã Û ß 5Õ 5ã Ý =Ý 3ß Lß %å >à	ˆ×	Ñ	˜8Ó	$€ôVˆCõ Vr+   