§
    šŠtjm  ã                   óz   — d dl mZmZmZmZm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  G d„ de	¦  «        ZdS )	é    )ÚAnyÚDictÚListÚMappingÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú
ConfigDictÚ	SecretStrc                   ó  — e Zd ZU dZdZeed<   dZeed<   	 dZ	e
ed<   	 dZeed	<   	 d
Zeed<   	 dZeed<   	 dZe
ed<   	 dZe
ed<   	 dZe
ed<   	 g Zee         ed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZee         ed<    ed¬¦  «        Zed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fd"„¦   «         Z&	 	 d(d#ed$eee                  d%ee'         d&edef
d'„Z(dS ))ÚNLPCloudaa  NLPCloud large language models.

    To use, you should have the ``nlpcloud`` python package installed, and the
    environment variable ``NLPCLOUD_API_KEY`` set with your API key.

    Example:
        .. code-block:: python

            from langchain_community.llms import NLPCloud
            nlpcloud = NLPCloud(model="finetuned-gpt-neox-20b")
    NÚclientzfinetuned-gpt-neox-20bÚ
model_nameTÚgpuÚenÚlanggffffffæ?Útemperatureé   Ú
max_lengthÚlength_no_inputÚremove_inputÚremove_end_sequenceÚ	bad_wordsg      ð?Útop_pé2   Útop_kÚrepetition_penaltyé   Ú	num_beamsÚnum_return_sequencesÚnlpcloud_api_keyÚforbid)ÚextraÚvaluesÚreturnc                 ó  — t          t          |dd¦  «        ¦  «        |d<   	 ddl}|                     |d         |d                              ¦   «         |d         |d         ¬¦  «        |d	<   n# t
          $ r t          d
¦  «        ‚w xY w|S )z?Validate that api key and python package exists in environment.r$   ÚNLPCLOUD_API_KEYr   Nr   r   r   )r   r   r   zXCould not import nlpcloud python package. Please install it with `pip install nlpcloud`.)r
   r   ÚnlpcloudÚClientÚget_secret_valueÚImportError)Úclsr'   r+   s      ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/nlpcloud.pyÚvalidate_environmentzNLPCloud.validate_environment:   s¿   € õ &;Ý  Ð);Ð=OÑPÔPñ&
ô &
ˆÐ!Ñ"ð	ØˆOˆOˆOà'ŸšØ�|Ô$ØÐ)Ô*×;Ò;Ñ=Ô=Ø˜5”MØ˜F”^ð	  /ñ  ô  ˆF�8ÑÐøõ ð 	ð 	ð 	ÝðAñô ð ð	øøøð
 ˆs   £A
A. Á.Bc                 óŒ   — | j         | j        | j        | j        | j        | j        | j        | j        | j        | j	        | j
        dœS )z4Get the default parameters for calling NLPCloud API.©r   r   r   r   r   r   r   r   r    r"   r#   r3   ©Úselfs    r0   Ú_default_paramszNLPCloud._default_paramsP   sP   € ð  Ô+Øœ/Ø#Ô3Ø Ô-Ø#'Ô#;ØœØ”ZØ”ZØ"&Ô"9ØœØ$(Ô$=ð
ð 
ð 	
ó    c                 óJ   — i d| j         i¥d| j        i¥d| j        i¥| j        ¥S )zGet the identifying parameters.r   r   r   )r   r   r   r6   r4   s    r0   Ú_identifying_paramszNLPCloud._identifying_paramsa   sH   € ð
Ø˜Tœ_Ð-ð
à�d”hÐð
ð �t”yÐ!ð
ð Ô"ð	
ð 	
r7   c                 ó   — dS )zReturn type of llm.r+   © r4   s    r0   Ú	_llm_typezNLPCloud._llm_typek   s	   € ð ˆzr7   ÚpromptÚstopÚrun_managerÚkwargsc                 óÚ   — |r"t          |¦  «        dk    rt          d¦  «        ‚|rt          |¦  «        dk    r	|d         }nd}i | j        ¥|¥} | j        j        |fd|i|¤Ž}|d         S )al  Call out to NLPCloud's create endpoint.

        Args:
            prompt: The prompt to pass into the model.
            stop: Not supported by this interface (pass in init method)

        Returns:
            The string generated by the model.

        Example:
            .. code-block:: python

                response = nlpcloud("Tell me a joke.")
        r!   zXNLPCloud only supports a single stop sequence per generation.Pass in a list of length 1.r   NÚend_sequenceÚgenerated_text)ÚlenÚ
ValueErrorr6   r   Ú
generation)r5   r=   r>   r?   r@   rB   ÚparamsÚresponses           r0   Ú_callzNLPCloud._callp   s˜   € ð* ð 	 •C˜‘I”I ’M�MÝð.ñô ð ð ð 	 •c˜$‘i”i 1’n�nØ œ7ˆLˆLàˆLØ3�DÔ(Ð3¨FÐ3ˆØ)�4”;Ô)¨&ÐVÐV¸|ÐVÈvÐVÐVˆØÐ(Ô)Ð)r7   )NN))Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   Ústrr   Úboolr   r   Úfloatr   Úintr   r   r   r   r   r   r   r    r"   r#   r$   r   r   r   Úmodel_configr   r   r1   Úpropertyr   r6   r9   r<   r   rI   r;   r7   r0   r   r   	   s„  € € € € € € ð
ð 
ð €FˆCÐÐÑØ.€J�Ð.Ð.Ñ.ØØ€CˆÐÐÑØ%Ø€Dˆ#ÐÐÑØ.Ø€K�ÐÐÑØ+Ø€J�ÐÐÑØEØ €O�TÐ Ð Ñ ØSØ€L�$ÐÐÑØ-Ø $Ð˜Ð$Ð$Ñ$Ø:Ø€Iˆt�CŒyÐÐÑØ5Ø€Eˆ5ÐÐÑØDØ€Eˆ3€O€O�OØOØ #Ð˜Ð#Ð#Ñ#Ø:Ø€IˆsÐÐÑØ*Ø !Ð˜#Ð!Ð!Ñ!Ø;à,0Ð�h˜yÔ)Ð0Ð0Ñ0à�:Øðñ ô €Lð ð¨$ð °4ð ð ð ñ „Xðð* ð
 ¨¨c¨Ô!2ð 
ð 
ð 
ñ „Xð
ð  ð
 W¨S°#¨XÔ%6ð 
ð 
ð 
ñ „Xð
ð ð˜3ð ð ð ñ „Xðð %)Ø:>ð	 *ð  *àð *ð �t˜C”yÔ!ð *ð Ð6Ô7ð	 *ð
 ð *ð 
ð *ð  *ð  *ð  *ð  *ð  *r7   r   N)Útypingr   r   r   r   r   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.utilsr
   r   r   Úpydanticr   r   r   r;   r7   r0   ú<module>rZ      sÇ   ðØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ *Ð *Ð *Ð *Ð *Ð *Ð *Ð *ðG*ð G*ð G*ð G*ð G*ˆsñ G*ô G*ð G*ð G*ð G*r7   