§
    šŠtj¥  ã                   óŽ   — 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d	S )
é    )ÚAnyÚDictÚListÚOptionalÚUnionÚcast)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_env)Ú
ConfigDictÚ	SecretStrÚmodel_validator)ÚArceeWrapperÚ
DALMFilterc                   ó¢  ‡ — 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                 ó   — dS )zReturn type of llm.Úarcee© )Úselfs    ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/arcee.pyÚ	_llm_typezArcee._llm_type:   s	   € ð ˆwó    Údatac                 óÈ   •—  t          ¦   «         j        di |¤Ž t          t          | j        ¦  «        }t          || j        | j        | j        | j	        ¬¦  «        | _
        dS )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__?   sh   ø€ ð 	�‰ŒÔÐ Ð ˜4Ð Ð Ð Ý•y $Ô"4Ñ5Ô5ˆÝ#Ø!ØÔ,Ø"Ô4ØÔ*Ø”zð
ñ 
ô 
ˆŒˆˆr'   Úbefore)ÚmodeÚvaluesc                 óT  — t          t          |dd¦  «        ¦  «        |d<   t          |dd¦  «        |d<   t          |dd¦  «        |d<   t          |dd¦  «        |d<   |                     d	¦  «        rµ|d	         }|                     d
¦  «        �(|                     d
¦  «        dk    st          d¦  «        ‚|                     d¦  «        �[t	          |                     d¦  «        t
          ¦  «        st          d¦  «        ‚|                     d¦  «        D ]}t          di |¤Ž Œ|S )z%Validate Arcee environment variables.r   ÚARCEE_API_KEYr   ÚARCEE_API_URLr   ÚARCEE_APP_URLr   ÚARCEE_API_VERSIONr   ÚsizeNr   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   sU  € õ #8Ý ØØØñô ñ#
ô #
ˆˆÑõ #7ØØØñ#
ô #
ˆˆÑõ #7ØØØñ#
ô #
ˆˆÑõ ';ØØØñ'
ô '
ˆÐ"Ñ#ð �:Š:�nÑ%Ô%ð 	$Ø˜Ô'ˆBð �vŠv�f‰~Œ~Ð)Ø—v’v˜f‘~”~¨Ò*Ð*Ý$Ð%>Ñ?Ô?Ð?ð �vŠv�iÑ Ô Ð,Ý! "§&¢&¨Ñ"3Ô"3µTÑ:Ô:ð AÝ$Ð%?Ñ@Ô@Ð@ØŸš 	Ñ*Ô*ð $ð $�AÝ�O�O �O�O�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}   s}   € ð 	DØ”<ð ?Ý Ð!=Ñ>Ô>Ð>Ø(�4”<Ô(ÐAÐA°ÐA¸&ÐAÐAÐAøÝð 	Dð 	Dð 	DÝÐ;¸Ð;Ð;Ñ<Ô<À!ÐCøøøøð	Døøøs   ‚), ¬
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      sþ  ø€ € € € € € ðð ð$ '+€GˆX�lÔ#Ð*Ð*Ñ*Øà15€M�5˜ C¨Ð-Ô.Ð5Ð5Ñ5Øà€J€J�JØà/€M�3Ð/Ð/Ñ/Øà!Ð�sÐ!Ð!Ñ!Øà/€M�3Ð/Ð/Ñ/Øà€HˆcÐÐÑØà-1€L�(˜4  S œ>Ô*Ð1Ð1Ñ1Ø1à�:Øðñ ô €Lð ð˜3ð ð ð ñ „Xðð
˜sð 
 tð 
ð 
ð 
ð 
ð 
ð 
ð €_˜(Ð#Ñ#Ô#Øð-¨4ð -°Cð -ð -ð -ñ „[ñ $Ô#ð-ðd %)Ø:>ð	Dð DàðDð �t˜C”yÔ!ðDð Ð6Ô7ð	Dð
 ðDð 
ðDð Dð Dð Dð Dð 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Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9à =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;à HÐ HÐ HÐ HÐ HÐ HÐ HÐ HðGDð GDð GDð GDð GDˆCñ GDô GDð GDð GDð GDr'   