o
    i                     @   s   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
 ddlmZ G dd	 d	e
Zejeeed
G dd de	ZdS )    )SmolVLMProcessor)
VllmConfig)MULTIMODAL_REGISTRY   )Idefics3DummyInputsBuilder) Idefics3ForConditionalGenerationIdefics3ProcessingInfo)Idefics3MultiModalProcessorc                   @   s<   e Zd ZdedefddZdedB deeef fddZdS )	SmolVLMProcessingInfokwargsreturnc                 K   s   | j jtfi |S N)ctxget_hf_processorr   )selfr    r   X/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm/model_executor/models/smolvlm.pyr      s   z&SmolVLMProcessingInfo.get_hf_processor	processorNc                 C   s,   |d u r|   }|j}|j}|j}|||fS r   )r   image_tokenfake_image_tokenglobal_image_token)r   r   r   r   r   r   r   r   _get_image_token   s   
z&SmolVLMProcessingInfo._get_image_token)	__name__
__module____qualname__objectr   r   tuplestrr   r   r   r   r   r
      s    "r
   )infodummy_inputsc                       s,   e Zd Zdddedef fddZ  ZS )SmolVLMForConditionalGeneration )prefixvllm_configr"   c                   s   t  j||d d S )N)r#   r"   )super__init__)r   r#   r"   	__class__r   r   r%   "   s   
z(SmolVLMForConditionalGeneration.__init__)r   r   r   r   r   r%   __classcell__r   r   r&   r   r       s    $r    N)transformersr   vllm.configr   vllm.multimodalr   idefics3r   SmolVLMDummyInputsBuilderr   r   r	   SmolVLMMultiModalProcessorr
   register_processorr    r   r   r   r   <module>   s   