§
    šŠtjý  ã                   ó.  — d dl mZmZmZmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZmZ d dlmZmZ d dlmZmZmZmZ d d	lmZ d
ee         deeeeeeeeeeef         f                  f         f                  fd„Z G d„ de¦  «        ZdS )é    )ÚAnyÚDictÚListÚOptionalÚUnion)ÚClientSession)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseChatModel)Ú	AIMessageÚBaseMessage)ÚChatGenerationÚ
ChatResult©Úconvert_to_secret_strÚget_from_dict_or_env)Ú
ConfigDictÚFieldÚ	SecretStrÚmodel_validator)ÚRequestsÚmessagesÚreturnc                 ó¶   — g }| D ]S}|j         dk    r|                     d|j        dœ¦  «         Œ+|j         dk    r|                     d|j        dœ¦  «         ŒT|S )NÚhumanÚuser)ÚroleÚcontentÚsystem)ÚtypeÚappendr   )r   Úformatted_messagesÚmessages      úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/chat_models/dappier.pyÚ_format_dappier_messagesr%      s{   € ð Ðàð Vð VˆØŒ<˜7Ò"Ð"Ø×%Ò%¨vÀ'Ä/Ð&RÐ&RÑSÔSÐSÐSØŒ\˜XÒ%Ð%Ø×%Ò%¨xÀGÄOÐ&TÐ&TÑUÔUÐUøàÐó    c                   ó´  — e Zd ZU dZdZeed<   dZeed<    edd¬¦  «        Z	e
e         ed	<    ed
¬¦  «        Z ed¬¦  «        ededefd„¦   «         ¦   «         Zedefd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Z	 	 ddee         de
ee                  de
e         dedef
d„Z	 	 ddee         de
ee                  de
e         dedef
d„ZdS )ÚChatDappierAIa¥  `Dappier` chat large language models.

    `Dappier` is a platform enabling access to diverse, real-time data models.
    Enhance your AI applications with Dappier's pre-trained, LLM-ready data models
    and ensure accurate, current responses with reduced inaccuracies.

    To use one of our Dappier AI Data Models, you will need an API key.
    Please visit Dappier Platform (https://platform.dappier.com/) to log in
    and create an API key in your profile.

    Example:
        .. code-block:: python

            from langchain_community.chat_models import ChatDappierAI
            from langchain_core.messages import HumanMessage

            # Initialize `ChatDappierAI` with the desired configuration
            chat = ChatDappierAI(
                dappier_endpoint="https://api.dappier.com/app/datamodel/dm_01hpsxyfm2fwdt2zet9cg6fdxt",
                dappier_api_key="<YOUR_KEY>")

            # Create a list of messages to interact with the model
            messages = [HumanMessage(content="hello")]

            # Invoke the model with the provided messages
            chat.invoke(messages)


    you can find more details here : https://docs.dappier.com/introductionz1https://api.dappier.com/app/datamodelconversationÚdappier_endpointÚdm_01hpsxyfm2fwdt2zet9cg6fdxtÚdappier_modelNzDappier API Token)ÚdescriptionÚdappier_api_keyÚforbid)ÚextraÚbefore)ÚmodeÚvaluesr   c                 óH   — t          t          |dd¦  «        ¦  «        |d<   |S )z,Validate that api key exists in environment.r-   ÚDAPPIER_API_KEYr   )Úclsr2   s     r$   Úvalidate_environmentz"ChatDappierAI.validate_environmentM   s1   € õ %:Ý  Ð):Ð<MÑNÔNñ%
ô %
ˆÐ Ñ!ð ˆr&   c                  ó   — ddl m}  d| › �S )Nr   ©Ú__version__z
langchain/)Úlangchain_communityr9   r8   s    r$   Úget_user_agentzChatDappierAI.get_user_agentV   s"   € à3Ð3Ð3Ð3Ð3Ð3à)˜KÐ)Ð)Ð)r&   c                 ó   — dS )zReturn type of chat model.zdappier-realtimesearch-chat© ©Úselfs    r$   Ú	_llm_typezChatDappierAI._llm_type\   s
   € ð -Ð,r&   c                 óF   — | j         r| j                              ¦   «         S dS )NÚ )r-   Úget_secret_valuer>   s    r$   Ú_api_keyzChatDappierAI._api_keya   s'   € àÔð 	;ØÔ'×8Ò8Ñ:Ô:Ð:Øˆrr&   r   ÚstopÚrun_managerÚkwargsc                 óŒ  — | j         › }d| j        › �|                      ¦   «         dœ}t          |¬¦  «        }| j        |dœ}t          |¬¦  «        }	|	                     ||¬¦  «        }
|
                     ¦   «          |
                     ¦   «         }|d         }t          t          t          |¬¦  «        ¬	¦  «        g¬
