
    `i                        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mZmZmZ d dlmZmZmZmZ d dlmZmZ d d	lmZ d d
l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' d dl(m)Z) e)r,d dl(m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0mZ d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8 	 	 d dl7m9Z9 n# e:$ r dZ9Y nw xY w	 d dl7m8Z8 n# e:$ r dZ8Y nw xY wd dl;m<Z<m=Z= d dl>m?Z?m@Z@ e)r
d dlAmBZBmCZCmDZD n# e:$ r  ed          w xY wdZE	 d dlFmGZGmHZH d dlImJZJ n# e:$ r dZEY nw xY w G d de          ZKdLdd d!eLd"dfd#ZMd$d d%d&d"eNfd'ZO	 	 	 	 	 	 	 	 	 	 	 	 dMd1ZP	 	 	 	 dNd5ZQ	 	 	 	 	 	 dOd6ZR	 	 	 	 	 	 	 	 dPd8ZS	 	 	 	 	 	 	 	 dPd9ZT	 	 	 	 	 	 	 	 dPd:ZU	 	 dQd+d,d*d d2d3d7dd;d<d=eLd"dfd>ZVdRdAZWdSdBZXdSdCZYdRdDZZdTdEZ[dTdFZ\dRdGZ]dTdHZ^dTdIZ_dJd d"eLfdKZ`dS )U    Nwraps)Iterable)consts)record_token_usage)set_data_normalizednormalize_message_rolestruncate_and_annotate_messages&truncate_and_annotate_embedding_inputs)_is_system_instruction_get_system_instructions_transform_system_instructions_get_text_items)r   r   )SPANDATA)DidNotEnableIntegration)should_send_default_pii)set_span_errored)capture_internal_exceptionsevent_from_exceptionsafe_serializereraise)TYPE_CHECKING)AnyListOptionalCallableAsyncIteratorIteratorUnionr   )Span)TextPart)ResponseInputParam)Omit)NotGiven)CompletionsAsyncCompletions)
EmbeddingsAsyncEmbeddings)ChatCompletionMessageParamChatCompletionChunk ChatCompletionSystemMessageParamzOpenAI not installedT)	ResponsesAsyncResponses)ResponseCompletedEventFc            	       f    e Zd ZdZde Z	 	 ddd deddd	dfd
Zedd            Zdd de	d	e
fdZdS )OpenAIIntegrationopenaizauto.ai.TNselfinclude_promptstiktoken_encoding_namezOptional[str]returnc                 f    || _         d | _        | dd l}|                    |          | _        d S d S Nr   )r4   tiktoken_encodingtiktokenget_encoding)r3   r4   r5   r:   s       r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sentry_sdk/integrations/openai.py__init__zOpenAIIntegration.__init__\   sH    
  /!%!-OOO%-%:%:;Q%R%RD""" .-    c                     t          t          j                  t          _        t          t          j                  t          _        t          t          j                  t          _        t          t          j                  t          _        t          rHt          t          j                  t          _        t          t          j                  t          _        d S d S N)_wrap_chat_completion_creater&   create"_wrap_async_chat_completion_creater'   _wrap_embeddings_creater(   _wrap_async_embeddings_creater)   RESPONSES_API_ENABLED_wrap_responses_creater-   _wrap_async_responses_creater.    r>   r<   
setup_oncezOpenAIIntegration.setup_oncei   s    9+:LMM"D##
 #
 4J4EFF
!>?U!V!V  	X5i6FGGI$@AV$W$WN!!!	X 	Xr>   sc                     | j         dS 	 t          | j                             |                    S # t          $ r Y dS w xY wr8   )r9   lenencode_ordinary	Exception)r3   rK   s     r<   count_tokenszOpenAIIntegration.count_tokensw   sV    !)1	t-==a@@AAA 	 	 	11	s   &2 
A A )TN)r6   N)__name__
__module____qualname__
identifieroriginboolr=   staticmethodrJ   strintrP   rI   r>   r<   r1   r1   X   s        J$
$$F !%26S S!SS !0S 
	S S S S X X X \X. 3 3      r>   r1   excr   manual_span_cleanupr6   c                    t          j                    }t          |           |r||                    d d d            t	          | t          j                    j        ddd          \  }}t          j        ||           d S )Nr2   F)typehandled)client_options	mechanism)hint)
sentry_sdkget_current_spanr   __exit__r   
get_clientoptionscapture_event)rZ   r[   current_spaneventra   s        r<   _capture_exceptionrj      s     .00L\""" 0|7dD$///&!,..6#66  KE4
 U......r>   usagenamesz	List[str]c                     |D ]G}t          | |          r5t          t          | |          t                    rt          | |          c S HdS r8   )hasattr
isinstancegetattrrY   )rk   rl   names      r<   
_get_usagerr      sZ     ( (5$ 	(Jwud/C/CS$I$I 	(5$'''''1r>   messages.Optional[Iterable[ChatCompletionMessageParam]]responsespanr!   streaming_message_responsesOptional[List[str]]rP   Callable[..., Any]c                    d}d}d}d}d}	t          |d          rt          |j        ddg          }t          |j        d          rt          |j        j        dg          }t          |j        ddg          }t          |j        d	          rt          |j        j        d
g          }t          |j        dg          }	|dk    r| pg D ]}
t          |
t                    r| |
          z  }&t          |
t                    rF|
                    d          }|St          |          }|t          fd|D                       z  }|dk    rm||D ]}
| |
          z  }nWt          |d          rG|j        D ]?}t          |d          r-t          |j        d          r| |j        j                  z  }@|pd }|pd }|pd }|pd }|	pd }	t          ||||||	           d S )Nr   rk   input_tokensprompt_tokensinput_tokens_detailscached_tokensoutput_tokenscompletion_tokensoutput_tokens_detailsreasoning_tokenstotal_tokenscontentc              3   .   K   | ]} |          V  d S r@   rI   ).0textrP   s     r<   	<genexpr>z)_calculate_token_usage.<locals>.<genexpr>   s-      #N#N4LL$6$6#N#N#N#N#N#Nr>   choicesmessage)r{   input_tokens_cachedr   output_tokens_reasoningr   )rn   rr   rk   r}   r   ro   rX   dictgetr   sumr   r   r   r   )rs   ru   rv   rw   rP   r{   r   r   r   r   r   message_content
text_itemschoices       `         r<   _calculate_token_usager      s    %&L+,%&M/0$%Lx!! D!(.>?2STT8>#9:: 	",3o5F# # #N_.AB
 
 8>#:;; 	&047I6J' '# "(.>2BCC q~2 	 	G'3'' 
W 5 55GT** ")++i"8"8"*,_==
#N#N#N#N:#N#N#N N NN &26 7 7g!6!667Xy)) 	J"* J J69-- J'&.)2T2T J!\\&.2H%I%IIM  '4L-5!)TM5='4L!/# 7!     r>   kwargsdict[str, Any])Optional[Union[Iterable[Any], list[str]]]c                     |                      d          }||                      d          }t          |t                    r|g}|S )Nrs   input)r   ro   rX   )r   rs   s     r<   _get_input_messagesr      sJ     zz*%%H::g&&(C   :Or>   c                 L   t          | t          j        d           t          j        t          j        t          j        t          j        t          j        t          j        t          j	        d}|
                                D ]<\  }}|                    |          }| t          |          rt          | ||           =|                    d          }|Lt          |          r?t          |          dk    r.t          | t          j        t          |                     d S d S d S d S )Nr2   )modelstream
max_tokenspresence_penaltyfrequency_penaltytemperaturetop_ptoolsr   )r   r   GEN_AI_SYSTEMGEN_AI_REQUEST_MODELGEN_AI_RESPONSE_STREAMINGGEN_AI_REQUEST_MAX_TOKENSGEN_AI_REQUEST_PRESENCE_PENALTY GEN_AI_REQUEST_FREQUENCY_PENALTYGEN_AI_REQUEST_TEMPERATUREGEN_AI_REQUEST_TOP_Pitemsr   	_is_givenrM   GEN_AI_REQUEST_AVAILABLE_TOOLSr   )rv   r   kwargs_keys_to_attributeskey	attributevaluer   s          r<   _commmon_set_input_datar      s   
 h4h??? .48$D%F:.! ! 499;; 8 8Y

35!1!1i777 JJwEYu--#e**q..(9>%;P;P	
 	
 	
 	
 	
 ..r>   integrationc                    |                     d          }|                     d          }t                      r|j        s-t          | t          j        d           t          | |           d S |t|rt          |          rc|                     t          j	        t          j        d|dg                     t          | t          j        d           t          | |           d S |-t          | t          j        d           t          | |           d S g }|'t          |          r|                    d|d           t          |          }|t          |          z  }t          |          dk    r2|                     t          j	        t          j        |                     t!          |t"                    rt%          |g          }t'          j                    }t+          || |          }	|	t          | t          j        |	d           t          | t          j        d           t          | |           d S d	 |D             }
t          |
          dk    rRt%          |
          }t'          j                    }t+          || |          }	|	t          | t          j        |	d           t          | t          j        d           t          | |           d S )
Ninstructionsr   	responsesr   )r]   r   r   Funpackc                 0    g | ]}t          |          |S rI   ) _is_system_instruction_responsesr   r   s     r<   
<listcomp>z1_set_responses_api_input_data.<locals>.<listcomp>T  s7       /OPW/X/X  r>   )r   r   r4   r   r   GEN_AI_OPERATION_NAMEr   r   set_dataGEN_AI_SYSTEM_INSTRUCTIONSjsondumpsappend"_get_system_instructions_responsesr   rM   ro   rX   r	   rb   get_current_scoper
   GEN_AI_REQUEST_MESSAGES)rv   r   r   explicit_instructionsrs   instructions_text_partssystem_instructionsnormalized_messagesscopemessages_datanon_system_messagess              r<   _set_responses_api_input_datar     s%   
 ;A**^:T:T;A::g;N;NH"$$ K,G D("@+NNNf--- 	!-+,, . 	/J !'#8  
	
 
	
 
	
 	D("@+NNNf---D("@+NNNf---02(Y7L-M-M(&&0 	
 	
 	
 =XFF =>QRRR
"##a''/J.//	
 	
 	

 (C   5xjAA,..67JDRWXX$h6e    	D("@+NNNf--- '   !##56IJJ,..67JDRWXX$h6e    h<kJJJD&)))))r>   c                    |                     d          }t                      r	|j        r|-t          | t          j        d           t          | |           d S t          |          }t          |          dk    r?| 	                    t          j
        t          j        t          |                               t          |t                    rt!          |g          }t#          j                    }t'          || |          }|t          | t          j        |d           t          | t          j        d           t          | |           d S d |D             }t          |          dk    rRt!          |          }t#          j                    }t'          || |          }|t          | t          j        |d           t          | t          j        d           t          | |           d S )Nrs   chatr   Fr   c                 0    g | ]}t          |          |S rI   )"_is_system_instruction_completionsr   s     r<   r   z3_set_completions_api_input_data.<locals>.<listcomp>  s6       1'::  r>   )r   r   r4   r   r   r   r   $_get_system_instructions_completionsrM   r   r   r   r   r   ro   rX   r	   rb   r   r
   r   )	rv   r   r   rs   r   r   r   r   r   s	            r<   _set_completions_api_input_datar   d  s   
 NTZZN NH
 $%%* D("@&IIIf--->xHH
!##/J56IJJKK	
 	
 	

 (C   
5xjAA,..67JDRWXX$h6e    	D("@&IIIf---   
 !##56IJJ,..67JDRWXX$h6e    h<fEEED&)))))r>   c                 r   t          |          }|zt          |          dk    rgt                      rY|j        rRt	          |          }t          j                    }t          || |          }|t          | t          j
        |d           t          | t          j        d           t          | |           d S )Nr   Fr   
embeddings)r   rM   r   r4   r	   rb   r   r   r   r   GEN_AI_EMBEDDINGS_INPUTr   r   )rv   r   r   rs   r   r   r   s          r<   _set_embeddings_input_datar     s    
 #6**H 	MMA#%% '  6h??,..>u
 
 $h6e    h<lKKKD&)))))r>   
start_timezOptional[float]finish_spanc           
          t          d          r t           t          j        j                   |                    d          |                    d          t          t                    rgd t          d          rt                      rFj	        r?d j
        D             }t          |          dk    rt           t          j        |           t           d j                   r                     d d d            d S d S t          d          r}t                      r9j	        r1g g d}j        D ]}|j        d	k    r.|d
                             |                                           ;|j        dk    rh|j        D ]`}		 |d                             |	j                   $# t,          $ r0 |d                             |	                                           Y ]w xY wt          |d
                   dk    r#t           t          j        |d
         d           t          |d                   dk    r!t           t          j        |d                    t           d j                   r                     d d d            d S d S t          d          rlg j        d f	d}
d f	d}t          t#          j                            dk    r |            _        d S  |
            _        d S t           d j                   r                     d d d            d S d S )Nr   rs   r   r   c                 N    g | ]"}|j         	|j                                         #S r@   )r   
model_dump)r   r   s     r<   r   z$_set_output_data.<locals>.<listcomp>  s8       >- ))++---r>   r   output)ru   toolfunction_callr   r   ru   Fr   	_iteratorr6   Iterator[ChatCompletionChunk]c            	   3     	K   d} 
D ]}t                      5  t          |d          rd}|j        D ]}t          |d          rt          |j        d          rkt	          j                    z
  |j        j        }t                    |k    r                    g            |                             |pd           |dz  }ntt          |d          rdt	          j                    z
  t                    dk    r                    g            d                             |j        pd           t          r4t          |t                    rt          	|j        d j                   d} d d d            n# 1 swxY w Y   |V  t                      5  t          t           j                   t                    dk    rVd	 D             }t%                      r"j        rt          t           j        |           | rt          	|j                   d d d            n# 1 swxY w Y   r                    d d d            d S d S )
NTr   r   deltar       Fc                 8    g | ]}d                      |          S r   joinr   chunks     r<   r   z:_set_output_data.<locals>.new_iterator.<locals>.<listcomp>3  "    $J$J$JRWWU^^$J$J$Jr>   r   rn   r   r   timeperf_counterr   rM   r   rF   ro   r/   r   ru   rP   r   r   #GEN_AI_RESPONSE_TIME_TO_FIRST_TOKENr   r4   GEN_AI_RESPONSE_TEXTrd   count_tokens_manuallyxchoice_indexr   r   all_responsesdata_bufr   r   rs   old_iteratorru   rv   r   ttfts         r<   new_iteratorz&_set_output_data.<locals>.new_iterator  sQ     $(!! $ $022 !6 !6q),, :'(&'i 
. 
.F&vw77 MG &i= = M $.#9dl+/+<+>+>+KD*0,*>#&x==L#@#@$,OOB$7$7$7 ( 6 = =gm L L L(A-LL
. !G,, :%1dl#'#4#6#6#CDx==A--$OOB/// **17=b999 - 6A?U1V1V 6.$J  '4   16-C!6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6F ,..  #'hJD   x==1$$$J$J$J$J$JM.00 [5P + ("?   - .$$ )'4                (  0dD$/////0 0s%   E"FF	F	&BH99H= H="AsyncIterator[ChatCompletionChunk]c            	       	K   d} 
2 3 d {V }t                      5  t          |d          rd}|j        D ]}t          |d          rt          |j        d          rkt	          j                    z
  |j        j        }t                    |k    r                    g            |                             |pd           |dz  }ntt          |d          rdt	          j                    z
  t                    dk    r                    g            d                             |j        pd           t          r4t          |t                    rt          	|j        d j                   d} d d d            n# 1 swxY w Y   |W V  6 t                      5  t          t           j                   t                    dk    rVd	 D             }t%                      r"j        rt          t           j        |           | rt          	|j                   d d d            n# 1 swxY w Y   r                    d d d            d S d S )
NTr   r   r   r   r   r   Fc                 8    g | ]}d                      |          S r   r   r   s     r<   r   z@_set_output_data.<locals>.new_iterator_async.<locals>.<listcomp>s  r   r>   r   r   s         r<   new_iterator_asyncz,_set_output_data.<locals>.new_iterator_asyncD  su     $(!' $ $ $ $ $ $ $a022 !6 !6q),, :'(&'i 
. 
.F&vw77 MG &i= = M $.#9dl+/+<+>+>+KD*0,*>#&x==L#@#@$,OOB$7$7$7 ( 6 = =gm L L L(A-LL
. !G,, :%1dl#'#4#6#6#CDx==A--$OOB/// **17=b999 - 6A?U1V1V 6.$J  '4   16-C!6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6 !6F I (L -..  #'hJD   x==1$$$J$J$J$J$JM.00 [5P + ("?   - .$$ )'4                &  0dD$/////0 0s*   FE"FF	F	,BH??IIz<class 'async_generator'>)r6   r   )r6   r   )rn   r   r   GEN_AI_RESPONSE_MODELr   r   ro   rX   r   r4   r   rM   r   r   rP   rd   r   r]   r   r   r   r   AttributeErrorGEN_AI_RESPONSE_TOOL_CALLSr   )rv   ru   r   r   r   r   response_textoutput_messagesr   output_messager   r   r   rs   r   r   s   `` ```      @@@@r<   _set_output_datar    sb    x!! RD("@(.QQQ zz*%%H::g&&
8S 9 9:"Dx## ~,"$$ 	X)D 	X &.  M
 =!!A%%#D(*GWWWx4{?WXXX 	,MM$d+++++	, 	, 
8	$	$ o,"$$ 	)D 	7 7O
 #/ 	V 	V;/11#F+226;;==AAAA[I--*0. V VV+J7>>~?RSSSS- V V V+J7>>~?R?R?T?TUUUUUV ?6*++a//#7#F+ 	    ?:.//!33#(79T   	x4{?WXXX 	,MM$d+++++	, 	, 
;	'	' K,&()>	0 >	0 >	0 >	0 >	0 >	0 >	0 >	0 >	0 >	0 >	0 >	0 >	0 >	0@=	0 =	0 =	0 =	0 =	0 =	0 =	0 =	0 =	0 =	0 =	0 =	0 =	0 =	0~ tH&''((,GGG!3!3!5!5H!-Hx4{?WXXX 	,MM$d+++++	, 	,s    G  7G:9G:fargsc              /   "  K   t          j                                        t                    }| | |i |S d|vr | |i |S 	 t	          |d                    n# t
          $ r  | |i |cY S w xY w|                    d          }t          j        t          j	        j
        d| t          j                  }|                                 t          |||           t          j                    }| ||fV }t!          |||||d           |S )Nrs   r   zchat oprq   rU   Tr   )rb   re   get_integrationr1   iter	TypeErrorr   
start_spanr   OPGEN_AI_CHATrU   	__enter__r   r   r   r  r  r  r   r   r   rv   r   ru   s           r<   _new_chat_completion_commonr    sT     '))99:KLLKq$!&!!!q$!&!!!"VJ     " " "q$!&!!!!!" JJwE 9 U__ '  D
 	NN#D&+>>>"$$Jf_$$HT8V[*RVWWWWOs   A A0/A0c                 J     ddt                     d	 fd            }|S )
Nr  r   r  r   r6   c                    t          | g|R i |}	 t          |          \  } }}n# t          $ r}|j        cY d }~S d }~ww xY w	 	  | |i |}nh# t          $ r[}t          j                    }t                      5  t          |           d d d            n# 1 swxY w Y   t          |  Y d }~nd }~ww xY w|
                    |          S # t          $ r}|j        cY d }~S d }~ww xY wr@   r  nextStopIterationr   rO   sysexc_infor   rj   r   sendr  r  r   generesultr  s          r<   _execute_syncz3_wrap_chat_completion_create.<locals>._execute_sync  s~   )!=d===f==	"3iiOAtVV 	 	 	7NNNNNN		#D+F++ # # #<>>022 * *&q)))* * * * * * * * * * * * * * *"""""""	# 88F### 	 	 	7NNNNNN	}   & 
A<AAA C 
B4!B/:B
B/B	B/B	B/*C /B44C 
C'C"C'"C'c                      t          j                                        t                    }|d|vr | i |S  g| R i |S Nrs   rb   re   r  r1   r  r   r   r!  r  s      r<   _sentry_patched_create_synczA_wrap_chat_completion_create.<locals>._sentry_patched_create_sync  se     +--==>OPP*F":":1d%f%%%}Q0000000r>   r  r   r  r   r   r   r6   r   r  r   r   r   r6   r   r   r  r'  r!  s   ` @r<   rA   rA     sU       * 1XX1 1 1 1 1 1 X1 '&r>   c                 J     ddt                     d	 fd            }|S )
Nr  r   r  r   r6   c                   K   t          | g|R i |}	 t          |          \  } }}n$# t          $ r}|j         d {V cY d }~S d }~ww xY w	 	  | |i | d {V }nh# t          $ r[}t          j                    }t                      5  t          |           d d d            n# 1 swxY w Y   t          |  Y d }~nd }~ww xY w|
                    |          S # t          $ r}|j        cY d }~S d }~ww xY wr@   r  r  s          r<   _execute_asyncz:_wrap_async_chat_completion_create.<locals>._execute_async  s     )!=d===f==	!"3iiOAtVV 	! 	! 	!======      	!	# q$1&11111111 # # #<>>022 * *&q)))* * * * * * * * * * * * * * *"""""""	# 88F### 	 	 	7NNNNNN	   ( 
A	AA	A	A C 
C'!B=B$B=$B(	(B=+B(	,B=8C =CC 
C5$C0*C50C5c                     K   t          j                                        t                    }|d|vr | i | d {V S  g| R i | d {V S r$  r%  r  r   r   r-  r  s      r<   _sentry_patched_create_asynczH_wrap_async_chat_completion_create.<locals>._sentry_patched_create_async  s       +--==>OPP*F":":D+F+++++++++#^A7777777777777r>   r(  r)  r   r  r1  r-  s   ` @r<   rC   rC     sU       * 1XX8 8 8 8 8 8 X8 ('r>   c              /     K   t          j                                        t                    }| | |i |S |                    d          }t          j        t          j        j        d| t          j	                  5 }t          |||           | ||fV }t          ||||d           |cd d d            S # 1 swxY w Y   d S )Nr   zembeddings r	  Fr  )rb   re   r  r1   r   r  r   r  GEN_AI_EMBEDDINGSrU   r   r  )r  r  r   r   r   rv   ru   s          r<   _new_embeddings_create_commonr5    s#     '))99:KLLKq$!&!!!JJwE		9&"5"" '
 
 
  
"4===D&((x%PPPP                 s    .B;;B?B?c                 J     ddt                     d	 fd            }|S )
Nr  r   r  r   r6   c                    t          | g|R i |}	 t          |          \  } }}n# t          $ r}|j        cY d }~S d }~ww xY w	 	  | |i |}nj# t          $ r]}t          j                    }t                      5  t          |d           d d d            n# 1 swxY w Y   t          |  Y d }~nd }~ww xY w|
                    |          S # t          $ r}|j        cY d }~S d }~ww xY wNF)r[   r5  r  r  r   rO   r  r  r   rj   r   r  r  s          r<   r!  z._wrap_embeddings_create.<locals>._execute_sync	  s   +A??????	"3iiOAtVV 	 	 	7NNNNNN		#D+F++ # # #<>>022 E E&qeDDDDE E E E E E E E E E E E E E E"""""""	# 88F### 	 	 	7NNNNNN	s}   & 
A<AAA C 
B6!B1:BB1B	B1B	 B1,C 1B66C 
C)C$C)$C)c                      t          j                                        t                    }| | i |S  g| R i |S r@   r%  r&  s      r<   r'  z<_wrap_embeddings_create.<locals>._sentry_patched_create_sync  [     +--==>OPP1d%f%%%}Q0000000r>   r(  r)  r   r*  s   ` @r<   rD   rD     U       * 1XX1 1 1 1 1 1 X1 '&r>   c                 J     ddt                     d	 fd            }|S )
Nr  r   r  r   r6   c                   K   t          | g|R i |}	 t          |          \  } }}n$# t          $ r}|j         d {V cY d }~S d }~ww xY w	 	  | |i | d {V }nj# t          $ r]}t          j                    }t                      5  t          |d           d d d            n# 1 swxY w Y   t          |  Y d }~nd }~ww xY w|
                    |          S # t          $ r}|j        cY d }~S d }~ww xY wr8  r9  r  s          r<   r-  z5_wrap_async_embeddings_create.<locals>._execute_async*  s     +A??????	!"3iiOAtVV 	! 	! 	!======      	!	# q$1&11111111 # # #<>>022 E E&qeDDDDE E E E E E E E E E E E E E E"""""""	# 88F### 	 	 	7NNNNNN	s   ( 
A	AA	A	A C 
C'!B?B&B?&B*	*B?-B*	.B?:C ?CC 
C7&C2,C72C7c                     K   t          j                                        t                    }| | i | d {V S  g| R i | d {V S r@   r%  r0  s      r<   r1  zC_wrap_async_embeddings_create.<locals>._sentry_patched_create_async?         +--==>OPPD+F+++++++++#^A7777777777777r>   r(  r)  r   r2  s   ` @r<   rE   rE   )  sU       * 1XX8 8 8 8 8 8 X8 ('r>   c              /     K   t          j                                        t                    }| | |i |S |                    d          }t          j        t          j        j        d| t          j	                  }|
                                 t          |||           t          j                    }| ||fV }t          |||||d           |S )Nr   z
responses r	  Tr  )rb   re   r  r1   r   r  r   r  GEN_AI_RESPONSESrU   r  r   r   r   r  r  s           r<   _new_responses_create_commonrC  J  s      '))99:KLLKq$!&!!!JJwE 9%!%!! '  D
 	NN!$<<<"$$Jf_$$HT8V[*RVWWWWOr>   c                 J     ddt                     d	 fd            }|S )
Nr  r   r  r   r6   c                    t          | g|R i |}	 t          |          \  } }}n# t          $ r}|j        cY d }~S d }~ww xY w	 	  | |i |}nh# t          $ r[}t          j                    }t                      5  t          |           d d d            n# 1 swxY w Y   t          |  Y d }~nd }~ww xY w|
                    |          S # t          $ r}|j        cY d }~S d }~ww xY wr@   rC  r  r  r   rO   r  r  r   rj   r   r  r  s          r<   r!  z-_wrap_responses_create.<locals>._execute_syncc  s~   *1>t>>>v>>	"3iiOAtVV 	 	 	7NNNNNN		#D+F++ # # #<>>022 * *&q)))* * * * * * * * * * * * * * *"""""""	# 88F### 	 	 	7NNNNNN	r"  c                      t          j                                        t                    }| | i |S  g| R i |S r@   r%  r&  s      r<   r'  z;_wrap_responses_create.<locals>._sentry_patched_create_syncx  r;  r>   r(  r)  r   r*  s   ` @r<   rG   rG   b  r<  r>   c                 J     ddt                     d	 fd            }|S )
Nr  r   r  r   r6   c                   K   t          | g|R i |}	 t          |          \  } }}n$# t          $ r}|j         d {V cY d }~S d }~ww xY w	 	  | |i | d {V }nh# t          $ r[}t          j                    }t                      5  t          |           d d d            n# 1 swxY w Y   t          |  Y d }~nd }~ww xY w|
                    |          S # t          $ r}|j        cY d }~S d }~ww xY wr@   rF  r  s          r<   r-  z4_wrap_async_responses_create.<locals>._execute_async  s     *1>t>>>v>>	!"3iiOAtVV 	! 	! 	!======      	!	# q$1&11111111 # # #<>>022 * *&q)))* * * * * * * * * * * * * * *"""""""	# 88F### 	 	 	7NNNNNN	r.  c                     K   t          j                                        t                    }| | i | d {V S  g| R i | d {V S r@   r%  r0  s      r<   _sentry_patched_responses_asynczE_wrap_async_responses_create.<locals>._sentry_patched_responses_async  r@  r>   r(  r)  r   )r  rK  r-  s   ` @r<   rH   rH     sU       * 1XX8 8 8 8 8 8 X8 +*r>   objc                 ~    t           t          | t                     rdS t          t          | t                    rdS dS )zF
    Check for givenness safely across different openai versions.
    NFT)r%   ro   r$   )rL  s    r<   r   r     s=     
3 9 9uJsD11u4r>   )T)rs   rt   ru   r   rv   r!   rw   rx   rP   ry   r6   N)r   r   r6   r   )rv   r!   r   r   r6   N)rv   r!   r   r   r   r1   r6   N)NTr(  )r  ry   r6   ry   )r  r   r6   r   )ar  r   r   	functoolsr   collections.abcr   rb   r   sentry_sdk.ai.monitoringr   sentry_sdk.ai.utilsr   r	   r
   r   %sentry_sdk.ai._openai_completions_apir   r   r   r   r   r   #sentry_sdk.ai._openai_responses_apir   r   sentry_sdk.constsr   sentry_sdk.integrationsr   r   sentry_sdk.scoper   sentry_sdk.tracing_utilsr   sentry_sdk.utilsr   r   r   r   typingr   r   r   r   r   r   r   r    sentry_sdk.tracingr!   sentry_sdk._typesr"   openai.types.responsesr#   r2   r$   r%   ImportError!openai.resources.chat.completionsr&   r'   openai.resourcesr(   r)   openai.types.chatr*   r+   r,   rF   openai.resources.responsesr-   r.   /openai.types.responses.response_completed_eventr/   r1   rV   rj   rY   rr   r   r   r   r   r   r   r  r  rA   rC   r5  rD   rE   rC  rG   rH   r   rI   r>   r<   <module>rc     s   



         $ $ $ $ $ $           7 7 7 7 7 7                              ' & & & & & = = = = = = = = 4 4 4 4 4 4 5 5 5 5 5 5            !           	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ('''''******999999/#######       POOOOOOO<<<<<<<< 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	

  / / /
,-
.
../  "DDDDDDDDVVVVVVV " " "!"% % % % % % % %P/ /E / / / / / /"e K C    D>DD D "7	D
 'D 
D D D DN0   



 

 
 
 
>U*
U*U* %U* 
	U* U* U* U*p4*
4*4* %4* 
	4* 4* 4* 4*n*
** %* 
	* * * *@ %)T, T,
T,T, T, %	T,
 "T, T, 
T, T, T, T,n   D' ' ' 'D( ( ( (D   *' ' ' 'B( ( ( (B   0' ' ' 'B+ + + +B5 T      s`   %B, +C+ ,B63C+ 5B66C+ :C  C+ CC+ 
CC+ +C<D DD