
    `iv:                        d dl Z d dl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 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 d d
lmZ er
d dlmZmZmZ 	 d dlZn# e$ r  ed          w xY w G d de          ZddZ ddde!ddfdZ"dS )    Nwraps)record_token_usage)set_data_normalized)OPSPANDATA)DidNotEnableIntegration)should_send_default_pii)set_span_errored)capture_internal_exceptionsevent_from_exceptionreraise)TYPE_CHECKING)AnyCallableIterablezHuggingface not installedc                   L    e Zd ZdZde Z	 d
dd deddfdZedd	            ZdS )HuggingfaceHubIntegrationhuggingface_hubzauto.ai.Tselfinclude_promptsreturnNc                     || _         d S N)r   )r   r   s     {/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sentry_sdk/integrations/huggingface_hub.py__init__z"HuggingfaceHubIntegration.__init__!   s      /    c                  6   t          t          j        j        j        j        t          j                  t          j        j        j        _        t          t          j        j        j        j        t          j	                  t          j        j        j        _        d S r   )
_wrap_huggingface_taskr   	inference_clientInferenceClienttext_generationr   GEN_AI_GENERATE_TEXTchat_completionGEN_AI_CHAT r   r   
setup_oncez$HuggingfaceHubIntegration.setup_once&   sq     #)1AQ'  	!)9I #)1AQ  	!)9IIIr   )T)r   N)	__name__
__module____qualname__
identifieroriginboolr   staticmethodr)   r(   r   r   r   r      s~        "J$
$$F DH/ /)/<@/	/ / / /
 
 
 
 \
 
 
r   r   excr   r   c                     t                       t          | t          j                    j        ddd          \  }}t          j        ||           d S )Nr   F)typehandled)client_options	mechanism)hint)r   r   
sentry_sdk
get_clientoptionscapture_event)r1   eventr7   s      r   _capture_exceptionr=   7   sa    &!,..6,??  KE4
 U......r   fzCallable[..., Any]opc                 B     t                     d fd            }|S )Nargsr   kwargsr   c            	         t          j                                        t                     | i |S d }d|v r	|d         }n^d|v r	|d         }nQt	          |           dk    r>t          | d         t                    st          | d         t                    r| d         }| | i |S | d         }|j        p|	                    d          pd}
                    d          d	         }t          j        | d
| t          j                                                                       t          j        |           |r                     t          j        |           t%                      r$j        rt)          t          j        |d           t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        d}|                                D ]o\  }}|	                    |d           }	|	Rt          |	t>          t@          tB          t          f          r                    ||	           \t)          ||	d           p	  | i |n# tD          $ rr}
tG          j$                    }tK                      5  tM          |
           '                    d d d            d d d            n# 1 swxY w Y   tQ          |  Y d }
~
nd }
~
ww xY wd }d }g }d}d }d }tK                      5  t          t                    r|)                               tU          d          r!j+        |)                    j+                   tU          d          rj        j        }tU          d          r!tU          j,        d          rj,        j-        }tU          d          r-tU          j,        d          rj,        j.        j,        j.        }tU          d          rj/        j/        }tU          d          rj0        j0        D ]}tU          |d          r|j-        }tU          |d          r!tU          |j1        d          r|j1        j2        }tU          |d          r@tU          |j1        d          r+|j1        j3        |)                    |j1        j3                   |                     t          j4        |           |t)          t          j5        |           t%                      r~j        rw|0t	          |          dk    rt)          t          j6        |d           t	          |          dk    r2d7                    |          }|rt)          t          j8        |           |#ts          |j:        |j;        |j<                   n|dk    rts          |           t{          j>                  s%'                    d d d            cd d d            S |	                    dd          rdfd} |            cd d d            S d fd} |            cd d d            S # 1 swxY w Y   d S )!Npromptmessages      r   model . )r?   namer.   Funpack)toolsfrequency_penalty
max_tokenspresence_penaltytemperaturetop_ptop_kstreamgenerated_textdetailsfinish_reasongenerated_tokensusagechoicesmessage
tool_callscontentinput_tokensoutput_tokenstotal_tokensrd   r   Iterable[Any]c               3   <  K   d } g }d}t                      5  D ]}t          |d          r@t          |j        d          r+|j        j        |                    |j        j                   t          |d          r!t          |j        d          r|j        j        } t          |d          r-t          |j        d          r|j        j        |j        j        }|V  | t          t          j
        |            t                      rLj        rEt          |          dk    r2d                    |          }|rt          t          j        |           |dk    rt!          |           d d d            n# 1 swxY w Y                       d d d            d S )	Nr   tokentextrY   rZ   r[   rI   re   )r   hasattrrh   ri   appendrY   rZ   r[   r   r   GEN_AI_RESPONSE_FINISH_REASONSr   r   lenjoinGEN_AI_RESPONSE_TEXTr   __exit__)rZ   response_text_buffertokens_usedchunktext_responseintegrationresspans        r   new_details_iteratorzR_wrap_huggingface_task.<locals>.new_huggingface_task.<locals>.new_details_iterator   s,     $(M8:("#K466 , ,%( ( (E 'w 7 7N$+EK$@$@N %*K$4$@ 4 ; ;EK<L M M M&ui88 LW %> > L 160K !(y 9 9M$+EM;M$N$NM %*M$B$N.3m.L"'KKKK(4/ $ ( G -   344 &9T &"#7881<<028L0M0M#0 !&$7(,(0(E(5%& %& %& '??. $-8   S, , , , , , , , , , , , , , ,\ MM$d33333s   EE::E>E>Iterable[str]c               3     K   d } d }g }d }d }t                      5  	D ];}t          |d          r|j        |j        }t          |d          r|j        |j        }t	          |t
                    r||                    |           t          |d          r|j        |j        D ]}t          |d          r@t          |j        d          r+|j        j	        |                    |j        j	                   t          |d          r|j
        |j
        } t          |d          r-t          |j        d          r|j        j        |j        j        }|V  =| 
                    t          j        |           | t          
t          j        |            t#                      r~j        rw|0t'          |          dk    rt          
t          j        |d	
           t'          |          dk    r2d                    |          }|rt          
t          j        |           |"t/          
|j        |j        |j                   
                    d d d            d d d            d S # 1 swxY w Y   d S )NrH   r\   r]   deltar`   rZ   r_   r   FrN   rI   ra   )r   rj   rH   r\   
