Ë
    µŒ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 d dl	Z	d dl
mZ d dlmZ d dlmZ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ÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú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<   edd„«       Zedd„«       Zdd„Z	 	 d	 	 	 	 	 	 	 	 	 dd„Zedd„«       Zy) ÚBaichuanLLMzBaichuan large language models.zBaichuan2-Turbo-192kÚstrÚmodelg333333Ó?ÚfloatÚtemperaturegffffffî?Útop_pé<   ÚintÚtimeout)Údefault_factoryúDict[str, Any]Úmodel_kwargsNzOptional[str]Úbaichuan_api_hostzOptional[SecretStr]Úbaichuan_api_keyc                ó\   — t        t        |dd«      «      |d<   t        |ddd¬«      |d<   |S )Nr   ÚBAICHUAN_API_KEYr   ÚBAICHUAN_API_HOSTz/https://api.baichuan-ai.com/v1/chat/completions)Údefault)r
   r   )ÚclsÚvaluess     úk/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/baichuan.pyÚvalidate_environmentz BaichuanLLM.validate_environment"   sE   € ä%:Ü  Ð);Ð=OÓPó&
ˆÐ!Ñ"ô ';ØØØØEô	'
ˆÐ"Ñ#ð ˆó    c                ób   — | j                   | j                  | j                  dœ| j                  ¥S )N)r   r   r   )r   r   r   r   ©Úselfs    r%   Ú_default_paramszBaichuanLLM._default_params/   s5   € ð —Z‘ZØ×+Ñ+Ø—Z‘Zñ
ð ×Ñð	
ð 	
r'   c                óv  — dd| j                   j                  «       › �dœ}	 t        j                  | j                  ||| j
                  ¬«      }|j                  dk(  r-t        j                  |j                  «      }|d   d   d   d	   S |j                  «        y # t        $ r}t        d
|› �«      ‚d }~ww xY w)Nzapplication/jsonzBearer )zContent-TypeÚAuthorization)ÚheadersÚjsonr   éÈ   Úchoicesr   ÚmessageÚcontentzAn error has occurred: )r   Úget_secret_valueÚrequestsÚpostr   r   Ústatus_coder/   ÚloadsÚtextÚraise_for_statusÚ	ExceptionÚ
ValueError)r*   Úrequestr.   ÚresponseÚparsed_jsonÚes         r%   Ú_postzBaichuanLLM._post8   sº   € à.Ø& t×'<Ñ'<×'MÑ'MÓ'OÐ&PÐQñ
ˆð	<Ü—}‘}Ø×&Ñ&ØØØŸ™ô	ˆHð ×#Ñ# sÒ*Ü"Ÿj™j¨¯©Ó7�Ø" 9Ñ-¨aÑ0°Ñ;¸IÑFÐFà×)Ñ)Õ+øÜò 	<ÜÐ6°q°cÐ:Ó;Ð;ûð	<ús   ¢A(B ÂB Â	B8Â%B3Â3B8c                ó�   — | j                   }d|dœg|d<   |j                  |«       | j                  |«      }|�t        ||«      }|S )NÚuser)Úroler3   Úmessages)r+   ÚupdaterA   r   )r*   ÚpromptÚstopÚrun_managerÚkwargsr=   r9   s          r%   Ú_callzBaichuanLLM._callM   sR   € ð ×&Ñ&ˆØ(.¸6ÑBÐCˆ�
ÑØ�‰�vÔØ�z‰z˜'Ó"ˆØÐÜ& t¨TÓ2ˆDØˆr'   c                 ó   — y)zReturn type of chat_model.zbaichuan-llm© r)   s    r%   Ú	_llm_typezBaichuanLLM._llm_type\   s   € ð r'   )r$   r   Úreturnr   )rO   r   )r=   r   rO   r   )NN)
rG   r   rH   zOptional[List[str]]rI   z"Optional[CallbackManagerForLLMRun]rJ   r   rO   r   )rO   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   Údictr   r   r   r   r&   Úpropertyr+   rA   rK   rN   rM   r'   r%   r   r      sÖ   … á)à'€Eˆ3Ó'ðð €K�ÓØ€Eˆ5ÓØ€GˆSÓÙ#(¸Ô#>€L�.Ó>à'+Ð�}Ó+Ø,0ÐÐ)Ó0àò
ó ð
ð ò
ó ð
ó<ð0 %)Ø:>ð	àðð "ðð 8ð	ð
 ðð 
óð òó ñr'   r   )Ú
__future__r   r/   ÚloggingÚtypingr   r   r   r   r5   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.utilsr
   r   r   Úpydanticr   r   Úlangchain_community.llms.utilsr   Ú	getLoggerrP   Úloggerr   rM   r'   r%   Ú<module>ra      sI   ðÝ "ã Û ß ,Ó ,ã Ý =Ý 3ß VÑ Vß %å >à	ˆ×	Ñ	˜8Ó	$€ôM�#õ Mr'   