§
    xÅj?'  ã            	       ó†  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZmZ er;d dlmZmZmZmZmZmZ  edeedef         edee         f         f         ¬¦  «        Z edd¬¦  «        Zd%d„Zd&d„Z de!ddddfd„Z"	 	 	 	 	 	 d'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d(d$„Z#dS ))é    N)Úwraps)ÚTYPE_CHECKING)Ú
start_span)Ú_set_span_data_attribute)ÚSPANDATA)ÚStreamedSpan)ÚSpan)Úhas_span_streaming_enabled)Ú
ContextVarÚcapture_internal_exceptionsÚreraise)ÚAnyÚ	AwaitableÚCallableÚOptionalÚTypeVarÚUnionÚF.)ÚboundÚai_pipeline_name)ÚdefaultÚnameúOptional[str]Úreturnc                 ó:   — t                                | ¦  «         d S ©N)Ú_ai_pipeline_nameÚset)r   s    úIC:\Projects\Historical\venv\Lib\site-packages\sentry_sdk/ai/monitoring.pyÚset_ai_pipeline_namer       s   € Ý×Ò˜$ÑÔÐÐÐó    c                  ó4   — t                                ¦   «         S r   )r   Úget© r!   r   Úget_ai_pipeline_namer%      s   € Ý× Ò Ñ"Ô"Ð"r!   ÚdescriptionÚspan_kwargsr   zCallable[[F], F]c                 óP   ‡ ‡— t          j        dt          d¬¦  «         dˆ ˆfd„}|S )	Nz•sentry_sdk.ai.ai_track is deprecated and will be removed in version 3.0 of sentry-sdk. Use the manual span API instead, e.g. sentry_sdk.start_span().é   )Ú
stacklevelÚfr   r   c                 ó®   •‡ — dˆˆ ˆfd„}dˆˆ ˆfd„}t          j        ‰ ¦  «        r t          ‰ ¦  «        |¦  «        S  t          ‰ ¦  «        |¦  «        S )NÚargsr   Úkwargsr   c            
      ó²  •— t          j        ¦   «         }t                               ¦   «         }‰                     d|rdnd¦  «        }t          |j        ¦  «        �rt           j                             ‰d|i¬¦  «        5 }|                     di ¦  «         	                    ¦   «         D ]\  }}| 
                    ||¦  «         Œ|                     di ¦  «         	                    ¦   «         D ]\  }}| 
                    ||¦  «         Œ|r4| 
                    t          j        |¦  «          ‰| i |¤Žcd d d ¦  «         S t                               ‰¦  «         	  ‰| i |¤Ž}n­# t          $ r }	t          j        ¦   «         }
t#          ¦   «         5  t           j                             |	t          j        ¦   «         j        dd	d
œ¬¦  «        \  }}t          j        ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t+          |
Ž  Y d }	~	nd }	~	ww xY wt                               d ¦  «         n# t                               d ¦  «         w xY w|cd d d ¦  «         S # 1 swxY w Y   d S t          d‰|dœ‰¤Ž5 }|                     di ¦  «         	                    ¦   «         D ]\  }}|                     ||¦  «         Œ|                     di ¦  «         	                    ¦   «         D ]\  }}|                     ||¦  «         Œ|r4|                     t          j        |¦  «          ‰| i |¤Žcd d d ¦  «         S t                               ‰¦  «         	  ‰| i |¤Ž}n­# t          $ r }	t          j        ¦   «         }
t#          ¦   «         5  t           j                             |	t          j        ¦   «         j        dd	d
œ¬¦  «        \  }}t          j        ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t+          |
Ž  Y d }	~	nd }	~	ww xY wt                               d ¦  «         n# t                               d ¦  «         w xY w|cd d d ¦  «         S # 1 swxY w Y   d S ©NÚopzai.runzai.pipelinez	sentry.op)r   Ú
attributesÚsentry_tagsÚsentry_dataÚai_monitoringF)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)r   r1   r$   ©Ú
sentry_sdkÚ
get_clientr   r#   Úpopr
   ÚoptionsÚtracesr   ÚitemsÚset_attributer   ÚGEN_AI_PIPELINE_NAMEr   Ú	ExceptionÚsysÚexc_infor   ÚutilsÚevent_from_exceptionÚcapture_eventr   Úset_tagÚset_data©r-   r.   ÚclientÚcurr_pipeliner1   ÚspanÚkÚvÚresÚerF   Úeventr:   r&   r+   r'   s                €€€r   Úsync_wrappedz1ai_track.<locals>.decorator.<locals>.sync_wrapped)   s  ø€ ÝÔ*Ñ,Ô,ˆFå-×1Ò1Ñ3Ô3ˆMØ—’ °=Ð'S x xÀmÑTÔTˆBå)¨&¬.Ñ9Ô9ñ =#ÝÔ&×1Ò1Ø$°+¸rÐ1Bð 2ñ ô ð #àØ &§