isinstancestrrk   r]   r{   r`   rZ   r_   set_datar   GEN_AI_RESPONSE_MODELr   rl   r   r   rm   GEN_AI_RESPONSE_TOOL_CALLSrn   ro   r   prompt_tokenscompletion_tokensrd   rp   )rZ   response_modelrq   r_   r\   rs   choicert   ru   rv   rw   s           r   new_iteratorzJ_wrap_huggingface_task.<locals>.new_huggingface_task.<locals>.new_iterator!  sO     $(M%)N8:(!%J E466 L8 L8%( #( #(E&ug66 =5;;R16&ug66 45;;R(-)%55 G#(#4$8$?$?$F$F$F&ui88 MU]=V.3m !M !MF(/(@(@%*,3FL),L,L%* -3L,@,L(<(C(C,2L,@)* )* )*
 )0(H(H%M,2,@,L8>8L )0(@(@%M,3FL,,O,O%M -3L,C,O5;\5L
"'KKKK)5 MM ( >   )4/ $ ( G -   344 &9T &)5#j//A:M:M 3$($,$G$.+0	!" !" !" !"  ##7881<<028L0M0M#0 !&$7(,(0(E(5%& %& %& !,. $-2-@.3.E-2-?	    dD$777YL8 L8 L8 L8 L8 L8 L8 L8 L8 L8 L8 L8 L8 L8 L8 L8 L8 L8s   II//I36I3)r   rf   )r   ry   )?r8   r9   get_integrationr   rm   r|   r}   listrH   getsplit
start_spanr.   	__enter__r~   r   GEN_AI_OPERATION_NAMEGEN_AI_REQUEST_MODELr   r   r   GEN_AI_REQUEST_MESSAGESGEN_AI_REQUEST_AVAILABLE_TOOLS GEN_AI_REQUEST_FREQUENCY_PENALTYGEN_AI_REQUEST_MAX_TOKENSGEN_AI_REQUEST_PRESENCE_PENALTYGEN_AI_REQUEST_TEMPERATUREGEN_AI_REQUEST_TOP_PGEN_AI_REQUEST_TOP_KGEN_AI_RESPONSE_STREAMINGitemsintfloatr/   	Exceptionsysexc_infor   r=   rp   r   rk   rj   rX   rY   rZ   r[   r\   r]   r^   r_   r`   r   rl   r   rn   ro   r   r   r   rd   inspectisgenerator)rA   rB   rD   clientrH   operation_nameattribute_mapping	attributespan_attributevalueer   rZ   r   rq   rr   r_   r\   r   rt   rx   r   ru   rv   rw   r>   r?   s                         @@@r   new_huggingface_taskz4_wrap_huggingface_task.<locals>.new_huggingface_taskC   sN    +--==>WXX1d%f%%%vH%FF6!!J'FFYY!^^$q'3'' !:d1gt+D+D !a>1d%f%%%a9

