§
    ¦ìNg¤  ã                  óÆ   — 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dS )é    )Ú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_internationalÚkwargsr   c                ó|   •— t          t          |dd¦  «        ¦  «        |d<    t          ¦   «         j        di |¤Ž d S )Nr   Ú
YI_API_KEY© )r   r   ÚsuperÚ__init__)Úselfr"   Ú	__class__s     €úW/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/llms/yi.pyr'   zYiLLM.__init__    sK   ø€ Ý4Ý  ¨°|ÑDÔDñ 
ô  
ˆˆ|Ñð 	‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"ó    Úreturnc                ó:   — | j         | j        | j        dœ| j        ¥S )N)r   r   r   )r   r   r   r   ©r(   s    r*   Ú_default_paramszYiLLM._default_params&   s0   € ð ”ZØÔ+Ø”Zð
ð 
ð Ôð	
ð 	
r+   Úrequestc                ó‚  — dd| j                              ¦   «         › dœ}g }| j        dk    r	| j        g}n"| j        dk    r	| j        g}n| j        | j        g}|D ]×}	 t          j        |||| j        ¬¦  «        }|j        dk    r5t          j
        |j        ¦  «        }|d         d	         d
         d         c S |j        dk    r|                     ¦   «          Œ€# t
          j        $ rF}||d         k    rt          d|› ¦  «        ‚t                               d|› d¦  «         Y d }~ŒÐd }~ww xY wt          d¦  «        ‚)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_coder6   ÚloadsÚtextÚraise_for_statusÚRequestExceptionÚ
ValueErrorÚloggerÚwarning)r(   r0   r5   ÚurlsÚurlÚresponseÚparsed_jsonÚes           r*   Ú_postzYiLLM._post/   s  € à.ØK t¤×'GÒ'GÑ'IÔ'IÐKÐKð
ð 
ˆð
 ˆØŒ;˜*Ò$Ð$ØÔ,Ð-ˆDˆDØŒ[˜OÒ+Ð+ØÔ1Ð2ˆDˆDàÔ,¨dÔ.KÐLˆDàð 	ð 	ˆCðÝ#œ=ØØ#Ø Ø œLð	ñ ô ð Ô'¨3Ò.Ð.Ý"&¤*¨X¬]Ñ";Ô";KØ& yÔ1°!Ô4°YÔ?À	ÔJÐJÐJÐJàÔ(¨CÒ/Ð/à×-Ò-Ñ/Ô/Ð/øøÝÔ,ð ð ð Ø˜$˜rœ(’??Ý$Ð%B¸qÐ%BÐ%BÑCÔCÐCå—N’NÐ#Q¸3Ð#QÐ#QÐ#QÑRÔRÐRØHHHHøøøøðøøøõ ÐBÑCÔCÐCs   ÁACÂ:CÃD/Ã)<D*Ä*D/ÚpromptÚstopúOptional[List[str]]Úrun_managerú"Optional[CallbackManagerForLLMRun]c                óž   — | j         }d|dœg|d<   |                     |¦  «         |                      |¦  «        }|t          ||¦  «        }|S )NÚuser)Úroler:   Úmessages)r/   ÚupdaterL   r   )r(   rM   rN   rP   r"   r0   rA   s          r*   Ú_callzYiLLM._callV   s^   € ð Ô&ˆØ(.¸6ÐBÐBÐCˆ
ÑØŠvÑÔÐØzŠz˜'Ñ"Ô"ˆØÐÝ& t¨TÑ2Ô2ˆDØˆr+   c                ó   — dS )zReturn type of chat_model.zyi-llmr%   r.   s    r*   Ú	_llm_typezYiLLM._llm_typee   s	   € ð ˆxr+   )r"   r   )r,   r   )r0   r   r,   r   )NN)
rM   r   rN   rO   rP   rQ   r"   r   r,   r   )r,   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   r   r   Údictr   r   r   r    r!   r'   Úpropertyr/   rL   rW   rY   Ú__classcell__)r)   s   @r*   r   r      sg  ø€ € € € € € Ø#Ð#à€EÐÐÐÑØ€KÐÐÐÑØ€EÐÐÐÑØ€GÐÐÐÑØ#( 5¸Ð#>Ñ#>Ô#>€LÐ>Ð>Ð>Ñ>à&*€JÐ*Ð*Ð*Ñ*Ø;A€FÐAÐAÐAÑAØPÐÐPÐPÐPÑPØ$KÐÐKÐKÐKÑKð#ð #ð #ð #ð #ð #ð ð
ð 
ð 
ñ „Xð
ð%Dð %Dð %Dð %DðT %)Ø:>ð	ð ð ð ð ð ðð ð ñ „Xðð ð ð ð r+   r   )Ú
__future__r   r6   Ú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   Ú	getLoggerrZ   rE   r   r%   r+   r*   ú<module>rk      s  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à €€€Ø =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à >Ð >Ð >Ð >Ð >Ð >à	ˆÔ	˜8Ñ	$Ô	$€ðVð Vð Vð Vð VˆCñ Vô Vð Vð Vð Vr+   