
    dh                        S r SSKJr  SSKrSSKJrJrJrJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJrJrJrJrJr  SSKJrJr  \(       a  SSKrSS	 jr " S
 S\5      rg)!Callback handler for promptlayer.    )annotationsN)TYPE_CHECKINGAnyCallableDictListOptionalTuple)UUID)BaseCallbackHandler)	AIMessageBaseMessageChatMessageHumanMessageSystemMessage)ChatGeneration	LLMResultc                 B     SSK n U $ ! [         a    [        S5      ef = f)z2Lazy import promptlayer to avoid circular imports.r   NzsThe PromptLayerCallbackHandler requires the promptlayer package.  Please install it with `pip install promptlayer`.)promptlayerImportError)r   s    j/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/callbacks/promptlayer_callback.py_lazy_import_promptlayerr      s6    
   
A
 	

s    c                      \ rS rSrSr  S     SS jjrSSS.             SS jjrSSS.             SS jjrSS.         SS	 jjrSS
 jr	    SS jr
Srg)PromptLayerCallbackHandler&   r   Nc                R    [        5         Xl        U=(       d    / U l        0 U l        g)z*Initialize the PromptLayerCallbackHandler.N)r   pl_id_callbackpl_tagsruns)selfr   r   s      r   __init__#PromptLayerCallbackHandler.__init__)   s"     	!",}"02	    )parent_run_idtagsc                  U Vs/ sH  opR                  U5      S   PM     snUR                  S0 5      SR                  US   5      [        R                  R	                  5       R                  5       US.U R                  U'   g s  snf )Nr   invocation_params.id)messagesr(   namerequest_start_timer&   )_create_message_dictsgetjoindatetimenow	timestampr    )r!   
serializedr+   run_idr%   r&   kwargsms           r   on_chat_model_start.PromptLayerCallbackHandler.on_chat_model_start4   sw     DLL8a33A6q98L!',?!DHHZ-."*"3"3"7"7"9"C"C"E
		&Ls   Bc                   UUR                  S0 5      SR                  US   5      [        R                  R                  5       R	                  5       US.U R
                  U'   g )Nr(   r)   r*   )promptsr(   r,   r-   r&   )r/   r0   r1   r2   r3   r    )r!   r4   r;   r5   r%   r&   r6   s          r   on_llm_start'PromptLayerCallbackHandler.on_llm_startF   sU     !',?!DHHZ-."*"3"3"7"7"9"C"C"E
		&r$   )r%   c                  SSK JnJn  U R                  R	                  U0 5      nU(       d  g [
        R
                  R                  5       R                  5       US'   [        [        UR                  5      5       GHv  nUR                  U   S   n	U	R                  UR                  S.n
UR	                  S0 5      nUR	                  SS 5      S LnU(       a  UR	                  S/ 5      U   OUR	                  S/ 5      U   /nU(       a1  [        U	[        5      (       a  U R                  U	R                   5      /OU
nU" UR	                  S5      S	UUU R"                  UUR	                  S
5      UR	                  S5      U" 5       [%        U R&                  S L5      [)        U5      [)        U5      [)        UR	                  S/ 5      5      S.S9nU R&                  (       d  GMe  U R'                  U5        GMy     g )Nr   )get_api_keypromptlayer_api_requestrequest_end_time)text
llm_outputr(   r+   r;   r,   	langchainr-   r&   )_langchain_run_id_langchain_parent_run_id_langchain_tags)return_pl_idmetadata)promptlayer.utilsr?   r@   r    r/   r1   r2   r3   rangelengenerationsrB   rC   
isinstancer   _convert_message_to_dictmessager   boolr   str)r!   responser5   r%   r6   r?   r@   run_infoi
generationrespmodel_paramsis_chat_modelmodel_inputmodel_responsepl_request_ids                   r   
on_llm_end%PromptLayerCallbackHandler.on_llm_endX   s    	K99==,'/'8'8'<'<'>'H'H'J#$s8//01A!--a03J #&11D $<<(;R@L$LLT:$FM ! Z,Q/ll9b1!45  !Z
N%K%K ..z/A/ABC  4V$12/0!$"5"5T"AB),V03M0B'*8<<+C'DM$ """##M2O 2r$   c                   [        U[        5      (       a  SUR                  S.nO[        U[        5      (       a  SUR                  S.nOb[        U[        5      (       a  SUR                  S.nO=[        U[
        5      (       a  UR                  UR                  S.nO[        SU 35      eSUR                  ;   a  UR                  S   US'   U$ )Nuser)rolecontent	assistantsystemzGot unknown type r,   )	rN   r   rb   r   r   r   ra   
ValueErroradditional_kwargs)r!   rP   message_dicts      r   rO   3PromptLayerCallbackHandler._convert_message_to_dict   s    g|,,$*wGL++$/GOOLL//$,IL--$+LLW__ML0	:;;W...#*#<#<V#DL r$   c                T    0 nU Vs/ sH  o0R                  U5      PM     nnXB4$ s  snf )N)rO   )r!   r+   paramsr7   message_dictss        r   r.   0PromptLayerCallbackHandler._create_message_dicts   s5     "$CKL8a66q98L$$ Ms   %)r   r   r    )NN)r   zOptional[Callable[..., Any]]r   Optional[List[str]]returnNone)r4   Dict[str, Any]r+   zList[List[BaseMessage]]r5   r   r%   Optional[UUID]r&   rm   r6   r   rn   r   )r4   rp   r;   z	List[str]r5   r   r%   rq   r&   rm   r6   r   rn   r   )
rS   r   r5   r   r%   rq   r6   r   rn   ro   )rP   r   rn   rp   )r+   zList[BaseMessage]rn   z+Tuple[List[Dict[str, Any]], Dict[str, Any]])__name__
__module____qualname____firstlineno____doc__r"   r8   r<   r]   rO   r.   __static_attributes__ r$   r   r   r   &   s%   + 8<'+	34	3 %	3 
		3" )-$(
"
 *

 
 &
 "
 
 

0 )-$(
"
 

 
 &
 "
 
 

. )-5353 	53
 &53 53 
53n%)%	4%r$   r   )rn   r   )rv   
__future__r   r1   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   rx   r$   r   <module>r      sH    ' "  L L L  8 
 	}%!4 }%r$   