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 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)Grok2Tokenizer   )
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 )Grok2Rendererconfigtokenizer_kwargsreturnr   c                 C   s
   | ||S N )clsr   r   r   r   H/home/ubuntu/.local/lib/python3.10/site-packages/vllm/renderers/grok2.pyfrom_config   s   
zGrok2Renderer.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Grok2Renderer.__init__c                 C   s   | j S r   )r   )r   r   r   r   r   2   s   zGrok2Renderer.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Grok2Renderer.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Grok2Renderer.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   r.   r   r   r   render_messages_asyncW   s&   z#Grok2Renderer.render_messages_async)__name__
__module____qualname__classmethodr   dictstrr   r   r   propertyr
   r   r#   listr   r   tupler   r   r3   r4   __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.grok2r
   inputsr   inputs.preprocessr   r%   r   protocolr   r5   loggerr   r   r   r   r   <module>   s   