Ë
    çÞËj‰  ã                   óæ   — 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 d dlZd dlmZ d d	lmZmZ d d
lmZmZ 	 d dlZd dlmZmZ  G d„ de«      Zd„ Zd„ Zy# e$ r	  ed«      ‚w xY w)é    ©Úwraps)Úconsts)Úrecord_token_usage)Úset_data_normalized)ÚSPANDATA)ÚAnyÚIterableÚCallableN)Úshould_send_default_pii)ÚDidNotEnableÚIntegration)Úcapture_internal_exceptionsÚevent_from_exception)ÚChatCompletionStreamOutputÚTextGenerationOutputzHuggingface not installedc                   ó2   — e Zd ZdZde› �Zdd„Zed„ «       Zy)ÚHuggingfaceHubIntegrationÚhuggingface_hubzauto.ai.c                 ó   — || _         y ©N)Úinclude_prompts)Úselfr   s     úd/var/www/photos/backend/venv/lib/python3.12/site-packages/sentry_sdk/integrations/huggingface_hub.pyÚ__init__z"HuggingfaceHubIntegration.__init__   s
   € à.ˆÕó    c                  óÀ   — t        t        j                  j                  j                  j
                  «      t        j                  j                  j                  _        y r   )Ú_wrap_text_generationr   Ú	inferenceÚ_clientÚInferenceClientÚtext_generation© r   r   Ú
setup_oncez$HuggingfaceHubIntegration.setup_once"   sA   € ô "Ü×)Ñ)×1Ñ1×AÑA×QÑQóô 	×!Ñ!×)Ñ)×9Ñ9ÕIr   N)T)Ú__name__Ú
__module__Ú__qualname__Ú
identifierÚoriginr   Ústaticmethodr$   r#   r   r   r   r      s,   „ Ø"€JØ˜
�|Ð$€Fó/ð ñ
ó ñ
r   r   c                 ó’   — t        | t        j                  «       j                  dddœ¬«      \  }}t        j                  ||¬«       y )Nr   F)ÚtypeÚhandled)Úclient_optionsÚ	mechanism)Úhint)r   Ú
sentry_sdkÚ
get_clientÚoptionsÚcapture_event)ÚexcÚeventr0   s      r   Ú_capture_exceptionr7   ,   s?   € ä&ØÜ!×,Ñ,Ó.×6Ñ6Ø,¸Ñ?ô�K€Eˆ4ô
 ×Ñ˜U¨Ö.r   c                 ó.   ‡ — t        ‰ «      ˆ fd„«       }|S )Nc                  ó  •‡‡	‡
— t        j                  «       j                  t        «      Š‰€ ‰| i |¤ŽS d|v r|d   }n0t	        | «      dk\  r| d   |d<   |d   }| d   f| dd  z   } n ‰| i |¤ŽS |j                  d«      }|j                  d«      }t        j                  t        j                  j                  dt        j                  ¬«      Š
‰
j                  «        	  ‰| i |¤ŽŠ	t        «       5  t!        «       r'‰j"                  rt%        ‰
t&        j(                  |«       t%        ‰
t&        j*                  |«       t%        ‰
t&        j,                  |«       t/        ‰	t0        «      rBt!        «       r‰j"                  rt%        ‰
d	‰	g«       ‰
j                  d d d «       ‰	cd d d «       S t/        ‰	t2        «      r’t!        «       r$‰j"                  rt%        ‰
d	‰	j4                  g«       ‰	j6                  �:‰	j6                  j8                  dkD  r!t;        ‰
‰	j6                  j8                  ¬
«       ‰
j                  d d d «       ‰	cd d d «       S t/        ‰	t<        «      s+t%        ‰
dd«       ‰
j                  d d d «       ‰	cd d d «       S |j                  dd«      rˆˆ	ˆ
fd„} |«       cd d d «       S ˆˆ	ˆ
fd„} |«       cd d d «       S # t        $ r&}t        |«       ‰
j                  d d d «       |d ‚d }~ww xY w# 1 sw Y   y xY w)NÚprompté   é   r   ÚmodelÚstreamzText Generation)ÚopÚnamer)   zai.responses©Útotal_tokensÚunknown_responseTÚdetailsFc               3   óN  •K  — t        «       5  d} g }‰D ]…  }t        |d«      r;t        |j                  d«      r%|j                  |j                  j                  «       t        |d«      r,t        |j
                  d«      r|j
                  j                  } |–— Œ‡ t        |«      dkD  r@t        «       r6‰j                  r*t        ‰t        j                  dj                  |«      «       | dkD  rt        ‰| ¬«       d d d «       ‰j                  d d d «       y # 1 sw Y   ŒxY w­w)Nr   ÚtokenÚtextrD   Úgenerated_tokensÚ rA   )r   ÚhasattrrF   ÚappendrG   rD   rH   Úlenr   r   r   r   ÚAI_RESPONSESÚjoinr   Ú__exit__)Útokens_usedÚdata_bufÚxÚintegrationÚresÚspans      €€€r   Únew_details_iteratorzP_wrap_text_generation.<locals>.new_text_generation.<locals>.new_details_iterator~   sú   øè ø€ ä4Ó6ñ OØ&'˜Ø.0˜Ø!$ò $˜AÜ& q¨'Ô2´w¸q¿w¹wÈÔ7OØ (§¡°·±·±Ô =Ü& q¨)Ô4¼Ø !§	¡	Ð+=ô:ð /0¯i©i×.HÑ.H Ø"#›Gð$ô   ›M¨AÒ-Ü 7Ô 9Ø +× ;Ò ;ä/Ø $¤h×&;Ñ&;¸R¿W¹WÀXÓ=Nôð '¨š?Ü.¨tÀ+ÕN÷)Oð* —M‘M $¨¨dÕ3÷+Oð Oüs   ƒD%ŽC/DÃ=D%ÄD"ÄD%c               3   ój  •K  — g } t        «       5  ‰D ]'  }t        |t        «      r| j                  |«       |–— Œ) t	        | «      dkD  r@t        «       r6‰j                  r*t        ‰t        j                  dj                  | «      «       ‰j                  d d d «       d d d «       y # 1 sw Y   y xY w­w)Nr   rI   )r   Ú
