
    .`ix                         d dl mZ 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 d
dlmZ  ee          Zdedee         deee         z  fdZ G d de          ZdS )    )ThreadPoolExecutor)Any)ModelConfig)ChatCompletionMessageParamConversationMessageparse_chat_messagesparse_chat_messages_async)
TextPromptTokensPrompt)init_logger)cached_get_tokenizer)MistralTokenizer)
make_async   )RendererLike	tokenizermessagesreturnc                    ddl m} 	  | j        |fi |S # t          |f$ r"}t	          t          |                    |d }~wt          $ r<}t                              d           t	          t          |                    |d }~ww xY w)Nr   )MistralCommonExceptionzBAn error occurred in `mistral_common` while applying chat template)	mistral_common.exceptionsr   apply_chat_templateAssertionError
ValueErrorstr	Exceptionlogger	exception)r   r   kwargsr   es        j/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/renderers/mistral.pysafe_apply_chat_templater"      s    
 A@@@@@(,y,X@@@@@
 23 ( ( (Q  a'  ( ( ( 	P	
 	
 	
 Q  a'(s    B?B7BBc                       e Zd Zededeeef         ddfd            Zdedeeef         ddf fdZ	e
dedz  fd            Zdefd	Zd
ee         deee         eez  f         fdZd
ee         deee         eez  f         fdZ xZS )MistralRendererconfigtokenizer_kwargsr   r   c                      | ||          S N )clsr%   r&   s      r!   from_configzMistralRenderer.from_config4   s     s6+,,,    Nc                    t                                                       || _        |j        rd }nt	          ddt
          i|}|| _        t          d          | _        t          t          | j                  | _        d S )Ntokenizer_clsr   )max_workers)executorr)   )super__init__r%   skip_tokenizer_initr   r   
_tokenizerr   _apply_chat_template_executorr   r"   _apply_chat_template_async)selfr%   r&   r   	__class__s       r!   r2   zMistralRenderer.__init__<   s    
 	% 	II,  ." I
 $-?A-N-N-N**4$t/Q+
 +
 +
'''r,   c                     | j         S r(   )r4   )r7   s    r!   r   zMistralRenderer.tokenizerT   s
    r,   c                 6    | j         }|t          d          |S )Nz7Tokenizer not available when `skip_tokenizer_init=True`)r   r   )r7   r   s     r!   get_tokenizerzMistralRenderer.get_tokenizerX   s$    N	VWWWr,   r   c                 
   |                                  }t          || j        d          \  }}}t          ||fi |}t	          |t
                    rt          |          nt          |          }|||d<   |||d<   ||fS Nstring)content_format)prompt)prompt_token_idsmulti_modal_datamulti_modal_uuids)r;   r   r%   r"   
isinstancer   r
   r   	r7   r   r   r   conversationmm_datamm_uuids
prompt_rawr@   s	            r!   render_messageszMistralRenderer.render_messages_   s    
 &&((	*=K#+
 +
 +
'gx .iLLVLL
 *c**;Jj))))z::: 	
 )0F%&*2F&'V##r,   c                 (  K   |                                  }t          || j        d           d {V \  }}} | j        ||fi | d {V }t	          |t
                    rt          |          nt          |          }|||d<   |||d<   ||fS r=   )r;   r	   r%   r6   rD   r   r
   r   rE   s	            r!   render_messages_asyncz%MistralRenderer.render_messages_asyncy   s	     
 &&((	0IK#1
 1
 1
 +
 +
 +
 +
 +
 +
'gx ;4:x
 
#)
 
 
 
 
 
 
 

 *c**;Jj))))z::: 	
 )0F%&*2F&'V##r,   )__name__
__module____qualname__classmethodr   dictr   r   r+   r2   propertyr   r   r;   listr   tupler   r
   r   rJ   rL   __classcell__)r8   s   @r!   r$   r$   3   sn       -- sCx.- 
	- - - [-

 sCx.
 
	
 
 
 
 
 
0 +d2    X/    $12$ 
t'(*|*CC	D	$ $ $ $4$12$ 
t'(*|*CC	D	$ $ $ $ $ $ $ $r,   r$   N)concurrent.futuresr   typingr   vllm.configr   vllm.entrypoints.chat_utilsr   r   r   r	   vllm.inputsr
   r   vllm.loggerr   vllm.tokenizersr   vllm.tokenizers.mistralr   vllm.utils.async_utilsr   protocolr   rM   r   rS   r   intr"   r$   r)   r,   r!   <module>ra      sv   2 1 1 1 1 1       # # # # # #            1 0 0 0 0 0 0 0 # # # # # # 0 0 0 0 0 0 4 4 4 4 4 4 - - - - - - " " " " " "	X		((-.( 	49_	( ( ( (6`$ `$ `$ `$ `$l `$ `$ `$ `$ `$r,   