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
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)
TextPromptTokensPrompt)init_logger)cached_get_tokenizer)DeepseekV32Tokenizer   )RendererLikec                       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ee eeB f fddZdee deee eeB f fddZ  ZS )DeepseekV32Rendererconfigtokenizer_kwargsreturnr   c                 C   s
   | ||S N )clsr   r   r   r   X/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/renderers/deepseek_v32.pyfrom_config   s   
zDeepseekV32Renderer.from_configNc                    s8   t    || _|jrd }n	tddti|}|| _d S )Ntokenizer_clsr   )super__init__r   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   2   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_tokenizer6   s   z!DeepseekV32Renderer.get_tokenizermessagesc           	      K   sz   |   }t|| jdd\}}}|jd||d|}t|tr$t|dnt|d}|d ur1||d< |d ur9||d< ||fS 	Nstring)content_format)conversationr#   )prompt)prompt_token_idsmulti_modal_datamulti_modal_uuidsr   )r"   r   r   apply_chat_template
isinstancestrr   r	   	r   r#   kwargsr   r'   mm_datamm_uuids
prompt_rawr(   r   r   r   render_messages=   s*   z#DeepseekV32Renderer.render_messagesc           	         s   |   }t|| jddI d H \}}}|jd||d|}t|tr(t|dnt|d}|d ur5||d< |d ur=||d< ||fS r$   )r"   r   r   r,   r-   r.   r   r	   r/   r   r   r   render_messages_async[   s,   z)DeepseekV32Renderer.render_messages_async)__name__
__module____qualname__classmethodr   dictr.   r   r   r   propertyr   r   r"   listr   tupler   r   r	   r4   r5   __classcell__r   r   r   r   r      s:    


r   N)typingr   vllm.configr   vllm.entrypoints.chat_utilsr   r   r   r   vllm.inputsr   r	   vllm.loggerr
   vllm.tokenizersr   vllm.tokenizers.deepseek_v32r   protocolr   r6   loggerr   r   r   r   r   <module>   s   