
    fih:                        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 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 Z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)TYPE_CHECKING)AnyCallableIterablezHuggingface not installedc                   :    e Zd ZdZde ZddZed             ZdS )HuggingfaceHubIntegrationhuggingface_hubzauto.ai.Tc                     || _         d S N)include_prompts)selfr   s     w/var/www/html/Pagina-Ingenieria-Requisitos/venv/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   N)T)__name__
__module____qualname__
identifieroriginr   staticmethodr'   r&   r   r   r   r      sU        "J$
$$F/ / / / 
 
 \
 
 
r   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)exceventr3   s      r   _capture_exceptionr:   6   sa    &!,..6,??  KE4
 U......r   c                 @     t                      fd            }|S )Nc            	      x   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          $ r.}
tG          |
           $                    d d d            |
d d }
~
ww xY wd }d }g }d}d }d }tK                      5  t          t                    r|&                               tO          d          r!j(        |&                    j(                   tO          d          rj        j        }tO          d          r!tO          j)        d          rj)        j*        }tO          d          r-tO          j)        d          rj)        j+        j)        j+        }tO          d          rj,        j,        }tO          d          rj-        j-        D ]}tO          |d          r|j*        }tO          |d          r!tO          |j.        d          r|j.        j/        }tO          |d          r@tO          |j.        d          r+|j.        j0        |&                    |j.        j0                   |                     t          j1        |           |t)          t          j2        |           t%                      r~j        rw|0t	          |          dk    rt)          t          j3        |d           t	          |          dk    r2d4                    |          }|rt)          t          j5        |           |#tm          |j7        |j8        |j9                   n|dk    rtm          |           tu          j;                  s%$                    d d d            cd d d            S |	                    dd          rfd} |            cd d d            S fd} |            cd d d            S # 1 swxY w Y   d S )Npromptmessages      r   model . )op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r^   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textrS   rT   rU   rB   r_   )r   hasattrra   rb   appendrS   rT   rU   r   r   GEN_AI_RESPONSE_FINISH_REASONSr   r   lenjoinGEN_AI_RESPONSE_TEXTr   __exit__)rT   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,     $(M68("#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>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 )NrA   rV   rW   deltarZ   rT   rY   r   FrH   rB   r[   )r   rc   rA   rV   
isinstancestrrd   rW   rs   rZ   rT   rY   set_datar   GEN_AI_RESPONSE_MODELr   re   r   r   rf   GEN_AI_RESPONSE_TOOL_CALLSrg   rh   r   prompt_tokenscompletion_tokensr^   ri   )rT   response_modelrj   rY   rV   rl   choicerm   rn   ro   rp   s           r   new_iteratorzJ_wrap_huggingface_task.<locals>.new_huggingface_task.<locals>.new_iterator"  sO     $(M%)N68(!%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)<r4   r5   get_integrationr   rf   rt   ru   listrA   getsplit
start_spanr,   	__enter__rv   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floatbool	Exceptionr:   ri   r   rd   rc   rR   rS   rT   rU   rV   rW   rX   rY   rZ   rw   re   rx   rg   rh   r   ry   rz   r^   inspectisgenerator)argskwargsr=   clientrA   operation_nameattribute_mapping	attributespan_attributevalueerT   r{   rj   rk   rY   rV   r|   rm   rq   r}   rn   ro   rp   frF   s                        @@@r   new_huggingface_taskz4_wrap_huggingface_task.<locals>.new_huggingface_taskD   s    !+--==>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 	 	 	q!!!MM$d+++	 *,
(** g	& g	&#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g	& g	& g	& g	& g	& g	& g	& g	&j zz)U++ R&44 44 44 44 44 44 44l ,+--[g	& g	& g	& g	& g	& g	& g	& g	&bT8 T8 T8 T8 T8 T8 T8l $|~~Og	& g	& g	& g	& g	& g	& g	& g	& g	& g	& g	& g	& g	& g	& g	& g	& g	& g	&s7    J	 	
K)J<<KK4X/&X/X//X36X3r   )r   rF   r   s   `` r   r   r   B   sA    
1XXs& s& s& s& s& Xs&j	  r   ) r   	functoolsr   r4   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   typingr   r   r   r   !huggingface_hub.inference._clientr   ImportErrorr   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
 
 
 
 
 
 
 
6	/ 	/ 	/x  x  x  x  x s   A A(