Ë
    µŒjt  ã                   ó®   — d dl Z d dlmZ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 d dlmZmZmZmZ d dlmZ  e j*                  e«      Z G d„ d	e«      Zy)
é    N)ÚAnyÚDictÚListÚMappingÚOptionalÚcast)ÚCallbackManagerForLLMRun)ÚLLM)Úsecret_from_env)Ú
ConfigDictÚFieldÚ	SecretStrÚmodel_validator)Úenforce_stop_tokensc                   óD  — e Zd ZU dZdZeed<   	 dZeed<   	  ee	¬«      Z
eeef   ed<   	  e edd¬	«      ¬«      Zee   ed
<    ed¬«      Z ed¬«      edeeef   de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)ÚBananaa  Banana large language models.

    To use, you should have the ``banana-dev`` python package installed,
    and the environment variable ``BANANA_API_KEY`` set with your API key.
    This is the team API key available in the Banana dashboard.

    Any parameters that are valid to be passed to the call can be passed
    in, even if not explicitly saved on this class.

    Example:
        .. code-block:: python

            from langchain_community.llms import Banana
            banana = Banana(model_key="", model_url_slug="")
    Ú Ú	model_keyÚmodel_url_slug)Údefault_factoryÚmodel_kwargsÚBANANA_API_KEYN)ÚdefaultÚbanana_api_keyÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ó:  — t        t        | j                  j                  «       «      «      }|j	                  di «      }t        |«      D ]I  }||vsŒ||v rt        d|› d�«      ‚t        j                  |› d|› d�«       |j                  |«      ||<   ŒK ||d<   |S )z>Build extra kwargs from additional params that were passed in.r   zFound z supplied twice.zJ was transferred to model_kwargs.
                    Please confirm that z is what you intended.)	ÚsetÚlistÚmodel_fieldsÚkeysÚgetÚ
ValueErrorÚloggerÚwarningÚpop)Úclsr   Úall_required_field_namesr   Ú
field_names        úl/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/bananadev.pyÚbuild_extrazBanana.build_extra3   s±   € ô $'¤t¨C×,<Ñ,<×,AÑ,AÓ,CÓ'DÓ#EÐ Ø—
‘
˜>¨2Ó.ˆÜ˜vž,ˆJØÐ!9Ò9Ø Ñ&Ü$ v¨j¨\Ð9IÐ%JÓKÐKÜ—‘Ø#˜ð %)Ø)3¨Ð4JðNôð %+§J¡J¨zÓ$:��jÒ!ð 'ð "'ˆˆ~ÑØˆó    c                 óZ   — i d| j                   i¥d| j                  i¥d| j                  i¥S )zGet the identifying parameters.r   r   r   )r   r   r   ©Úselfs    r.   Ú_identifying_paramszBanana._identifying_paramsE   sE   € ð
Ø˜DŸN™NÐ+ð
à ×!4Ñ!4Ð5ð
ð ˜t×0Ñ0Ð1ð
ð 	
r0   c                  ó   — y)zReturn type of llm.Ú	bananadev© r2   s    r.   Ú	_llm_typezBanana._llm_typeN   s   € ð r0   ÚpromptÚstopÚrun_managerÚkwargsc                 ó¨  — 	 ddl m} | j                  xs i }i |¥|¥}t	        t
        | j                  «      }| j                  }| j                  }	d|i|¥}
 ||j                  «       |d|	› d�¬«      }|j                  d|
«      \  }}	 |d	   }|�t        ||«      }|S # t        $ r t        d«      ‚w xY w# t        t        f$ r t        d
«      ‚w xY w)zCall to Banana endpoint.r   )ÚClientz\Could not import banana-dev python package. Please install it with `pip install banana-dev`.r9   zhttps://z.run.banana.dev)Úapi_keyr   ÚurlÚ/Úoutputsz´Response should be of schema: {'outputs': 'text'}.
To fix this:
- fork the source repo of the Banana model
- modify app.py to return the above schema
- deploy that as a custom repo)Ú
banana_devr>   ÚImportErrorr   r   r   r   r   r   Úget_secret_valueÚcallÚKeyErrorÚ	TypeErrorr'   r   )r3   r9   r:   r;   r<   r>   Úparamsr?   r   r   Úmodel_inputsÚmodelÚresponseÚmetaÚtexts                  r.   Ú_callzBanana._callS   s  € ð	Ý)ð ×"Ñ"Ò( bˆØ%�FÐ%˜fÐ%ˆÜ”y $×"5Ñ"5Ó6ˆØ—N‘Nˆ	Ø×,Ñ,ˆð �fð
ð ð
ˆñ
 à×,Ñ,Ó.àØ˜>Ð*¨/Ð:ô
ˆð Ÿ™ C¨Ó6‰ˆ�$ð		Ø˜IÑ&ˆDð Ðô ' t¨TÓ2ˆDØˆøôK ò 	ÜðCóð ð	ûô2 œ)Ð$ò 	Üð3óð ð	ús   ‚B Â	B6 ÂB3Â6C)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   Údictr   r   r   r   r   r   r   r   Úmodel_configr   Úclassmethodr/   Úpropertyr   r4   r8   r   r	   rO   r7   r0   r.   r   r      s3  … ñð  €IˆsÓØà€N�CÓØá#(¸Ô#>€L�$�s˜C�x‘.Ó>ðñ +0Ù'Ð(8À$ÔGô+€N�H˜YÑ'ó ñ Øô€Lñ ˜(Ô#Øð  c¨3 h¡ð °Cò ó ó $ðð  ð
 W¨S°#¨XÑ%6ò 
ó ð
ð ð˜3ò ó ðð %)Ø:>ñ	/àð/ð �t˜C‘yÑ!ð/ð Ð6Ñ7ð	/ð
 ð/ð 
ô/r0   r   )ÚloggingÚtypingr   r   r   r   r   r   Úlangchain_core.callbacksr	   Ú#langchain_core.language_models.llmsr
   Úlangchain_core.utilsr   Úpydanticr   r   r   r   Úlangchain_community.llms.utilsr   Ú	getLoggerrP   r(   r   r7   r0   r.   Ú<module>rb      sE   ðÛ ß ;× ;å =Ý 3õ÷ CÓ Bå >à	ˆ×	Ñ	˜8Ó	$€ôrˆSõ rr0   