o
    }oi@                     @   s\   d dl mZmZ d dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZ G dd deZdS )	    )ListUnionN)CommonInferenceParams)MCoreEngine)InferenceRequest)Imagec                	   @   s@   e Zd Z		ddee deeeee f  dedefddZ	dS )		VLMEngineNpromptsimagescommon_inference_paramsreturnc                    s   g } j rtj j  tt|D ](}|| }|d ur || nd } j||\}}	 jj	|||	|d}
|
|
 q    fdd|D }|S )N)promptprompt_tokensencoder_promptinference_parametersc                    s   g | ]} j j| qS  )	schedulercompleted_request_pool).0
request_idselfr   ]/home/ubuntu/.local/lib/python3.10/site-packages/nemo/collections/vlm/inference/vlm_engine.py
<listcomp>6   s    z&VLMEngine.generate.<locals>.<listcomp>)random_seedtorchrandommanual_seedrangelentext_generation_controllertokenize_promptr   add_requestappend
run_engine)r   r	   r
   r   request_idsir   imager   
image_dictr   resultr   r   r   generate   s&   
zVLMEngine.generate)NN)
__name__
__module____qualname__r   strr   r   r   dictr*   r   r   r   r   r      s    r   )typingr   r   r   /megatron.core.inference.common_inference_paramsr   ,megatron.core.inference.engines.mcore_enginer   )megatron.core.inference.inference_requestr   	PIL.Imager   r   r   r   r   r   <module>   s   