isinstanceÚstrrK   rL   r   r   r   r   rM   rN   rO   )rQ   ÚsrS   rT   rU   s     €€€r   Únew_iteratorzH_wrap_text_generation.<locals>.new_text_generation.<locals>.new_iterator›   s�   øè ø€ à*,�HÜ4Ó6ñ 8Ø!$ò $˜AÜ)¨!¬SÔ1Ø (§¡°Ô 2Ø"#›Gð$ô
   ›M¨AÒ-Ü 7Ô 9Ø +× ;Ò ;ä/Ø $¤h×&;Ñ&;¸R¿W¹WÀXÓ=Nôð Ÿ™ d¨D°$Ô7÷8÷ 8ñ 8üs   ƒB3�BB'Â	B3Â'B0Â,B3)r1   r2   Úget_integrationr   rL   ÚgetÚ
start_spanr   ÚOPÚ'HUGGINGFACE_HUB_CHAT_COMPLETIONS_CREATEr)   Ú	__enter__Ú	Exceptionr7   rO   r   r   r   r   r   ÚAI_INPUT_MESSAGESÚAI_MODEL_IDÚAI_STREAMINGrX   rY   r   Úgenerated_textrD   rH   r   r
   )ÚargsÚkwargsr:   r=   Ú	streamingÚerV   r[   rS   rT   rU   Úfs           @@@€r   Únew_text_generationz2_wrap_text_generation.<locals>.new_text_generation8   s×  û€ ô !×+Ñ+Ó-×=Ñ=Ô>WÓXˆØÐÙ�dÐ%˜fÑ%Ð%à�vÑØ˜HÑ%‰FÜ�‹Y˜!Š^Ø# A™wˆF�8ÑØ˜HÑ%ˆFØ˜‘G�:  Q R Ñ(‰Dñ �dÐ%˜fÑ%Ð%à—
‘
˜7Ó#ˆØ—J‘J˜xÓ(ˆ	ä×$Ñ$Ü�y‰y×@Ñ@Ø"Ü,×3Ñ3ô
ˆð
 	�‰Ôð	Ù�TÐ$˜VÑ$ˆCô )Ó*ñ T	&Ü&Ô(¨[×-HÒ-HÜ# D¬(×*DÑ*DÀfÔMä ¤h×&:Ñ&:¸EÔBÜ ¤h×&;Ñ&;¸YÔGä˜#œsÔ#Ü*Ô,°×1LÒ1LÜ'ØØ&Ø˜ôð
 —‘˜d D¨$Ô/Ø÷T	&ñ T	&ô" ˜#Ô3Ô4Ü*Ô,°×1LÒ1LÜ'ØØ&Ø×+Ñ+Ð,ôð
 —;‘;Ð*¨s¯{©{×/KÑ/KÈaÒ/OÜ& t¸#¿+¹+×:VÑ:VÕWØ—‘˜d D¨$Ô/Ø÷7T	&ñ T	&ô: ˜c¤8Ô,ä# DÐ*<¸dÔCØ—‘˜d D¨$Ô/Ø÷CT	&ñ T	&ðF �z‰z˜) UÔ+ö4ñ2 ,Ó-÷}T	&ñ T	&öD8ñ$ $“~÷iT	&ñ T	&øô ò 	Ü˜qÔ!Ø�M‰M˜$  dÔ+Ø˜Ðûð	ú÷
T	&ð T	&ús>   Ã!K
 Ã3B0K<Æ-BK<É1K<Ê
K<Ê3K<Ë
	K9Ë!K4Ë4K9Ë<Lr   )rk   rl   s   ` r   r   r   6   s$   ø€ ä
ˆ1ƒXót&ó ðt&ðl Ðr   )Ú	functoolsr   r1   r   Úsentry_sdk.ai.monitoringr   Úsentry_sdk.ai.utilsr   Úsentry_sdk.constsr   Útypingr	   r
   r   Úsentry_sdk.scoper   Úsentry_sdk.integrationsr   r   Úsentry_sdk.utilsr   r   Ú!huggingface_hub.inference._clientr   r   r   ÚImportErrorr   r7   r   r#   r   r   ú<module>rw      sh   ðÝ å Ý 7Ý 3Ý &ç *Ñ *ã Ý 4ß =÷ð
4Û,çPô

 ô 
ò$/óyøðA ò 4Ù
Ð2Ó
3Ð3ð4ús   ÁA" Á"A0