o
    پiu                     @   s@   d dl mZmZ d dlmZ d dlmZmZ G dd deZdS )    )ListUnion)Llama4ForConditionalGeneration)BaseMultimodalProcessorMultimodalSpecialTokensc                       s<   e Zd ZegZ fddZdeeee	f  fddZ
  ZS )Mllama4ImageProcessorc                    sb   t  j|||g|R i | |j| _|j| _|j| _|j| _|j| _	t
|j| j	d|| _d S )N)image_tokenimage_token_id)super__init__vision_configtext_configboi_token_indexIM_START_TOKEN_IDeoi_token_indexIM_END_TOKEN_IDimage_token_indexIM_TOKEN_IDr   r   build	mm_tokens)self	hf_configserver_args
_processorargskwargs	__class__ \/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/multimodal/processors/mllama4.pyr      s   zMllama4ImageProcessor.__init__
image_datac           	         sB   | j ||| jd}| || j\}}}| || j| j| jdS )N)promptr    multimodal_tokens)	input_idsmm_itemsim_start_id	im_end_idim_token_id)load_mm_datar   process_and_combine_mm_datatolistr   r   r   )	r   r    
input_textr   r   base_outputr$   r#   _r   r   r   process_mm_data_async   s   
z+Mllama4ImageProcessor.process_mm_data_async)__name__
__module____qualname__r   modelsr   r   r   strbytesr.   __classcell__r   r   r   r   r   
   s    r   N)	typingr   r   sglang.srt.models.mllama4r   /sglang.srt.multimodal.processors.base_processorr   r   r   r   r   r   r   <module>   s    