Ë
    µŒj   ã                  ó®   — 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y)ú!Callback handler for promptlayer.é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚListÚOptionalÚTuple)ÚUUID)ÚBaseCallbackHandler)Ú	AIMessageÚBaseMessageÚChatMessageÚHumanMessageÚSystemMessage)ÚChatGenerationÚ	LLMResultc                 ó@   — 	 ddl } | S # t        $ r t        d«      ‚w xY w)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    ú|/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/callbacks/promptlayer_callback.pyÚ_lazy_import_promptlayerr      s6   € ð
Ûð Ðøô ò 
Üð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	y)ÚPromptLayerCallbackHandlerr   Nc                óJ   — t        «        || _        |xs g | _        i | _        y)z*Initialize the PromptLayerCallbackHandler.N)r   Úpl_id_callbackÚpl_tagsÚruns)Úselfr   r   s      r   Ú__init__z#PromptLayerCallbackHandler.__init__)   s$   € ô 	!Ô"Ø,ˆÔØ’} "ˆŒØ02ˆ�	ó    )Úparent_run_idÚtagsc               ó  — |D �cg c]  }| j                  |«      d   ‘Œ c}|j                  di «      dj                  |d   «      t        j                  j	                  «       j                  «       |dœ| j                  |<   y c c}w )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_startz.PromptLayerCallbackHandler.on_chat_model_start4   sy   € ñ DLÓLÁ8¸a˜×3Ñ3°AÓ6°qÓ9À8ÑLØ!'§¡Ð,?ÀÓ!DØ—H‘H˜Z¨Ñ-Ó.Ü"*×"3Ñ"3×"7Ñ"7Ó"9×"CÑ"CÓ"EØñ
ˆ�	‰	�&ÒùÚLs   …Bc               óÆ   — ||j                  di «      dj                  |d   «      t        j                  j                  «       j	                  «       |dœ| j
                  |<   y )Nr&   r'   r(   )Úpromptsr&   r*   r+   r$   )r-   r.   r/   r0   r1   r   )r    r2   r8   r3   r#   r$   r4   s          r   Úon_llm_startz'PromptLayerCallbackHandler.on_llm_startF   sU   € ð Ø!'§¡Ð,?ÀÓ!DØ—H‘H˜Z¨Ñ-Ó.Ü"*×"3Ñ"3×"7Ñ"7Ó"9×"CÑ"CÓ"EØñ
ˆ�	‰	�&Òr"   )r#   c               óº  — ddl m}m} | j                  j	                  |i «      }|sy t
        j
                  j                  «       j                  «       |d<   t        t        |j                  «      «      D �]c  }|j                  |   d   }	|	j                  |j                  dœ}
