Viewing File: /opt/hc_python/lib/python3.12/site-packages/sentry_sdk/ai/__pycache__/monitoring.cpython-312.pyc

�

_�*j��	�L�ddlZddlZddlmZddlmZddlZddlmZddl	m
Z
ddlmZddl
mZddlmZdd	lmZmZmZer,dd
lmZmZmZmZmZmZedeedefedeeff�
�Zedd��Zdd�Zdd�Zdeddddfd�Z						d															dd�Z y)�N)�wraps)�
TYPE_CHECKING)�
start_span)�_set_span_data_attribute)�SPANDATA)�StreamedSpan)�Span)�
ContextVar�capture_internal_exceptions�reraise)�Any�	Awaitable�Callable�Optional�TypeVar�Union�F.)�bound�ai_pipeline_name)�default�returnc�.�tj|�y�N)�_ai_pipeline_name�set)�names �G/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/ai/monitoring.py�set_ai_pipeline_namers�����$��c�*�tj�Sr)r�get�rr�get_ai_pipeline_namer#s��� � �"�"r�description�span_kwargsr
zCallable[[F], F]c����d��fd�}|S)Nc����d���fd�}d���fd�}tj��rt��|�St��|�S)Nc
����tj�}�jd|rdnd�}td�|d����5}|jdi�j	�D]\}}|j||��|jdi�j	�D]\}}|j
||��|r1|j
tj|��
|i|��cddd�Stj��	�
|i|��}tjd�cddd�S#t$r�}tj�}	t�5tjj!|tj"�j$ddd	��
�\}
}tj&|
|��ddd�n#1swYnxYwt)|	�Yd}~��d}~wwxYw#tjd�wxYw#1swYyxYw�
N�opzai.runzai.pipeline)rr*�sentry_tags�sentry_data�
ai_monitoringF)�type�handled)�client_options�	mechanism)�hintr"�rr!�popr�items�set_tag�set_datar�GEN_AI_PIPELINE_NAMEr�	Exception�sys�exc_infor�
sentry_sdk�utils�event_from_exception�
get_client�options�
capture_eventr��args�kwargs�
curr_pipeliner*�span�k�v�res�er;�eventr2r$�fr%s            ���r�sync_wrappedz1ai_track.<locals>.decorator.<locals>.sync_wrapped s����-�1�1�3�M�����=�x�m�T�B��C���C�{�C�t�"�J�J�}�b�9�?�?�A�D�A�q��L�L��A�&�B�"�J�J�}�b�9�?�?�A�D�A�q��M�M�!�Q�'�B� ��M�M�(�"?�"?��O��d�-�f�-�D�C�&�)�)�+�6�
4���0��0��*�-�-�d�3��1D�C��%�	+�#&�<�<�>��8�:�*4�*:�*:�*O�*O� !�/9�/D�/D�/F�/N�/N�3B�u�*U�+P�+�K�E�4�
'�4�4�U��F�
;�:�:�� ��*��	+��*�-�-�d�3��/D�C�sa�BG'�"G'�8D �G'� 	G
�)G�AF,�#	G�,F5�1G�G
�G
�
G
�
G$�$G'�'G0c
���K�tj�}�jd|rdnd�}td�|d����5}|jdi�j	�D]\}}|j||��|jdi�j	�D]\}}|j
||��|r9|j
tj|��
|i|���d{���cddd�Stj��	�
|i|���d{���}tjd�cddd�S7�S7�&#t$r�}tj�}	t�5tjj!|tj"�j$ddd	��
�\}
}tj&|
|��ddd�n#1swYnxYwt)|	�Yd}~��d}~wwxYw#tjd�wxYw#1swYyxYw�wr)r3rBs            ���r�
async_wrappedz2ai_track.<locals>.decorator.<locals>.async_wrapped>s������-�1�1�3�M�����=�x�m�T�B��C���C�{�C�t�"�J�J�}�b�9�?�?�A�D�A�q��L�L��A�&�B�"�J�J�}�b�9�?�?�A�D�A�q��M�M�!�Q�'�B� ��M�M�(�"?�"?��O�!"�D�!3�F�!3�3�D�C�&�)�)�+�6�
4�$%�t�$6�v�$6�6��*�-�-�d�3��1D�C�4��7��$�	+�#&�<�<�>��8�:�*4�*:�*:�*O�*O� !�/9�/D�/D�/F�/N�/N�3B�u�*U�+P�+�K�E�4�
'�4�4�U��F�
;�:�:�� ��*��	+��*�-�-�d�3��/D�C�s��9H	�B"G=�D2�G=�"
H	�,G=�D6�
D4�D6�G=�(
H	�2G=�4D6�6	G �?G�AG�9	G�G�G�G#�G � G#�#G:�:G=�=H�H	)rCr
rDr
rr
)�inspect�iscoroutinefunctionr)rLrMrOr$r%s`  ��r�	decoratorzai_track.<locals>.decorators?���	�<	�<�&�&�q�)��5��8�M�*�*��5��8�L�)�)r)rLrrrr")r$r%rRs`` r�ai_trackrSs���@*�D�rc���t�}|rt|tj|�|�t|tj|�|�t|tj
|�|�t|tj|�|�t|tj|�|�t|tj|�|�	|�|�||z}|�t|tj|�yyr)
r#rrr8�GEN_AI_USAGE_INPUT_TOKENS� GEN_AI_USAGE_INPUT_TOKENS_CACHED�%GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE�GEN_AI_USAGE_OUTPUT_TOKENS�$GEN_AI_USAGE_OUTPUT_TOKENS_REASONING�GEN_AI_USAGE_TOTAL_TOKENS)rF�input_tokens�input_tokens_cached�input_tokens_cache_write�
output_tokens�output_tokens_reasoning�total_tokensrs        r�record_token_usagerads���,�-��� ��x�'D�'D�FV�W��� ��x�'I�'I�<�X��&� ���5�5��	
� �+� ���:�:�$�	
�� � ��(�5�5�}�	
��*� ���9�9�#�	
���� 8�]�=V�#�m�3���� ��x�'I�'I�<�X� r)r�
Optional[str]rN)rrb)NNNNNN)rFzUnion[Span, StreamedSpan]r[�
Optional[int]r\rcr]rcr^rcr_rcr`rcrN)!rPr:�	functoolsr�typingr�sentry_sdk.utilsr<r�sentry_sdk.ai.utilsr�sentry_sdk.constsr�sentry_sdk.tracesr�sentry_sdk.tracingr	r
rrr
rrrrrrrrr#�strrSrar"rr�<module>rls���
�� ��!�8�&�*�#�M�M��I�I���5��#�s�(�!3�X�c�9�S�>�>Q�5R�!R�S�T�A��1�4�@�� �#�C�#�C�e�C�8J�C�P%)�+/�04�%)�/3�$(�/Y�
%�/Y�!�/Y�)�/Y�.�	/Y�
#�/Y�-�
/Y�"�/Y�
�/Yr
Back to Directory File Manager