o
    پi                     @   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)DeepseekOCRForCausalLM)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 )DeepseekOCRProcessorc                    sz   d|_ ttt|dd dd dkptt|dd dd dk|_t j|||g|R i | td	| jj	d

|| _d S )Ni  vision_config
model_name deepencoderv2projector_config	input_dimi  z<image>)image_tokenimage_token_id)
image_sizestrgetattrlower	ocr2_modesuper__init__r   
_processorr   build	mm_tokens)self	hf_configserver_argsr   argskwargs	__class__ a/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/multimodal/processors/deepseek_ocr.pyr      s"   zDeepseekOCRProcessor.__init__
image_datac           	         s<   | j || j|d}| || j\}}}| || jjdS )N)promptmultimodal_tokensr#   )	input_idsmm_itemsim_token_id)load_mm_datar   process_and_combine_mm_datatolistr   )	r   r#   
input_textr   r   base_outputr'   r&   _r!   r!   r"   process_mm_data_async   s   
z*DeepseekOCRProcessor.process_mm_data_async)__name__
__module____qualname__r   modelsr   r   r   r   bytesr/   __classcell__r!   r!   r   r"   r   
   s    r   N)	typingr   r   sglang.srt.models.deepseek_ocrr   /sglang.srt.multimodal.processors.base_processorr   r   r   r!   r!   r!   r"   <module>   s    