o
    iO	                     @   s   d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZmZmZ z
ddlmZmZ W n ey=   d	Zd	ZY nw G d
d de	ZG dd deZejeeedG dd deZd	S )zMusicFlamingo model adapter.

MusicFlamingo shares the AudioFlamingo3 architecture, so we reuse the same
implementation and multimodal processor, while accepting MusicFlamingo config
and processor classes when available.
    )Mapping)AudioFlamingo3ConfigAudioFlamingo3Processor)MULTIMODAL_REGISTRY)BaseProcessingInfo   ) AudioFlamingo3DummyInputsBuilder&AudioFlamingo3ForConditionalGeneration!AudioFlamingo3MultiModalProcessor)MusicFlamingoConfigMusicFlamingoProcessorNc                   @   sJ   e Zd Zdd ZdefddZdefddZdeee	d	B f fd
dZ
d	S )MusicFlamingoProcessingInfoc                 C   s$   t d u r
| jtS | jt tfS N)r   ctxget_hf_configr   self r   ^/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm/model_executor/models/musicflamingo.pyr   '   s   z)MusicFlamingoProcessingInfo.get_hf_configkwargsc                 K   s4   t d u r| jjtfi |S | jjt tffi |S r   )r   r   get_hf_processorr   )r   r   r   r   r   r   ,   s   z,MusicFlamingoProcessingInfo.get_hf_processorc                 K   s   | j di |}|jS )Nr   )r   feature_extractor)r   r   hf_processorr   r   r   get_feature_extractor4   s   z1MusicFlamingoProcessingInfo.get_feature_extractorreturnNc                 C   s   dd iS )Naudior   r   r   r   r   get_supported_mm_limits8   s   z3MusicFlamingoProcessingInfo.get_supported_mm_limits)__name__
__module____qualname__r   objectr   r   r   strintr   r   r   r   r   r   &   s
    r   c                   @   s   e Zd ZdS )MusicFlamingoDummyInputsBuilderN)r   r   r   r   r   r   r   r#   <   s    r#   )infodummy_inputsc                   @   s   e Zd ZdZdS )%MusicFlamingoForConditionalGenerationz/MusicFlamingo model for conditional generation.N)r   r   r   __doc__r   r   r   r   r&   @   s    r&   )r'   collections.abcr   "transformers.models.audioflamingo3r   r   vllm.multimodalr   vllm.multimodal.processingr   audioflamingo3r   r	   r
   !transformers.models.musicflamingor   r   	Exceptionr   r#   register_processorr&   r   r   r   r   <module>   s(   