o
    i                     @   s   d dl mZ d dlmZ d dlmZmZmZmZ 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 d	dlmZ d	dlmZ d	dlmZ e
eZG dd deZdS )    )Any)ModelConfig)ChatCompletionMessageParamConversationMessageparse_chat_messagesparse_chat_messages_async)init_logger)cached_get_tokenizer)DeepseekV32Tokenizer   )HfTokenizer   )
DictPrompt)parse_dec_only_prompt)
ChatParams)BaseRendererc                       s   e Zd Zededeeef ddfddZdedeeef ddf fdd	Z	e
dedB fd
dZdefddZdee dedeee ef fddZdee dedeee ef fddZ  ZS )DeepseekV32Rendererconfigtokenizer_kwargsreturnr   c                 C   s
   | ||S N )clsr   r   r   r   Q/home/ubuntu/vllm_env/lib/python3.10/site-packages/vllm/renderers/deepseek_v32.pyfrom_config   s   
zDeepseekV32Renderer.from_configNc                    s4   t  | |jrd }n	tddti|}|| _d S )Ntokenizer_clsr   )super__init__skip_tokenizer_initr	   r
   
_tokenizer)selfr   r   	tokenizer	__class__r   r   r   "   s   
zDeepseekV32Renderer.__init__c                 C   s   | j S r   )r   )r    r   r   r   r!   3   s   zDeepseekV32Renderer.tokenizerc                 C   s   | j }|d u rtd|S )Nz7Tokenizer not available when `skip_tokenizer_init=True`)r!   
ValueError)r    r!   r   r   r   get_tokenizer7   s   z!DeepseekV32Renderer.get_tokenizermessagesparamsc           	      C   sh   |   }t|| jdd\}}}|jd||d| }t|}|d ur(||d< |d ur0||d< ||fS Nstring)content_format)conversationr&   multi_modal_datamulti_modal_uuidsr   )r%   r   r   apply_chat_templateget_apply_chat_template_kwargsr   	r    r&   r'   r!   r+   mm_datamm_uuids
prompt_rawpromptr   r   r   render_messages>   s$   z#DeepseekV32Renderer.render_messagesc           	         sp   |   }t|| jddI d H \}}}|jd||d| }t|}|d ur,||d< |d ur4||d< ||fS r(   )r%   r   r   r.   r/   r   r0   r   r   r   render_messages_asyncX   s&   z)DeepseekV32Renderer.render_messages_async)__name__
__module____qualname__classmethodr   dictstrr   r   r   propertyr   r!   r%   listr   r   tupler   r   r5   r6   __classcell__r   r   r"   r   r      sB    


r   N)typingr   vllm.configr   vllm.entrypoints.chat_utilsr   r   r   r   vllm.loggerr   vllm.tokenizersr	   vllm.tokenizers.deepseek_v32r
   tokenizers.hfr   inputsr   inputs.preprocessr   r'   r   protocolr   r7   loggerr   r   r   r   r   <module>   s   