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e ZdS )    )Any)
VllmConfig)ChatCompletionMessageParamConversationMessageparse_chat_messagesparse_chat_messages_async)init_logger)cached_get_tokenizer)Grok2Tokenizer   )BaseRenderer)
DictPrompt)parse_dec_only_prompt)
ChatParamsc                   @   sz   e Zd Zededeeef dd 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dS )Grok2Rendererconfigtokenizer_kwargsreturnc                 C   s.   |j }|jr	d }n	tddti|}| ||S )Ntokenizer_cls )model_configskip_tokenizer_initr	   r
   )clsr   r   r   	tokenizerr   r   a/lsinfo/ai/hellotax_ai/llm_service/venv_vllm/lib/python3.10/site-packages/vllm/renderers/grok2.pyfrom_config   s   
zGrok2Renderer.from_configmessagesparamsc           	      C   sp   |   }t|| jd|j|jd\}}}|jd||d| }t|}|d ur,||d< |d ur4||d< ||fS Nstring)content_formatmedia_io_kwargsmm_processor_kwargs)conversationr   multi_modal_datamulti_modal_uuidsr   )get_tokenizerr   r   r!   r"   apply_chat_templateget_apply_chat_template_kwargsr   	selfr   r   r   r#   mm_datamm_uuids
prompt_rawpromptr   r   r   render_messages*   s(   zGrok2Renderer.render_messagesc           	         sx   |   }t|| jd|j|jdI d H \}}}|jd||d| }t|}|d ur0||d< |d ur8||d< ||fS r   )r&   r   r   r!   r"   r'   r(   r   r)   r   r   r   render_messages_asyncF   s*   z#Grok2Renderer.render_messages_asyncN)__name__
__module____qualname__classmethodr   dictstrr   r   listr   r   tupler   r   r/   r0   r   r   r   r   r      s.    

r   N)typingr   vllm.configr   vllm.entrypoints.chat_utilsr   r   r   r   vllm.loggerr   vllm.tokenizersr	   vllm.tokenizers.grok2r
   baser   inputsr   inputs.preprocessr   r   r   r1   loggerr   r   r   r   r   <module>   s   