o
    پif                     @   s8   d dl Z d dlmZ d dlmZmZ G dd deZdS )    N)GlmAsrForConditionalGeneration)BaseMultimodalProcessorMultimodalSpecialTokensc                       s*   e Zd ZegZ fddZdd Z  ZS )GlmAsrProcessorc                    s|   t  j|||g|R i | d| _td| _| jj}|d| _	|d| _
|d| _t| j| j| j
d|| _d S )Nz)<|begin_of_audio|><|pad|><|end_of_audio|>z/<\|begin_of_audio\|><\|pad\|><\|end_of_audio\|>z<|begin_of_audio|>z<|pad|>z<|end_of_audio|>)audio_tokenaudio_token_regexaudio_token_id)super__init__AUDIO_TOKENrecompileAUDIO_TOKEN_REGEX
_processor	tokenizerconvert_tokens_to_idsaudio_start_idr   audio_end_idr   build	mm_tokens)self	hf_configserver_argsr   argskwargsr   	__class__ [/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/multimodal/processors/glmasr.pyr
      s    zGlmAsrProcessor.__init__c                    sN   | j ||| jd}|d u rd S | || j\}}}|| | j| j| jdS )N)prompt
audio_datamultimodal_tokens)mm_items	input_idsr   r   r   )load_mm_datar   process_and_combine_mm_datatolistr   r   r   )r   r    
input_textr   base_outputr"   r#   retr   r   r   process_mm_data_async   s"   
z%GlmAsrProcessor.process_mm_data_async)__name__
__module____qualname__r   modelsr
   r*   __classcell__r   r   r   r   r   
   s    r   )r   sglang.srt.models.glmasrr   /sglang.srt.multimodal.processors.base_processorr   r   r   r   r   r   r   <module>   s    