§
    ‚Štj¨  ã                   ó¬   — d dl mZmZmZmZ d dlmZmZ ddlm	Z	  G d„ ded¬¦  «        Z
 G d	„ d
ed¬¦  «        Ze G d„ de¦  «        ¦   «         ZdgZdS )é   )ÚImagesKwargsÚMultiModalDataÚProcessingKwargsÚProcessorMixin)Ú
TensorTypeÚauto_docstringé   )ÚAutoTokenizerc                   ó2   — e Zd ZU dZeed<   eed<   eed<   dS )ÚAriaImagesKwargsa  
    split_image (`bool`, *optional*, defaults to `False`):
        Whether to split large images into multiple crops. When enabled, images exceeding the maximum size are
        divided into overlapping crops that are processed separately and then combined. This allows processing
        of very high-resolution images that exceed the model's input size limits.
    max_image_size (`int`, *optional*, defaults to `980`):
        Maximum image size (in pixels) for a single image crop. Images larger than this will be split into
        multiple crops when `split_image=True`, or resized if splitting is disabled. This parameter controls
        the maximum resolution of individual image patches processed by the model.
    min_image_size (`int`, *optional*):
        Minimum image size (in pixels) for a single image crop. Images smaller than this will be upscaled to
        meet the minimum requirement. If not specified, images are processed at their original size (subject
        to the maximum size constraint).
    Úsplit_imageÚmax_image_sizeÚmin_image_sizeN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚboolÚ__annotations__Úint© ó    úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/transformers/models/aria/processing_aria.pyr   r      sB   € € € € € € ðð ð ÐÐÑØÐÐÑØÐÐÑÐÐr   r   F)Útotalc                   ó<   — e Zd ZU eed<   dddœdddœej        dœZdS )ÚAriaProcessorKwargsÚimages_kwargsF)ÚpaddingÚreturn_mm_token_type_idséÔ  )r   r   )Útext_kwargsr   Úreturn_tensorsN)r   r   r   r   r   r   ÚPYTORCHÚ	_defaultsr   r   r   r   r   .   sT   € € € € € € Ø#Ð#Ð#Ñ#ð Ø(-ð
ð 
ð
 "Ø ð
ð 
ð %Ô,ð
ð 
€I€I€Ir   r   c            	       ó¦   ‡ — e Zd ZeZ	 	 	 	 ddeez  dedz  deee	z  e	f         dz  fˆ fd„Z
dede	defd	„Zdd
„Zedee         fd„¦   «         Zˆ xZS )ÚAriaProcessorNÚ	tokenizerÚchat_templateÚsize_conversionc                 óþ   •— |€dddœ}d„ |                      ¦   «         D ¦   «         | _        |j        | _        |j        | _        |�|j        €|j        |_        t          ¦   «                              |||¬¦  «         dS )zx
        size_conversion (`Dict`, *optional*):
            A dictionary indicating size conversions for images.
        Né€   é   )iê  r    c                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r   )r   )Ú.0ÚkÚvs      r   ú
