
    lh{                         d dl Z d dlmZ d dlmZ d dlmZ d dlmZm	Z	 d dl
mZ erd dl
mZ d dl
mZ d d	lmZ 	 d dlZd Zd Zd Zd Zd Zd Zy# e$ r	  ed
      w xY w)    N)SPANDATA)DidNotEnable)should_send_default_pii)event_from_exceptionsafe_serialize)TYPE_CHECKING)Any)Callable)UsagezOpenAI Agents not installedc                     t        | t        j                         j                  ddd      \  }}t        j                  ||       y )Nopenai_agentsF)typehandled)client_options	mechanism)hint)r   
sentry_sdk
get_clientoptionscapture_event)exceventr   s      }/var/www/pru.catia.catastroantioquia-mas.com/tasa/lib/python3.12/site-packages/sentry_sdk/integrations/openai_agents/utils.py_capture_exceptionr      s?    &!,,.66*u=KE4
 U.    c                      t        j                         } | d uxr | j                  | k(  }|rt         j                  S t         j                  S N)r   get_current_spancontaining_transaction
start_spanstart_transaction)current_spantransaction_existss     r   _get_start_span_functionr$      sH    ..0LD X\%H%HL%X  %7:  XJ<X<XXr   c                    | j                  t        j                  d       | j                  t        j                  |j                         |j
                  j                  r4| j                  t        j                  |j
                  j                         |j                  rXt        |j                  d      r|j                  j                  n|j                  }| j                  t        j                  |       |j
                  j                  r4| j                  t        j                  |j
                  j                         |j
                  j                  r4| j                  t        j                  |j
                  j                         |j
                  j                  r4| j                  t        j                   |j
                  j                         |j
                  j"                  r4| j                  t        j$                  |j
                  j"                         t'        |j(                        dkD  rK| j                  t        j*                  t-        |j(                  D cg c]  }t/        |       c}             y y c c}w )Nopenaimodelr   )set_datar   GEN_AI_SYSTEMGEN_AI_AGENT_NAMEnamemodel_settings
max_tokensGEN_AI_REQUEST_MAX_TOKENSr'   hasattrGEN_AI_REQUEST_MODELpresence_penaltyGEN_AI_REQUEST_PRESENCE_PENALTYtemperatureGEN_AI_REQUEST_TEMPERATUREtop_pGEN_AI_REQUEST_TOP_Pfrequency_penalty GEN_AI_REQUEST_FREQUENCY_PENALTYlentoolsGEN_AI_REQUEST_AVAILABLE_TOOLSr   vars)spanagent
model_nametools       r   _set_agent_datarA   (   s   MM 	MM(,,ejj9&&..0D0D0O0O	
 {{*1%++w*GU[[&&U[[
h33Z@,,44  11	

 ''//1E1E1Q1Q	
 !!h33U5I5I5O5OP--55  22	

 5;;!335;;?4DJ?@	
  @s   &Jc                    | j                  t        j                  |j                         | j                  t        j                  |j
                  j                         | j                  t        j                  |j                         | j                  t        j                  |j                  j                         | j                  t        j                  |j                         y r   )r(   r   GEN_AI_USAGE_INPUT_TOKENSinput_tokens GEN_AI_USAGE_INPUT_TOKENS_CACHEDinput_tokens_detailscached_tokensGEN_AI_USAGE_OUTPUT_TOKENSoutput_tokens$GEN_AI_USAGE_OUTPUT_TOKENS_REASONINGoutput_tokens_detailsreasoning_tokensGEN_AI_USAGE_TOTAL_TOKENStotal_tokens)r=   usages     r   _set_usage_datarP   T   s    MM(44e6H6HIMM11""00 	MM(55u7J7JKMM55##44 	MM(44e6H6HIr   c                    t               sy g g g g d}|j                  d      }|r|d   j                  d|d       |j                  dg       D ]  }d|v r6||j                  d         j                  d|j                  d      d       =|j                  d	      d
k(  r|d   j                  |       f|j                  d	      dk(  s{|d   j                  |        g }|j                         D ](  \  }}t	        |      dkD  s|j                  ||d       * | j                  t        j                  t        |             y )N)systemuser	assistantr@   system_instructionsrR   text)r   rV   inputrolecontentr   function_callrT   function_call_outputr@   r   )rX   rY   )	r   getappenditemsr9   r(   r   GEN_AI_REQUEST_MESSAGESr   )r=   get_response_kwargsmessages_by_rolerU   messagerequest_messagesrX   messagess           r   _set_input_datare   c   sN   "$ 	 .112GH"))6CV*WX&**7B7 	9WW[[0188Y)?@ {{6"o5 -44W=V$(>> (//8	9 *002 Ihx=1##Th$GHI 	MM(22NCS4TUr   c                    t               sy g g d}|j                  D ]t  }|j                  dk(  r#|d   j                  |j	                                5|j                  dk(  sE|j
                  D ]!  }	 |d   j                  |j                         # v t        |d         dkD  r,| j                  t        j                  t        |d                t        |d         dkD  r-| j                  t        j                  t        |d                y y # t        $ r% |d   j                  |j	                                Y w xY w)N)responser@   rZ   r@   rb   rg   r   )r   outputr   r]   dictrY   rV   AttributeErrorr9   r(   r   GEN_AI_RESPONSE_TOOL_CALLSr   GEN_AI_RESPONSE_TEXT)r=   resultoutput_messagesrh   output_messages        r   _set_output_datarp      s5   "$ O
 -- 	N;;/)F#**6;;=9[[I%"(.. NN#J/66~7J7JKN		N ?6"#a'//PV@W1X	
 ?:&'!+))>/*:U+V	
 , & N#J/66~7J7J7LMNs   2D+D>=D>)r   sentry_sdk.constsr   sentry_sdk.integrationsr   sentry_sdk.scoper   sentry_sdk.utilsr   r   typingr   r	   r
   agentsr   ImportErrorr   r$   rA   rP   re   rp    r   r   <module>ry      sl     & 0 4 A  6/Y)
XJVD
i  6
4
556s   A A