
    dh                        S SK Jr  S SKrS SKrS SKJrJrJrJrJ	r	  S SK
r
S SKJr  S SKJr  S SKJrJr  S SKJrJr  S SKJr  \R.                  " \5      r " S	 S
\5      rg)    )annotationsN)AnyDictListLiteralOptional)CallbackManagerForLLMRun)LLM)convert_to_secret_strget_from_dict_or_env)Field	SecretStr)enforce_stop_tokensc                    ^  \ rS rSr% SrSrS\S'   SrS\S'   S	rS\S
'   Sr	S\S'   \
" \S9rS\S'   SrS\S'   SrS\S'   SrS\S'   SrS\S'   S!U 4S jjr\S"S j5       rS#S jr  S$         S%S jjr\S&S j5       rS rU =r$ )'YiLLM   z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                X   > [        [        USS5      5      US'   [        TU ]  " S0 UD6  g )Nr   
YI_API_KEY )r   r   super__init__)selfkwargs	__class__s     S/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/llms/yi.pyr'   YiLLM.__init__    s0    4 |D 
| 	"6"    c                b    U R                   U R                  U R                  S.U R                  E$ )N)r   r   r   )r   r   r   r   r(   s    r+   _default_paramsYiLLM._default_params&   s5     ZZ++ZZ
 	
 	
r-   c                   SSU R                   R                  5        3S.n/ nU R                  S:X  a  U R                  /nO6U R                  S:X  a  U R                  /nOU R                  U R                  /nU H  n [
        R                  " UUUU R                  S9nUR                  S:X  a0  [        R                  " UR                  5      nUS   S	   S
   S   s  $ UR                  S:w  a  UR                  5         M  M     [        S5      e! [
        R                   a:  nXCS   :X  a  [        SU 35      e[        R!                  SU S35         S nAM  S nAff = f)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_coder7   loadstextraise_for_statusRequestException
ValueErrorloggerwarning)r(   requestr6   urlsurlresponseparsed_jsones           r+   _postYiLLM._post/   sY   .&t'G'G'I&JK

 ;;*$,,-D[[O+112D,,d.K.KLDC#==#  LL	 ''3."&**X]]";K&y1!4Y?	JJ((C/--/ 0 . BCC ,, r(?$'>qc%BCCNN%:3%?P#QRs   =AD DE#/EEc                    U R                   nSUS./US'   UR                  U5        U R                  U5      nUb  [        Xb5      nU$ )Nuser)roler;   messages)r0   updaterN   r   )r(   promptstoprun_managerr)   rH   rB   s          r+   _callYiLLM._callV   sP     &&(.6BC
vzz'"&t2Dr-   c                    g)zReturn type of chat_model.zyi-llmr%   r/   s    r+   	_llm_typeYiLLM._llm_typee   s     r-   r%   )r)   r   )returnr   )rH   r   r]   r   )NN)
rU   r   rV   zOptional[List[str]]rW   z"Optional[CallbackManagerForLLMRun]r)   r   r]   r   )r]   r   )__name__
__module____qualname____firstlineno____doc__r   __annotations__r   r   r   r   dictr   r   r    r!   r"   r'   propertyr0   rN   rX   r[   __static_attributes____classcell__)r*   s   @r+   r   r      s    #E3KE5GS#(#>L.>&*J#*;AF8APP$KcK# 
 
%DT %):>	 " 8	
  
  r-   r   )
__future__r   r7   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   	getLoggerr^   rF   r   r%   r-   r+   <module>rq      sD    "   5 5  = 3 L % >			8	$VC Vr-   