§
    šŠtjË  ã                  óÆ   — 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dS )é    )Ú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dS )+Ú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_keyÚvaluesr   Úreturnc                ót   — 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   )Úclsr   s     ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/baichuan.pyÚvalidate_environmentz BaichuanLLM.validate_environment"   sW   € å%:Ý  Ð);Ð=OÑPÔPñ&
ô &
ˆÐ!Ñ"õ ';ØØØØEð	'
ñ '
ô '
ˆÐ"Ñ#ð ˆó    c                ó:   — | j         | j        | j        dœ| j        ¥S )N)r   r   r   )r   r   r   r   ©Úselfs    r&   Ú_default_paramszBaichuanLLM._default_params/   s0   € ð ”ZØÔ+Ø”Zð
ð 
ð Ôð	
ð 	
r(   Úrequestr   c                óv  — dd| j                              ¦   «         › �dœ}	 t          j        | j        ||| j        ¬¦  «        }|j        dk    r3t          j        |j	        ¦  «        }|d         d         d         d	         S | 
                    ¦   «          d S # 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_coder1   ÚloadsÚtextÚraise_for_statusÚ	ExceptionÚ
ValueError)r+   r-   r0   ÚresponseÚparsed_jsonÚes         r&   Ú_postzBaichuanLLM._post8   sà   € à.ØQ tÔ'<×'MÒ'MÑ'OÔ'OÐQÐQð
ð 
ˆð	<Ý”}ØÔ&ØØØœð	ñ ô ˆHð Ô# sÒ*Ð*Ý"œj¨¬Ñ7Ô7�Ø" 9Ô-¨aÔ0°Ô;¸IÔFÐFà×)Ò)Ñ+Ô+Ð+Ð+Ð+øÝð 	<ð 	<ð 	<ÝÐ:°qÐ:Ð:Ñ;Ô;Ð;øøøøð	<øøøs   ¡AB ÂB Â
B8Â!B3Â3B8ÚpromptÚstopúOptional[List[str]]Úrun_managerú"Optional[CallbackManagerForLLMRun]Úkwargsc                óž   — | j         }d|dœg|d<   |                     |¦  «         |                      |¦  «        }|�t          ||¦  «        }|S )NÚuser)Úroler5   Úmessages)r,   ÚupdaterB   r   )r+   rC   rD   rF   rH   r-   r;   s          r&   Ú_callzBaichuanLLM._callM   s^   € ð Ô&ˆØ(.¸6ÐBÐBÐCˆ�
ÑØ�Š�vÑÔÐØ�zŠz˜'Ñ"Ô"ˆØÐÝ& t¨TÑ2Ô2ˆDØˆr(   c                ó   — dS )zReturn type of chat_model.zbaichuan-llm© r*   s    r&   Ú	_llm_typezBaichuanLLM._llm_type\   s	   € ð ˆ~r(   )r   r   r    r   )r    r   )r-   r   r    r   )NN)
rC   r   rD   rE   rF   rG   rH   r   r    r   )r    r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   Údictr   r   r   r   r'   Úpropertyr,   rB   rN   rQ   rP   r(   r&   r   r      s<  € € € € € € à)Ð)à'€EÐ'Ð'Ð'Ñ'ðð €KÐÐÐÑØ€EÐÐÐÑØ€GÐÐÐÑØ#( 5¸Ð#>Ñ#>Ô#>€LÐ>Ð>Ð>Ñ>à'+ÐÐ+Ð+Ð+Ñ+Ø,0ÐÐ0Ð0Ð0Ñ0àð
ð 
ð 
ñ „Xð
ð ð
ð 
ð 
ñ „Xð
ð<ð <ð <ð <ð0 %)Ø:>ð	ð ð ð ð ð ðð ð ñ „Xðð ð r(   r   )Ú
__future__r   r1   ÚloggingÚtypingr   r   r   r   r7   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.utilsr
   r   r   Úpydanticr   r   Úlangchain_community.llms.utilsr   Ú	getLoggerrR   Úloggerr   rP   r(   r&   ú<module>rc      s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à €€€Ø =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à >Ð >Ð >Ð >Ð >Ð >à	ˆÔ	˜8Ñ	$Ô	$€ðMð Mð Mð Mð M�#ñ Mô Mð Mð Mð Mr(   