Ë
    µŒj¸  ã                   ó†   — 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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ÚOptionalÚUnionÚcast)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_env)Ú
ConfigDictÚ	SecretStrÚmodel_validator)ÚArceeWrapperÚ
DALMFilterc                   óZ  ‡ — e Zd ZU dZdZee   ed<   	 dZe	e
edf   ed<   	 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ef      ed<   	  ed¬«      Zedefd„«       Zdeddfˆ fd„Z ed¬«      ededefd„«       «       Z	 	 ddedeee      dee   dedef
d„Zˆ xZS )ÚArceeaØ  Arcee's Domain Adapted Language Models (DALMs).

    To use, set the ``ARCEE_API_KEY`` environment variable with your Arcee API key,
    or pass ``arcee_api_key`` as a named parameter.

    Example:
        .. code-block:: python

            from langchain_community.llms import Arcee

            arcee = Arcee(
                model="DALM-PubMed",
                arcee_api_key="ARCEE-API-KEY"
            )

            response = arcee("AI-driven music therapy")
    NÚ_clientÚarcee_api_keyÚmodelzhttps://api.arcee.aiÚarcee_api_urlÚv2Úarcee_api_versionzhttps://app.arcee.aiÚarcee_app_urlÚ Úmodel_idÚmodel_kwargsÚforbid)ÚextraÚreturnc                  ó   — y)zReturn type of llm.Úarcee© )Úselfs    úh/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/arcee.pyÚ	_llm_typezArcee._llm_type:   s   € ð ó    Údatac                 óÒ   •— t        ‰| �  di |¤Ž t        t        | j                  «      }t        || j                  | j                  | j                  | j                  ¬«      | _
        y)zInitializes private fields.)r   r   r   r   Ú
model_nameNr#   )ÚsuperÚ__init__r   r   r   r   r   r   r   r   r   )r$   r(   Úapi_keyÚ	__class__s      €r%   r,   zArcee.__init__?   sX   ø€ ô 	‰ÑÑ ˜4Ò Ü”y $×"4Ñ"4Ó5ˆÜ#Ø!Ø×,Ñ,Ø"×4Ñ4Ø×*Ñ*Ø—z‘zô
ˆ�r'   Úbefore)ÚmodeÚvaluesc                 óÜ  — t        t        |dd«      «      |d<   t        |dd«      |d<   t        |dd«      |d<   t        |dd«      |d<   |j                  d	«      r‘|d	   }|j                  d
«      �|j                  d
«      dk\  st        d«      ‚|j                  d«      �Kt	        |j                  d«      t
        «      st        d«      ‚|j                  d«      D ]  }t        di |¤Ž Œ |S )z%Validate Arcee environment variables.r   ÚARCEE_API_KEYr   ÚARCEE_API_URLr   ÚARCEE_APP_URLr   ÚARCEE_API_VERSIONr   Úsizer   z`size` must be positiveÚfiltersz`filters` must be a listr#   )r   r   ÚgetÚ
ValueErrorÚ
isinstancer   r   )Úclsr1   ÚkwÚfs       r%   Úvalidate_environmentszArcee.validate_environmentsL   s  € ô #8Ü ØØØóó#
ˆˆÑô #7ØØØó#
ˆˆÑô #7ØØØó#
ˆˆÑô ';ØØØó'
ˆÐ"Ñ#ð �:‰:�nÔ%Ø˜Ñ'ˆBð �v‰v�f‹~Ð)Ø—v‘v˜f“~¨Ò*Ü$Ð%>Ó?Ð?ð �v‰v�iÓ Ð,Ü! "§&¡&¨Ó"3´TÔ:Ü$Ð%?Ó@Ð@ØŸ™ 	Ö*�AÜ‘O “Oð +àˆr'   ÚpromptÚstopÚrun_managerÚkwargsc                 ó®   — 	 | j                   st        d«      ‚ | j                   j                  dd|i|¤ŽS # t        $ r}t        d|› �«      |‚d}~ww xY w)a)  Generate text from Arcee DALM.

        Args:
            prompt: Prompt to generate text from.
            size: The max number of context results to retrieve.
            Defaults to 3. (Can be less if filters are provided).
            filters: Filters to apply to the context dataset.
        zClient is not initialized.r@   zFailed to generate text: Nr#   )r   r:   ÚgenerateÚ	Exception)r$   r@   rA   rB   rC   Úes         r%   Ú_callzArcee._call}   sa   € ð 	DØ—<’<Ü Ð!=Ó>Ð>Ø(�4—<‘<×(Ñ(ÑA°ÐA¸&ÑAÐAøÜò 	DÜÐ7¸°sÐ;Ó<À!ÐCûð	Dús   ‚47 ·	AÁ AÁA)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ú__annotations__r   r   r   Ústrr   r   r   r   r   r   r   r   Úmodel_configÚpropertyr&   r,   r   Úclassmethodr?   r   r	   rH   Ú__classcell__)r.   s   @r%   r   r      sI  ø… ñð$ '+€GˆX�lÑ#Ó*Øà15€M�5˜ C¨Ð-Ñ.Ó5ØàƒJØà/€M�3Ó/Øà!Ð�sÓ!Øà/€M�3Ó/Øà€HˆcÓØà-1€L�(˜4  S ™>Ñ*Ó1Ø1áØô€Lð ð˜3ò ó ðð
˜sð 
 tõ 
ñ ˜(Ô#Øð-¨4ð -°Cò -ó ó $ð-ðd %)Ø:>ñ	DàðDð �t˜C‘yÑ!ðDð Ð6Ñ7ð	Dð
 ðDð 
÷Dr'   r   N)Útypingr   r   r   r   r   r   Úlangchain_core.callbacksr	   Ú#langchain_core.language_models.llmsr
   Úlangchain_core.utilsr   r   Úpydanticr   r   r   Ú#langchain_community.utilities.arceer   r   r   r#   r'   r%   Ú<module>rY      s-   ðß 9× 9å =Ý 3ß Lß ;Ñ ;ç HôGDˆCõ GDr'   