|j	                  di «      }|j	                  dd «      d u}|r|j	                  dg «      |   n|j	                  dg «      |   g}|r,t        |	t        «      r| j                  |	j                   «      gn|
} ||j	                  d«      d	||| j"                  ||j	                  d
«      |j	                  d«       |«       t%        | j&                  d u«      t)        |«      t)        |«      t)        |j	                  dg «      «      dœ¬«      }| j&                  s�ŒS| j'                  |«       �Œf y )Nr   )Úget_api_keyÚpromptlayer_api_requestÚrequest_end_time)ÚtextÚ
llm_outputr&   r)   r8   r*   Ú	langchainr+   r$   )Ú_langchain_run_idÚ_langchain_parent_run_idÚ_langchain_tags)Úreturn_pl_idÚmetadata)Úpromptlayer.utilsr;   r<   r   r-   r/   r0   r1   ÚrangeÚlenÚgenerationsr>   r?   Ú
isinstancer   Ú_convert_message_to_dictÚmessager   Úboolr   Ústr)r    Úresponser3   r#   r4   r;   r<   Ú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   s·  € ÷ 	Kà—9‘9—=‘= ¨Ó,ˆÙØÜ'/×'8Ñ'8×'<Ñ'<Ó'>×'HÑ'HÓ'JˆÐ#Ñ$Ü”s˜8×/Ñ/Ó0×1ˆAØ!×-Ñ-¨aÑ0°Ñ3ˆJð #Ÿ™Ø&×1Ñ1ñˆDð $Ÿ<™<Ð(;¸RÓ@ˆLØ$ŸL™L¨°TÓ:À$ÐFˆMñ !ð —‘˜Z¨Ó,¨QÒ/à—l‘l 9¨bÓ1°!Ñ4Ð5ð ñ !¤Z°
¼NÔ%Kð ×.Ñ.¨z×/AÑ/AÓBÑCàð ñ 4Ø—‘˜VÓ$ØØØØ—‘ØØ—‘Ð1Ó2Ø—‘Ð/Ó0Ù“Ü! $×"5Ñ"5¸TÐ"AÓBä),¨V«Ü03°MÓ0BÜ'*¨8¯<©<¸ÀÓ+CÓ'DñôˆMð$ ×"Ô"Ø×#Ñ# MÖ2ñO 2r"   c                óv  — t        |t        «      rd|j                  dœ}nxt        |t        «      rd|j                  dœ}nXt        |t        «      rd|j                  dœ}n8t        |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*   )	rJ   r   r]   r   r   r   r\   Ú
ValueErrorÚadditional_kwargs)r    rL   Úmessage_dicts      r   rK   z3PromptLayerCallbackHandler._convert_message_to_dict�   s¢   € Ü�gœ|Ô,Ø$*°w·±ÑG‰LÜ˜¤Ô+Ø$/¸G¿O¹OÑL‰LÜ˜¤Ô/Ø$,¸¿¹ÑI‰LÜ˜¤Ô-Ø$+§L¡L¸W¿_¹_ÑM‰LäÐ0°°	Ð:Ó;Ð;Ø�W×.Ñ.Ñ.Ø#*×#<Ñ#<¸VÑ#DˆL˜Ñ ØÐr"   c                óT   — i }|D �cg c]  }| j                  |«      ‘Œ }}||fS c c}w )N)rK   )r    r)   Úparamsr5   Úmessage_dictss        r   r,   z0PromptLayerCallbackHandler._create_message_dictsž   s9   € ð "$ˆÙCKÓLÁ8¸a˜×6Ñ6°qÕ9À8ˆÐLØ˜fÐ$Ð$ùò Ms   ‡%)NN)r   zOptional[Callable[..., Any]]r   úOptional[List[str]]ÚreturnÚNone)r2   úDict[str, Any]r)   zList[List[BaseMessage]]r3   r   r#   úOptional[UUID]r$   rf   r4   r   rg   r   )r2   ri   r8   z	List[str]r3   r   r#   rj   r$   rf   r4   r   rg   r   )
rO   r   r3   r   r#   rj   r4   r   rg   rh   )rL   r   rg   ri   )r)   zList[BaseMessage]rg   z+Tuple[List[Dict[str, Any]], Dict[str, Any]])
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r6   r9   rY   rK   r,   © r"   r   r   r   &   s%  „ Ù+ð 8<Ø'+ð	3à4ð	3ð %ð	3ð 
ó		3ð" )-Ø$(ñ
à"ð
ð *ð
ð
 ð
ð &ð
ð "ð
ð ð
ð 
ó
ð0 )-Ø$(ñ
à"ð
ð ð
ð
 ð
ð &ð
ð "ð
ð ð
ð 
ó
ð. )-ñ53àð53ð ð	53ð
 &ð53ð ð53ð 
ó53ónð%Ø)ð%à	4ô%r"   r   )rg   r   )rn   Ú
__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   ro   r"   r   Ú<module>rv      sH   ðÙ 'å "ã ß L× LÑ LÝ å 8÷õ ÷ñ
 Ûó	ô}%Ð!4õ }%r"   