¦  «        S )NúBearer ©ÚAuthorizationz
User-Agent©r   ©ÚmodelÚconversation)Úheaders)ÚurlÚdatar#   ©r   ©r#   ©Úgenerations)r)   rD   r;   r%   r+   r   ÚpostÚraise_for_statusÚjsonr   r   r   )r?   r   rE   rF   rG   rQ   rP   Ú
user_queryÚpayloadÚrequestÚresponserR   Úmessage_responses                r$   Ú	_generatezChatDappierAI._generateg   sâ   € ð Ô&Ð(ˆà6 t¤}Ð6Ð6Ø×-Ò-Ñ/Ô/ð
ð 
ˆõ .°xÐ@Ñ@Ô@ˆ
àÔ'Ø&ð#
ð #
ˆõ
  7Ð+Ñ+Ô+ˆØ—<’< C¨g�<Ñ6Ô6ˆØ×!Ò!Ñ#Ô#Ð#à�}Š}‰Œˆà 	œ?ÐåÝ'µ	ÐBRÐ0SÑ0SÔ0SÐTÑTÔTÐUð
ñ 
ô 
ð 	
r&   c           	   ‹   ón  K  — | j         › }d| j        › �|                      ¦   «         dœ}t          |¬¦  «        }| j        |dœ}t          ¦   «         4 ƒd {V —†}	|	                     |||¬¦  «        4 ƒd {V —†}
|
                     ¦   «          |
                     ¦   «         ƒ d {V —†}|d         }t          t          t          |¬¦  «        ¬¦  «        g¬	¦  «        cd d d ¦  «        ƒd {V —† cd d d ¦  «        ƒd {V —† S # 1 ƒd {V —†swxY w Y   	 d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )
NrI   rJ   rL   rM   )rY   rP   r#   rS   rT   rU   )r)   rD   r;   r%   r+   r   rW   rX   rY   r   r   r   )r?   r   rE   rF   rG   rQ   rP   rZ   r[   Úsessionr]   rR   r^   s                r$   Ú
_ageneratezChatDappierAI._agenerate…   s¤  è è € ð Ô&Ð(ˆà6 t¤}Ð6Ð6Ø×-Ò-Ñ/Ô/ð
ð 
ˆõ .°xÐ@Ñ@Ô@ˆ
àÔ'Ø&ð#
ð #
ˆõ
 !‘?”?ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	 gØ—|’| C¨g¸w�|ÑGÔGð 	ð 	ð 	ð 	ð 	ð 	ð 	È8Ø×)Ò)Ñ+Ô+Ð+Ø%Ÿ]š]™_œ_Ð,Ð,Ð,Ð,Ð,Ð,�Ø#'¨	¤?Ð å!å&­yÐAQÐ/RÑ/RÔ/RÐSÑSÔSð!ðñ ô ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð
	ð 
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	øøøð 
	ð 
	ð 
	ð 
	ð 
	ð 
	s7   ÁD$Á7A#C?ÃD$Ã?
D		Ä	D$ÄD		ÄD$Ä$
D.Ä1D.)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r)   ÚstrÚ__annotations__r+   r   r-   r   r   r   Úmodel_configr   Úclassmethodr   r   r6   Ústaticmethodr;   Úpropertyr@   rD   r   r   r
   r   r_   r	   rb   r=   r&   r$   r(   r(   $   s
  € € € € € € ðNð Nð< PÐ�cÐOÐOÑOà8€M�3Ð8Ð8Ñ8à+0¨5°ÐCVÐ+WÑ+WÔ+W€O�X˜iÔ(ÐWÐWÑWà�:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð ð*˜Cð *ð *ð *ñ „\ð*ð
 ð-˜3ð -ð -ð -ñ „Xð-ð ð˜#ð ð ð ñ „Xðð %)Ø:>ð	
ð 
à�{Ô#ð
ð �t˜C”yÔ!ð
ð Ð6Ô7ð	
ð
 ð
ð 
ð
ð 
ð 
ð 
ðB %)Ø?Cð	ð à�{Ô#ðð �t˜C”yÔ!ðð Ð;Ô<ð	ð
 ðð 
ðð ð ð ð ð r&   r(   N) Útypingr   r   r   r   r   Úaiohttpr   Úlangchain_core.callbacksr	   r
   Ú*langchain_core.language_models.chat_modelsr   Úlangchain_core.messagesr   r   Úlangchain_core.outputsr   r   Úlangchain_core.utilsr   r   Úpydanticr   r   r   r   Ú&langchain_community.utilities.requestsr   rg   r%   r(   r=   r&   r$   ú<module>rv      s®  ðØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3à !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ðð ð ð ð ð ðð ð ð ð ð ð ð ð >Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà ;Ð ;Ð ;Ð ;Ð ;Ð ;ðØ�;Ôðà	ˆ$ˆs�E˜#˜t E¨#¨t°C¸°H¬~Ð*=Ô$>Ô?Ð?Ô@Ð@Ô
AÔBðð ð ð ð}ð }ð }ð }ð }�Mñ }ô }ð }ð }ð }r&   