¢
¨=¸"Ñ =Ô =× CÒ CÑ EÔ Eð 1ð 1™˜˜1Ø×*Ò*¨1¨aÑ0Ô0Ð0Ð0Ø &§
¢
¨=¸"Ñ =Ô =× CÒ CÑ EÔ Eð 1ð 1™˜˜1Ø×*Ò*¨1¨aÑ0Ô0Ð0Ð0à$ð #Ø×*Ò*­8Ô+HÈ-ÑXÔXÐXØ ˜q $Ð1¨&Ð1Ð1ð#ð #ð #ð #ñ #ô #ð #ð #õ *×-Ò-¨kÑ:Ô:Ð:ð8Ø"# ! TÐ"4¨VÐ"4Ð"4˜C˜CøÝ(ð /ð /ð /Ý'*¤|¡~¤~˜HÝ!<Ñ!>Ô!>ð 	Kð 	KÝ.8Ô.>×.SÒ.SØ$%Ý3=Ô3HÑ3JÔ3JÔ3Rà0?Ø38ð/&ð /&ð /Tñ /"ô /"¡  tõ !+Ô 8¸ÀTÐ JÑ JÔ JÐ Jð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kõ $ XÐ.Ð.Ð.Ð.Ð.Ð.Ð.øøøøð/øøøõ .×1Ò1°$Ñ7Ô7Ð7Ð7øÕ-×1Ò1°$Ñ7Ô7Ð7Ð7øøøØ"ð=#ð #ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #õB  ÐG [°RÐGÐG¸;ÐGÐGð #È4Ø &§
¢
¨=¸"Ñ =Ô =× CÒ CÑ EÔ Eð +ð +™˜˜1ØŸš Q¨Ñ*Ô*Ð*Ð*Ø &§
¢
¨=¸"Ñ =Ô =× CÒ CÑ EÔ Eð ,ð ,™˜˜1ØŸš a¨Ñ+Ô+Ð+Ð+Ø$ð #ØŸš¥hÔ&CÀ]ÑSÔSÐSØ ˜q $Ð1¨&Ð1Ð1ð#ð #ð #ð #ñ #ô #ð #ð #õ *×-Ò-¨kÑ:Ô:Ð:ð8Ø"# ! TÐ"4¨VÐ"4Ð"4˜C˜CøÝ(ð /ð /ð /Ý'*¤|¡~¤~˜HÝ!<Ñ!>Ô!>ð 	Kð 	KÝ.8Ô.>×.SÒ.SØ$%Ý3=Ô3HÑ3JÔ3JÔ3Rà0?Ø38ð/&ð /&ð /Tñ /"ô /"¡  tõ !+Ô 8¸ÀTÐ JÑ JÔ JÐ Jð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kõ $ XÐ.Ð.Ð.Ð.Ð.Ð.Ð.øøøøð/øøøõ .×1Ò1°$Ñ7Ô7Ð7Ð7øÕ-×1Ò1°$Ñ7Ô7Ð7Ð7øøøØ"ð7#ð #ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #sô   Â B2IÄ?IÅE#Å"H+Å#
HÅ-!HÆAG/Ç#HÇ/G3Ç3HÇ6G3Ç7HÈH+ÈHÈH+ÈIÈ+IÉIÉIÉIÉ4B2QÌ3QÍMÍPÍ
PÍ!!O<ÎAO#ÏO<Ï#O'Ï'O<Ï*O'Ï+O<Ï7PÏ<PÐPÐQÐP;Ð;QÑQÑQc            
   Ÿ   óæ  •K  — t          j        ¦   «         }t                               ¦   «         }‰                     d|rdnd¦  «        }t          |j        ¦  «        �rt           j                             ‰d|i¬¦  «        5 }|                     di ¦  «         	                    ¦   «         D ]\  }}| 
                    ||¦  «         Œ|                     di ¦  «         	                    ¦   «         D ]\  }}| 
                    ||¦  «         Œ|r:| 
                    t          j        |¦  «          ‰| i |¤Žƒ d {V —†cd d d ¦  «         S t                               ‰¦  «         	  ‰| i |¤Žƒ d {V —†}n­# t          $ r }	t          j        ¦   «         }
t#          ¦   «         5  t           j                             |	t          j        ¦   «         j        dd	d
œ¬¦  «        \  }}t          j        ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t+          |
Ž  Y d }	~	nd }	~	ww xY wt                               d ¦  «         n# t                               d ¦  «         w xY w|cd d d ¦  «         S # 1 swxY w Y   d S t          d‰|dœ‰¤Ž5 }|                     di ¦  «         	                    ¦   «         D ]\  }}|                     ||¦  «         Œ|                     di ¦  «         	                    ¦   «         D ]\  }}|                     ||¦  «         Œ|r:|                     t          j        |¦  «          ‰| i |¤Žƒ d {V —†cd d d ¦  «         S t                               ‰¦  «         	  ‰| i |¤Žƒ d {V —†}n­# t          $ r }	t          j        ¦   «         }
t#          ¦   «         5  t           j                             |	t          j        ¦   «         j        dd	d
œ¬¦  «        \  }}t          j        ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t+          |
Ž  Y d }	~	nd }	~	ww xY wt                               d ¦  «         n# t                               d ¦  «         w xY w|cd d d ¦  «         S # 1 swxY w Y   d S r0   r;   rL   s                €€€r   Úasync_wrappedz2ai_track.<locals>.decorator.<locals>.async_wrappedn   se  øè è € ÝÔ*Ñ,Ô,ˆFå-×1Ò1Ñ3Ô3ˆMØ—’ °=Ð'S x xÀmÑTÔTˆBå)¨&¬.Ñ9Ô9ñ <#ÝÔ&×1Ò1Ø$°+¸rÐ1Bð 2ñ ô ð #àØ &§
¢
¨=¸"Ñ =Ô =× CÒ CÑ EÔ Eð 1ð 1™˜˜1Ø×*Ò*¨1¨aÑ0Ô0Ð0Ð0Ø &§
¢
¨=¸"Ñ =Ô =× CÒ CÑ EÔ Eð 1ð 1™˜˜1Ø×*Ò*¨1¨aÑ0Ô0Ð0Ð0à$ð #Ø×*Ò*­8Ô+HÈ-ÑXÔXÐXØ%& Q¨Ð%7°Ð%7Ð%7Ð7Ð7Ð7Ð7Ð7Ð7ð#ð #ð #ð #ñ #ô #ð #ð #õ *×-Ò-¨kÑ:Ô:Ð:ð8Ø()¨¨4Ð(:°6Ð(:Ð(:Ð":Ð":Ð":Ð":Ð":Ð":˜C˜CøÝ(ð /ð /ð /Ý'*¤|¡~¤~˜HÝ!<Ñ!>Ô!>ð 	Kð 	KÝ.8Ô.>×.SÒ.SØ$%Ý3=Ô3HÑ3JÔ3JÔ3Rà0?Ø38ð/&ð /&ð /Tñ /"ô /"¡  tõ !+Ô 8¸ÀTÐ JÑ JÔ JÐ Jð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kõ $ XÐ.Ð.Ð.Ð.Ð.Ð.Ð.øøøøð/øøøõ .×1Ò1°$Ñ7Ô7Ð7Ð7øÕ-×1Ò1°$Ñ7Ô7Ð7Ð7øøøØ"ð=#ð #ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #õ@  ÐG [°RÐGÐG¸;ÐGÐGð #È4Ø &§
¢
¨=¸"Ñ =Ô =× CÒ CÑ EÔ Eð +ð +™˜˜1ØŸš Q¨Ñ*Ô*Ð*Ð*Ø &§
¢
¨=¸"Ñ =Ô =× CÒ CÑ EÔ Eð ,ð ,™˜˜1ØŸš a¨Ñ+Ô+Ð+Ð+Ø$ð #ØŸš¥hÔ&CÀ]ÑSÔSÐSØ%& Q¨Ð%7°Ð%7Ð%7Ð7Ð7Ð7Ð7Ð7Ð7ð#ð #ð #ð #ñ #ô #ð #ð #õ *×-Ò-¨kÑ:Ô:Ð:ð8Ø()¨¨4Ð(:°6Ð(:Ð(:Ð":Ð":Ð":Ð":Ð":Ð":˜C˜CøÝ(ð /ð /ð /Ý'*¤|¡~¤~˜HÝ!<Ñ!>Ô!>ð 	Kð 	KÝ.8Ô.>×.SÒ.SØ$%Ý3=Ô3HÑ3JÔ3JÔ3Rà0?Ø38ð/&ð /&ð /Tñ /"ô /"¡  tõ !+Ô 8¸ÀTÐ JÑ JÔ JÐ Jð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kõ $ XÐ.Ð.Ð.Ð.Ð.Ð.Ð.øøøøð/øøøõ .×1Ò1°$Ñ7Ô7Ð7Ð7øÕ-×1Ò1°$Ñ7Ô7Ð7Ð7øøøØ"ð7#ð #ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #sô   ÂB8I&ÅI&Å"E1Å0H9Å1
HÅ;!HÆAG=Ç1HÇ=HÈHÈHÈHÈH9ÈHÈH9ÈI&È9IÉI&É&I*É-I*ÊB8Q&ÍQ&Í"M1Í0P9Í1
PÍ;!PÎAO=Ï1PÏ=PÐPÐPÐPÐP9ÐPÐP9ÐQ&Ð9QÑQ&Ñ&Q*Ñ-Q*)r-   r   r.   r   r   r   )ÚinspectÚiscoroutinefunctionr   )r+   rU   rW   r&   r'   s   `  €€r   Ú	decoratorzai_track.<locals>.decorator(   s§   øø€ ðC	#ð C	#ð C	#ð C	#ð C	#ð C	#ð C	#ð C	#ðJB	#ð B	#ð B	#ð B	#ð B	#ð B	#ð B	#ð B	#õH Ô& qÑ)Ô)ð 	*Ø•5˜‘8”8˜MÑ*Ô*Ð*à•5˜‘8”8˜LÑ)Ô)Ð)r!   )r+   r   r   r   )ÚwarningsÚwarnÚDeprecationWarning)r&   r'   rZ   s   `` r   Úai_trackr^       s\   øø€ Ý„Mð	IåØð	ñ ô ð ðM*ð M*ð M*ð M*ð M*ð M*ð M*ð^ Ðr!   rO   úUnion[Span, StreamedSpan]Úinput_tokensúOptional[int]Úinput_tokens_cachedÚinput_tokens_cache_writeÚoutput_tokensÚoutput_tokens_reasoningÚtotal_tokensc                 óÒ  — t          ¦   «         }|rt          | t          j        |¦  «         |�t          | t          j        |¦  «         |�t          | t          j        |¦  «         |�t          | t          j        |¦  «         |�t          | t          j        |¦  «         |�t          | t          j        |¦  «         |€	|�|�||z   }|�t          | t          j	        |¦  «         d S d S r   )
r%   r   r   rC   Ú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)rO   r`   rb   rc   rd   re   rf   r   s           r   Úrecord_token_usagern   º   s#  € õ ,Ñ-Ô-ÐØð XÝ  ¥xÔ'DÐFVÑWÔWÐWàÐÝ  ¥xÔ'IÈ<ÑXÔXÐXàÐ&Ý ØÝÔ5Øñ	
ô 	
ð 	
ð  Ð+Ý ØÝÔ:Ø$ñ	
ô 	
ð 	
ð Ð Ý Ø•(Ô5°}ñ	
ô 	
ð 	
ð Ð*Ý ØÝÔ9Ø#ñ	
ô 	
ð 	
ð Ð Ð 8¸]Ð=VØ# mÑ3ˆàÐÝ  ¥xÔ'IÈ<ÑXÔXÐXÐXÐXð  Ðr!   )r   r   r   N)r   r   )NNNNNN)rO   r_   r`   ra   rb   ra   rc   ra   rd   ra   re   ra   rf   ra   r   N)$rX   rE   r[   Ú	functoolsr   Útypingr   Úsentry_sdk.utilsr<   r   Úsentry_sdk.ai.utilsr   Úsentry_sdk.constsr   Úsentry_sdk.tracesr   Úsentry_sdk.tracingr	   Úsentry_sdk.tracing_utilsr
   r   r   r   r   r   r   r   r   r   r   r   r    r%   Ústrr^   rn   r$   r!   r   ú<module>rx      sD  ðØ €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *Ø #Ð #Ð #Ð #Ð #Ð #Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Màð UØIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIÐIàˆ�˜5 ¨#¨s¨(Ô!3°X¸cÀ9ÈSÄ>Ð>QÔ5RÐ!RÔSÐTÑTÔT€Aà�JÐ1¸4Ð@Ñ@Ô@Ð ð ð  ð  ð  ð#ð #ð #ð #ðW˜#ð W¨eð WÐ8Jð Wð Wð Wð Wðx %)Ø+/Ø04Ø%)Ø/3Ø$(ð/YØ
%ð/Yà!ð/Yð )ð/Yð .ð	/Yð
 #ð/Yð -ð/Yð "ð/Yð 
ð/Yð /Yð /Yð /Yð /Yð /Yr!   