Ë
    µŒj€  ã                   ór   — 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y)	é    )Ú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(y))Ú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}|j                  |d   |d   j	                  «       |d   |d   ¬«      |d	<   |S # t
        $ r t        d
«      ‚w xY w)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      úk/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/nlpcloud.pyÚvalidate_environmentzNLPCloud.validate_environment:   s•   € ô &;Ü  Ð);Ð=OÓPó&
ˆÐ!Ñ"ð	Ûà'Ÿ™Ø�|Ñ$ØÐ)Ñ*×;Ñ;Ó=Ø˜5‘MØ˜F‘^ð	  /ó  ˆF�8Ñð ˆøô ò 	ÜðAóð ð	ús   ›6A ÁA(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   sg   € ð  ×+Ñ+ØŸ/™/Ø#×3Ñ3Ø ×-Ñ-Ø#'×#;Ñ#;ØŸ™Ø—Z‘ZØ—Z‘ZØ"&×"9Ñ"9ØŸ™Ø$(×$=Ñ$=ñ
ð 	
ó    c                 ór   — 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   sQ   € ð
Ø˜TŸ_™_Ð-ð
à�d—h‘hÐð
ð �t—y‘yÐ!ð
ð ×"Ñ"ð	
ð 	
r7   c                  ó   — y)zReturn type of llm.r+   © r4   s    r0   Ú	_llm_typezNLPCloud._llm_typek   s   € ð r7   ÚpromptÚstopÚrun_managerÚkwargsc                 óÐ   — |rt        |«      dkD  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 ’MÜð.óð ñ ”c˜$“i 1’nØ ™7‰LàˆLØ3�D×(Ñ(Ð3¨FÐ3ˆØ)�4—;‘;×)Ñ)¨&Ñ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Ø #Ð˜Ó#Ø:Ø€IˆsÓØ*Ø !Ð˜#Ó!Ø;à,0Ð�h˜yÑ)Ó0áØô€Lð ð¨$ð °4ò ó ðð* ð
 ¨¨c¨Ñ!2ò 
ó ð
ð  ð
 W¨S°#¨XÑ%6ò 
ó ð
ð ð˜3ò ó ðð %)Ø:>ñ	 *àð *ð �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å =Ý 3ß VÑ Vß *ôG*ˆsõ G*r7   