<dictcomp>z*AriaProcessor.__init__.<locals>.<dictcomp>O   s$   € ÐNÐNÐN©d¨a°¥ A¡¤¨ÐNÐNÐNr   )r(   )Úitemsr)   Úimage_tokenÚimage_token_idÚ	pad_tokenÚ	unk_tokenÚsuperÚ__init__)ÚselfÚimage_processorr'   r(   r)   Ú	__class__s        €r   r8   zAriaProcessor.__init__B   sŽ   ø€ ð Ð"Ø$'¨cÐ2Ð2ˆOØNÐN°o×6KÒ6KÑ6MÔ6MÐNÑNÔNˆÔà$Ô0ˆÔØ'Ô6ˆÔØÐ  YÔ%8Ð%@Ø"+Ô"5ˆIÔå‰Œ×Ò˜¨)À=ÐÑQÔQÐQÐQÐQr   Úimage_inputsÚ	image_idxÚreturnc                 óh   — | j         |d         j        d                  }|d         |z  }| j        |z  S )NÚpixel_valuesr	   Ú	num_crops)r)   Úshaper3   )r9   r<   r=   Útokens_per_imageÚnum_image_tokenss        r   Úreplace_image_tokenz!AriaProcessor.replace_image_tokenX   s>   € ØÔ/°¸^Ô0LÔ0RÐSTÔ0UÔVÐØ'¨Ô4Ð7GÑGÐØÔÐ"2Ñ2Ð2r   c                 óB  ‡ ‡‡— i }|��t           j                             di ¦  «        Š‰                     |¦  «         ‰                     dd¦  «        p‰ j        j        Šˆˆ fd„|D ¦   «         }ˆˆ fd„|D ¦   «         }|                     ||dœ¦  «         t          di |¤ŽS )a¹  
        Computes the number of placeholder tokens needed for multimodal inputs with the given sizes.
        Args:
            image_sizes (`list[list[int]]`, *optional*):
                The input sizes formatted as (height, width) per each image.
        Returns:
            `MultiModalData`: A `MultiModalData` object holding number of tokens per each of the provided
            input modalities, along with other useful data.
        Nr   r   c                 ó8   •— g | ]} ‰j         j        g |¢‰‘R Ž ‘ŒS r   )r:   Úget_number_of_image_patches)r.   Ú
image_sizer   r9   s     €€r   ú
<listcomp>z<AriaProcessor._get_num_multimodal_tokens.<locals>.<listcomp>n   sE   ø€ ð !ð !ð !àð A�Ô$Ô@Ð\À*Ð\ÈmÐ\Ð\Ð\ð!ð !ð !r   c                 ó0   •— g | ]}‰j         ‰         |z  ‘ŒS r   )r)   )r.   Únum_patchesÚmax_sizer9   s     €€r   rJ   z<AriaProcessor._get_num_multimodal_tokens.<locals>.<listcomp>r   s'   ø€ ÐrÐrÐrÐQ\ Ô 4°XÔ >ÀÑ LÐrÐrÐrr   )rD   Únum_image_patchesr   )r   r$   ÚgetÚupdater:   r   r   )r9   Úimage_sizesÚkwargsÚvision_datarN   rD   r   rM   s   `     @@r   Ú_get_num_multimodal_tokensz(AriaProcessor._get_num_multimodal_tokens]   sà   øøø€ ð ˆØÐ"Ý/Ô9×=Ò=¸oÈrÑRÔRˆMØ× Ò  Ñ(Ô(Ð(à$×(Ò(Ð)9¸4Ñ@Ô@ÐgÀDÔDXÔDgˆHð!ð !ð !ð !ð !à"-ð!ñ !ô !Ðð  sÐrÐrÐrÐrÐ`qÐrÑrÔrÐØ×ÒÐ4DÐ[lÐmÐmÑnÔnÐnåÐ,Ð, Ð,Ð,Ð,r   c                 ó   — dgS )NrA   r   )r9   s    r   Úunused_input_namesz AriaProcessor.unused_input_namesw   s
   € àˆ}Ðr   )NNNN)N)r   r   r   r   Úvalid_processor_kwargsr
   ÚstrÚdictÚfloatr   r8   rE   rT   ÚpropertyÚlistrV   Ú__classcell__)r;   s   @r   r&   r&   >   s  ø€ € € € € à0Ðð Ø)-Ø$(Ø9=ðRð Rð ! 3Ñ&ðRð ˜T‘zð	Rð
 ˜e c™k¨3Ð.Ô/°$Ñ6ðRð Rð Rð Rð Rð Rð,3°ð 3Àð 3Èð 3ð 3ð 3ð 3ð
-ð -ð -ð -ð4 ð D¨¤Ið ð ð ñ „Xðð ð ð ð r   r&   N)Úprocessing_utilsr   r   r   r   Úutilsr   r   Úautor
   r   r   r&   Ú__all__r   r   r   ú<module>rb      sþ   ðð( _Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ð ^Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø  Ð  Ð  Ð  Ð  Ð  ðð ð ð ð �|¨5ð ñ ô ð ð*ð ð ð ð Ð*°%ð ñ ô ð ð  ð:ð :ð :ð :ð :�Nñ :ô :ñ „ð:ðz Ð
€€€r   