§
    šŠtjÎ  ã                   óÔ   — 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dS )é    )Ú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
dS )Ú_MoonshotClientz0An API client that talks to the Moonshot server.Úapi_keyÚbase_urlÚrequestÚreturnc                 ó   — dd| j                              ¦   «         › �i}t          j        | j        › d�||¬¦  «        }|j        st          d|j        › d|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       ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/moonshot.pyÚ
completionz_MoonshotClient.completion   s    € Ø"Ð$O¨d¬l×.KÒ.KÑ.MÔ.MÐ$OÐ$OÐPˆÝ”=ØŒ}Ð/Ð/Ð/ØØð
ñ 
ô 
ˆð
 Œ{ð 	TÝÐR XÔ%9ÐRÐRÀ8Ä=ÐRÐRÑSÔSÐSØ�}Š}‰Œ˜yÔ)¨!Ô,¨YÔ7¸	ÔBÐBó    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__ÚMOONSHOT_SERVICE_URL_BASEr   Ústrr   r)   © r*   r(   r   r      se   € € € € € € Ø:Ð:àÐÐÑØ0Ø-€HˆcÐ-Ð-Ñ-ð	C #ð 	C¨#ð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cr*   r   c                   óÂ  — 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dS )Ú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        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Ð,ÐE°Ô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                 óž   — 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   sp   € õ &;Ý  Ð);Ð=OÑPÔPñ&
ô &
ˆÐ!Ñ"õ +ØÐ-Ô.à˜VÐ#Ð#ð ˜JÔ'Ð'å*ð	
ñ 
ô 
ˆˆxÑð ˆr*   c                 ó   — dS )zReturn type of llm.Úmoonshotr2   rA   s    r(   Ú	_llm_typezMoonshotCommon._llm_typee   s	   € ð ˆzr*   ) 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€K�KØ-€HˆcÐ-Ð-Ñ-Ø,1¨E¸$ÀiÐ,PÑ,PÔ,PÐ�h˜yÔ)ÐPÐPÑPØVØ�eÐ$4¸GÐDÑDÔD€J�ÐDÐDÑDØXØ€J�ÐÐÑØ/Ø€K�ÐÐÑØMà�:¨tÈ"ÐMÑMÔM€Làð8˜Dð 8ð 8ð 8ñ „Xð8ð ð
  c¨3 h¤ð 
ð 
ð 
ñ „Xð
ð ðF D¨¨c¨¤Nð Fð Fð Fñ „XðFð €_˜(Ð#Ñ#Ô#Øð  c¨3 h¤ð °Cð ð ð ñ „[ñ $Ô#ðð ð¨$ð °4ð ð ð ñ „Xðð ð˜3ð ð ð ñ „Xðð ð r*   r4   c                   óp   — 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dS )Ú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                             |¦  «        }|�t	          ||¦  «        }|S )NÚuser)Úroler   Úmessages)rF   Úupdater5   r)   r   )r&   r[   r\   r]   r^   r   r%   s          r(   Ú_callzMoonshot._call}   sd   € ð Ô)ˆØ(.¸6ÐBÐBÐCˆ�
ÑØ�Š�vÑÔÐØŒ{×%Ò% gÑ.Ô.ˆØÐõ ' t¨TÑ2Ô2ˆDàˆr*   )NN)r+   r,   r-   r.   r   rU   r1   r   r   r   r   rd   r2   r*   r(   rZ   rZ   k   s™   € € € € € ðð ð �:Øðñ ô €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      so  ðØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à €€€Ø =Ð =Ð =Ð =Ð =Ð =Ø .Ð .Ð .Ð .Ð .Ð .Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ Vðð ð ð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >à8Ð ðCð Cð Cð Cð C�iñ Cô Cð Cð&Að Að Að Að A�Yñ Aô Að AðH"ð "ð "ð "ð "ˆ~˜sñ "ô "ð "ð "ð "r*   