§
    šŠtj   ã                  ó¶   — d Z ddlmZ ddlZddlmZ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mZmZmZ ddlmZmZ erddlZdd„Z G d„ de¦  «        ZdS )ú!Callback handler for promptlayer.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚListÚOptionalÚTuple)ÚUUID)ÚBaseCallbackHandler)Ú	AIMessageÚBaseMessageÚChatMessageÚHumanMessageÚSystemMessage)ÚChatGenerationÚ	LLMResultÚreturnÚpromptlayerc                 óL   — 	 ddl } n# t          $ r t          d¦  «        ‚w xY w| S )z2Lazy import promptlayer to avoid circular imports.r   NzsThe PromptLayerCallbackHandler requires the promptlayer package.  Please install it with `pip install promptlayer`.)r   ÚImportError)r   s    úp/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/callbacks/promptlayer_callback.pyÚ_lazy_import_promptlayerr      sQ   € ð
ØÐÐÐÐøÝð 
ð 
ð 
ÝðAñ
ô 
ð 	
ð
øøøð
 Ðs   ‚ ‡!c                  ó^   — e Zd ZdZ	 	 d$d%d	„Zddd
œd&d„Zddd
œd'd„Zddœd(d„Zd)d „Zd*d#„Z	dS )+ÚPromptLayerCallbackHandlerr   NÚpl_id_callbackúOptional[Callable[..., Any]]Úpl_tagsúOptional[List[str]]r   ÚNonec                óP   — t          ¦   «          || _        |pg | _        i | _        dS )z*Initialize the PromptLayerCallbackHandler.N)r   r   r   Úruns)Úselfr   r   s      r   Ú__init__z#PromptLayerCallbackHandler.__init__)   s.   € õ 	!Ñ"Ô"Ð"Ø,ˆÔØ�} "ˆŒØ02ˆŒ	ˆ	ˆ	ó    )Úparent_run_idÚtagsÚ
serializedúDict[str, Any]ÚmessagesúList[List[BaseMessage]]Úrun_idr   r'   úOptional[UUID]r(   Úkwargsr   c               óö   ‡ — ˆ fd„|D ¦   «         |                      di ¦  «        d                     |d         ¦  «        t          j                             ¦   «                              ¦   «         |dœ‰ j        |<   d S )Nc                óF   •— g | ]}‰                      |¦  «        d          ‘ŒS )r   )Ú_create_message_dicts©Ú.0Úmr$   s     €r   ú
<listcomp>zBPromptLayerCallbackHandler.on_chat_model_start.<locals>.<listcomp>?   s,   ø€ ÐLÐLÐL¸a˜×3Ò3°AÑ6Ô6°qÔ9ÐLÐLÐLr&   Úinvocation_paramsú.Úid)r+   r7   ÚnameÚrequest_start_timer(   ©ÚgetÚjoinÚdatetimeÚnowÚ	timestampr#   )r$   r)   r+   r-   r'   r(   r/   s   `      r   Úon_chat_model_startz.PromptLayerCallbackHandler.on_chat_model_start4   s}   ø€ ð MÐLÐLÐLÀ8ÐLÑLÔLØ!'§¢Ð,?ÀÑ!DÔ!DØ—H’H˜Z¨Ô-Ñ.Ô.Ý"*Ô"3×"7Ò"7Ñ"9Ô"9×"CÒ"CÑ"EÔ"EØð
ð 
ˆŒ	�&ÑÐÐr&   Úpromptsú	List[str]c               óÜ   — ||                      di ¦  «        d                     |d         ¦  «        t          j                             ¦   «                              ¦   «         |dœ| j        |<   d S )Nr7   r8   r9   )rC   r7   r:   r;   r(   r<   )r$   r)   rC   r-   r'   r(   r/   s          r   Úon_llm_startz'PromptLayerCallbackHandler.on_llm_startF   sg   € ð Ø!'§¢Ð,?ÀÑ!DÔ!DØ—H’H˜Z¨Ô-Ñ.Ô.Ý"*Ô"3×"7Ò"7Ñ"9Ô"9×"CÒ"CÑ"EÔ"EØð
ð 
ˆŒ	�&ÑÐÐr&   )r'   Úresponser   c               ó  — ddl m}m} | j                             |i ¦  «        }|sd S t
          j                             ¦   «                              ¦   «         |d<   t          t          |j
        ¦  «        ¦  «        D �]�}|j
        |         d         }	|	j        |j        dœ}
