Ë
    µŒjÎ  ã                   óÀ   — 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mZmZmZ d dlmZ dZ G d	„ d
e«      Z G d„ de«      Z G d„ dee	«      Zy)é    )ÚAnyÚDictÚListÚOptionalN)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú	BaseModelÚ
ConfigDictÚFieldÚ	SecretStrÚmodel_validator)Úenforce_stop_tokenszhttps://api.moonshot.cn/v1c                   ó<   — e Zd ZU dZeed<   	 eZeed<   de	de	fd„Z
y)Ú_MoonshotClientz0An API client that talks to the Moonshot server.Úapi_keyÚbase_urlÚrequestÚreturnc                 ó$  — dd| j                   j                  «       › �i}t        j                  | j                  › d�||¬«      }|j
                  s%t        d|j                  › d|j                  › �«      ‚|j                  «       d   d   d	   d
   S )NÚAuthorizationzBearer z/chat/completions)ÚheadersÚjsonzHTTP z error: Úchoicesr   ÚmessageÚcontent)
r   Úget_secret_valueÚrequestsÚpostr   ÚokÚ
ValueErrorÚstatus_codeÚtextr   )Úselfr   r   Úresponses       úk/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/moonshot.pyÚ
completionz_MoonshotClient.completion   s�   € Ø" g¨d¯l©l×.KÑ.KÓ.MÐ-NÐ$OÐPˆÜ—=‘=Ø�}‰}ˆoÐ.Ð/ØØô
ˆð
 �{Š{Ü˜u X×%9Ñ%9Ð$:¸(À8Ç=Á=À/ÐRÓSÐSØ�}‰}‹˜yÑ)¨!Ñ,¨YÑ7¸	ÑBÐBó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__ÚMOONSHOT_SERVICE_URL_BASEr   Ústrr   r)   © r*   r(   r   r      s.   … Ù:àÓØ0Ø-€HˆcÓ-ð	C #ð 	C¨#ô 	Cr*   r   c                   óf  — e Zd ZU dZeed<   eZeed<    e	dd¬«      Z
ee   ed<   	  e	dd	¬«      Zeed
<   	 dZeed<   	 dZeed<   	  edd¬«      Zedefd„«       Zedeeef   fd„«       Zedeeef   fd„«       Z ed¬«      edeeef   defd„«       «       Zededefd„«       Zedefd„«       Zy)ÚMoonshotCommonz$Common parameters for Moonshot LLMs.Úclientr   Nr   )ÚdefaultÚaliasÚmoonshot_api_keyzmoonshot-v1-8kÚmodelÚ
model_namei   Ú
max_tokensg333333Ó?ÚtemperatureTr2   )Úpopulate_by_nameÚprotected_namespacesr   c                 ó
   — ddiS )z†A map of constructor argument names to secret ids.

        For example,
            {"moonshot_api_key": "MOONSHOT_API_KEY"}
        r8   ÚMOONSHOT_API_KEYr2   ©r&   s    r(   Ú
lc_secretszMoonshotCommon.lc_secrets7   s   € ð #Ð$6Ð7Ð7r*   c                 óJ   — | j                   | j                  | j                  dœS )z2Get the default parameters for calling OpenAI API.)r9   r;   r<   )r:   r;   r<   rA   s    r(   Ú_default_paramszMoonshotCommon._default_params@   s%   € ð —_‘_ØŸ/™/Ø×+Ñ+ñ
ð 	
r*   c                 ó:   — i d| j                   i¥| j                  ¥S )Nr9   )r:   rD   rA   s    r(   Ú_invocation_paramsz!MoonshotCommon._invocation_paramsI   s!   € àE�7˜DŸO™OÐ,ÐE°×0DÑ0DÐEÐEr*   Úbefore)ÚmodeÚvaluesc                 ó   — |S )zƒBuild extra parameters.
        Override the superclass method, prevent the model parameter from being
        overridden.
        r2   ©ÚclsrI   s     r(   Úbuild_extrazMoonshotCommon.build_extraM   s	   € ð ˆr*   c                 óx   — t        t        |dd«      «      |d<   t        |d   d|v r|d   nt        ¬«      |d<   |S )z?Validate that api key and python package exists in environment.r8   r@   r   )r   r   r5   )r	   r
   r   r0   rK   s     r(   Úvalidate_environmentz#MoonshotCommon.validate_environmentV   sX   € ô &;Ü  Ð);Ð=OÓPó&
ˆÐ!Ñ"ô +ØÐ-Ñ.à˜VÑ#ð ˜JÒ'ä*ô	
ˆˆxÑð ˆr*   c                  ó   — y)zReturn type of llm.Úmoonshotr2   rA   s    r(   Ú	_llm_typezMoonshotCommon._llm_typee   s   € ð r*   ) r+   r,   r-   r.   r   r/   r0   r   r1   r   r8   r   r   r:   r;   Úintr<   Úfloatr   Úmodel_configÚpropertyÚdictrB   r   rD   rF   r   ÚclassmethodrM   r   rO   rR   r2   r*   r(   r4   r4   '   s?  … Ù.àƒKØ-€HˆcÓ-Ù,1¸$ÀiÔ,PÐ�h˜yÑ)ÓPØVÙÐ$4¸GÔD€J�ÓDØXØ€J�ÓØ/Ø€K�ÓØMá¨tÈ"ÔM€Làð8˜Dò 8ó ð8ð ð
  c¨3 h¡ò 
ó ð
ð ðF D¨¨c¨¡Nò Fó ðFñ ˜(Ô#Øð  c¨3 h¡ð °Cò ó ó $ðð ð¨$ð °4ò ó ðð ð˜3ò ó ñr*   r4   c                   óV   — e Zd ZdZ ed¬«      Z	 	 ddedeee      dee	   de
d	ef
d
„Zy)ÚMoonshotaf  Moonshot large language models.

    To use, you should have the environment variable ``MOONSHOT_API_KEY`` set with your
    API key. Referenced from https://platform.moonshot.cn/docs

    Example:
        .. code-block:: python

            from langchain_community.llms.moonshot import Moonshot

            moonshot = Moonshot(model="moonshot-v1-8k")
    T)r=   NÚpromptÚstopÚrun_managerÚkwargsr   c                 ó¤   — | j                   }d|dœg|d<   |j                  |«       | j                  j                  |«      }|�t	        ||«      }|S )NÚuser)Úroler   Úmessages)rF   Úupdater5   r)   r   )r&   r[   r\   r]   r^   r   r%   s          r(   Ú_callzMoonshot._call}   sZ   € ð ×)Ñ)ˆØ(.¸6ÑBÐCˆ�
ÑØ�‰�vÔØ�{‰{×%Ñ% gÓ.ˆØÐô ' t¨TÓ2ˆDàˆr*   )NN)r+   r,   r-   r.   r   rU   r1   r   r   r   r   rd   r2   r*   r(   rZ   rZ   k   sb   „ ññ Øô€Lð %)Ø:>ñ	àðð �t˜C‘yÑ!ðð Ð6Ñ7ð	ð
 ðð 
ôr*   rZ   )Útypingr   r   r   r   r    Úlangchain_core.callbacksr   Úlangchain_core.language_modelsr   Úlangchain_core.utilsr	   r
   r   Úpydanticr   r   r   r   r   Úlangchain_community.llms.utilsr   r0   r   r4   rZ   r2   r*   r(   Ú<module>rk      sZ   ðß ,Ó ,ã Ý =Ý .ß VÑ V÷õ õ ?à8Ð ôC�iô Cô&A�Yô AôH"ˆ~˜sõ "r*   