7 3 39r#r*$",,U,,,3
 
 

 	h4nEEE 	@MM(7??? #$$ 	)D 	h6u   
 <!)!J"< ( H#>228	
 	
 *;)@)@)B)B 	S 	S%I~JJy$//E ec5$%<== SMM.%8888'neERRRR	!T$V$$CC 	 	 	|~~H,.. 0 0"1%%%dD$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X	 ,.
(** e	& e	&#s## 1$++C000s,-- @#2D2P$++C,>???sG$$ +)>!$sI&& :73;+P+P : # 9 Y'';CK);<<; K0<!k:sG$$ ")>	sI&& L3;+B!k L LFv77 =(.(<vy11 ?g7 7 ? &,^%>
	22L#FNI>>L #N2>,33FN4JKKK)h<nMMM(#;!   '(( [-H )c*oo.A.A' ;"$	    +,,q00$&GG,@$A$AM$ + $9)    "!&!4"'"9!&!3	     q"!,    &s++ dD$///ge	& e	& e	& e	& e	& e	& e	& e	&j zz)U++ P&34 34 34 34 34 34 34 34j ,+--Ye	& e	& e	& e	& e	& e	& e	& e	&`S8 S8 S8 S8 S8 S8 S8 S8j $|~~Ke	& e	& e	& e	& e	& e	& e	& e	& e	& e	& e	& e	& e	& e	& e	& e	& e	& e	&s[    J	 	
L!L 4'K'L 'K+	+L .K+	/L  L"K4Y5#'Y5Y55Y9<Y9)rA   r   rB   r   r   r   r   )r>   r?   r   s   `` r   r    r    B   sG    
1XXr& r& r& r& r& r& Xr&h	  r   )r1   r   r   N)#r   r   	functoolsr   r8   sentry_sdk.ai.monitoringr   sentry_sdk.ai.utilsr   sentry_sdk.constsr   r   sentry_sdk.integrationsr	   r
   sentry_sdk.scoper   sentry_sdk.tracing_utilsr   sentry_sdk.utilsr   r   r   typingr   r   r   r   !huggingface_hub.inference._clientr   ImportErrorr   r=   r}   r    r(   r   r   <module>r      s   



            7 7 7 7 7 7 3 3 3 3 3 3 * * * * * * * * = = = = = = = = 4 4 4 4 4 4 5 5 5 5 5 5          !           /..........4,,,,, 4 4 4
,2
3
334
 
 
 
 
 
 
 
4/ / / /v 2 v  v @T v  v  v  v  v  v s   A A.