|                     di ¦  «        }|                     dd ¦  «        d u}|r|                     dg ¦  «        |         n|                     dg ¦  «        |         g}|r0t          |	t          ¦  «        r|                      |	j        ¦  «        gn|
} ||                     d¦  «        d	||| j        ||                     d
¦  «        |                     d¦  «         |¦   «         t%          | j        d u¦  «        t)          |¦  «        t)          |¦  «        t)          |                     dg ¦  «        ¦  «        dœ¬¦  «        }| j        r|                      |¦  «         �Œ�d S )Nr   )Úget_api_keyÚpromptlayer_api_requestÚrequest_end_time)ÚtextÚ
llm_outputr7   r+   rC   r:   Ú	langchainr;   r(   )Ú_langchain_run_idÚ_langchain_parent_run_idÚ_langchain_tags)Úreturn_pl_idÚmetadata)Úpromptlayer.utilsrI   rJ   r#   r=   r?   r@   rA   ÚrangeÚlenÚgenerationsrL   rM   Ú
isinstancer   Ú_convert_message_to_dictÚmessager   Úboolr   Ústr)r$   rG   r-   r'   r/   rI   rJ   Úrun_infoÚiÚ
generationÚrespÚmodel_paramsÚis_chat_modelÚmodel_inputÚmodel_responseÚpl_request_ids                   r   Ú
on_llm_endz%PromptLayerCallbackHandler.on_llm_endX   s6  € ð 	KÐJÐJÐJÐJÐJÐJÐJà”9—=’= ¨Ñ,Ô,ˆØð 	ØˆFÝ'/Ô'8×'<Ò'<Ñ'>Ô'>×'HÒ'HÑ'JÔ'JˆÐ#Ñ$Ý•s˜8Ô/Ñ0Ô0Ñ1Ô1ð '	3ñ '	3ˆAØ!Ô-¨aÔ0°Ô3ˆJð #œØ&Ô1ðð ˆDð $Ÿ<š<Ð(;¸RÑ@Ô@ˆLØ$ŸLšL¨°TÑ:Ô:À$ÐFˆMð !ð6�—’˜Z¨Ñ,Ô,¨QÔ/Ð/à—l’l 9¨bÑ1Ô1°!Ô4Ð5ð ð !ðÝ%/°
½NÑ%KÔ%Kð�×.Ò.¨zÔ/AÑBÔBÐCÐCàð ð 4Ð3Ø—’˜VÑ$Ô$ØØØØ”ØØ—’Ð1Ñ2Ô2Ø—’Ð/Ñ0Ô0Ø�‘”Ý! $Ô"5¸TÐ"AÑBÔBå),¨V©¬Ý03°MÑ0BÔ0BÝ'*¨8¯<ª<¸ÀÑ+CÔ+CÑ'DÔ'Dðð ðñ ô ˆMð$ Ô"ð 3Ø×#Ò# MÑ2Ô2Ð2ùðO'	3ð '	3r&   rZ   r   c                óf  — t          |t          ¦  «        rd|j        dœ}nwt          |t          ¦  «        rd|j        dœ}nWt          |t          ¦  «        rd|j        dœ}n7t          |t
          ¦  «        r|j        |j        dœ}nt          d|› �¦  «        ‚d|j        v r|j        d         |d<   |S )NÚuser)ÚroleÚcontentÚ	assistantÚsystemzGot unknown type r:   )	rX   r   rj   r   r   r   ri   Ú
ValueErrorÚadditional_kwargs)r$   rZ   Úmessage_dicts      r   rY   z3PromptLayerCallbackHandler._convert_message_to_dict�   sÍ   € Ý�g�|Ñ,Ô,ð 		<Ø$*°w´ÐGÐGˆLˆLÝ˜¥Ñ+Ô+ð 	<Ø$/¸G¼OÐLÐLˆLˆLÝ˜¥Ñ/Ô/ð 	<Ø$,¸¼ÐIÐIˆLˆLÝ˜¥Ñ-Ô-ð 	<Ø$+¤L¸W¼_ÐMÐMˆLˆLåÐ:°Ð:Ð:Ñ;Ô;Ð;Ø�WÔ.Ð.Ð.Ø#*Ô#<¸VÔ#DˆL˜Ñ ØÐr&   úList[BaseMessage]ú+Tuple[List[Dict[str, Any]], Dict[str, Any]]c                ó,   ‡ — i }ˆ fd„|D ¦   «         }||fS )Nc                ó:   •— g | ]}‰                      |¦  «        ‘ŒS © )rY   r3   s     €r   r6   zDPromptLayerCallbackHandler._create_message_dicts.<locals>.<listcomp>¢   s'   ø€ ÐLÐLÐL¸a˜×6Ò6°qÑ9Ô9ÐLÐLÐLr&   rt   )r$   r+   ÚparamsÚmessage_dictss   `   r   r2   z0PromptLayerCallbackHandler._create_message_dictsž   s.   ø€ ð "$ˆØLÐLÐLÐLÀ8ÐLÑLÔLˆØ˜fÐ$Ð$r&   )NN)r   r   r   r    r   r!   )r)   r*   r+   r,   r-   r   r'   r.   r(   r    r/   r   r   r   )r)   r*   rC   rD   r-   r   r'   r.   r(   r    r/   r   r   r   )
rG   r   r-   r   r'   r.   r/   r   r   r!   )rZ   r   r   r*   )r+   rp   r   rq   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   rB   rF   rf   rY   r2   rt   r&   r   r   r   &   sÓ   € € € € € Ø+Ð+ð 8<Ø'+ð	3ð 	3ð 	3ð 	3ð 	3ð" )-Ø$(ð
ð 
ð 
ð 
ð 
ð 
ð0 )-Ø$(ð
ð 
ð 
ð 
ð 
ð 
ð. )-ð53ð 53ð 53ð 53ð 53ð 53ðnð ð ð ð%ð %ð %ð %ð %ð %r&   r   )r   r   )rz   Ú
__future__r   r?   Útypingr   r   r   r   r	   r
   r   Úuuidr   Úlangchain_core.callbacksr   Úlangchain_core.messagesr   r   r   r   r   Úlangchain_core.outputsr   r   r   r   r   rt   r&   r   ú<module>r�      sW  ðØ 'Ð 'à "Ð "Ð "Ð "Ð "Ð "à €€€Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ Ð Ð Ð Ð Ð à 8Ð 8Ð 8Ð 8Ð 8Ð 8ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð
 ð ØÐÐÐð	ð 	ð 	ð 	ð}%ð }%ð }%ð }%ð }%Ð!4ñ }%ô }%ð }%ð }%ð }%r&   