
    *`ij                        d dl mZ d dlmZ d dlZd dlZd dlmZ d dlm	Z	m
Z
mZ d dlmZmZmZ d dlmZ d dlmZ ej        d	e	j        d
fdeez  ez  dedede	dedefdZ ej                    d/d            Ze                    dddi           ej        de           ej        d ej        d eD             d          ej        j                   ej        ded	dd            ej        d!ed d"d            ej        d#ed$d%d            ej        d& ej        d' e	D             d          e	j        j        d(d            ej        d)ed
d*d           ej        d	d d$e	j        j        d
fdeez  deez  d+ed,ededededdfd-                                                                                                Z e!d.k    r e             dS dS )0    )	lru_cache)PathN)FastAPI)EngineBackendSettingsget_settings)decode_routermain_routertokenize_router)ValidationMode)MistralTokenizerz	127.0.0.1<   	tokenizervalidation_mode
engine_urlengine_backendtimeoutreturnc                     t           t          t          t          f          st	          d          t                      }|                    t                     |                    t                     |                    t                     t          dt          f fd            } |             ||j        t          <   |S )aq  Create a Mistral-common FastAPI app with the given tokenizer and validation mode.

    Args:
        tokenizer: The tokenizer path or a MistralTokenizer instance.
        validation_mode: The validation mode to use.
        engine_url: The URL of the engine API.
        timeout: The timeout of the engine API.

    Returns:
        The Mistral-common FastAPI app.
    z8Tokenizer must be a path or a MistralTokenizer instance.r   c                      t                    } t          t                    r| _        n|                                | S )N)r   r   r   )r   
isinstancer   r   _load_tokenizer)settingsr   r   r   r   r   s    x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/mistral_common/experimental/app/main.pyget_settings_overridez)create_app.<locals>.get_settings_override0   s\    !)
 
 

 i!122 	A!*H$$Y@@@    )r   r   strr   
ValueErrorr   include_routerr   r	   r
   r   r   dependency_overridesr   )r   r   r   r   r   appr   s   `````  r   
create_appr"      s    $ i"2C!>?? USTTT
))C'''}%%%{###
8 
 
 
 
 
 
 
 
 
 Y
 -BC\*Jr   c                      dS )zMistral-common CLI.N r$   r   r   clir%   C   s	     	Dr   serveauto_envvar_prefixUVICORN)namecontext_settingstokenizer_path)typec                     g | ]	}|j         
S r$   value.0modes     r   
<listcomp>r3   M   s    ===dtz===r   F)case_sensitive)r,   defaultz--hostzMistral-common API hostT)r,   r5   helpshow_defaultz--portzMistral-common API portz--engine-urlzhttp://127.0.0.1:8080zEnginge URLz--engine-backendc                     g | ]	}|j         
S r$   r.   r0   s     r   r3   r3   g   s    <<<dtz<<<r   zEngine API backendz	--timeoutTimeouthostportc                     t          | t          |          |t          |          |          }t          j        |||           dS )zOServe the Mistral-common API with the given tokenizer path and validation mode.)r   r   r   r   r   )r:   r;   N)r"   r   r   uvicornrun)r+   r   r:   r;   r   r   r   r!   s           r   r&   r&   I   sW    h  &77$^44  C K$T******r   __main__)r   N)"	functoolsr   pathlibr   clickr=   fastapir   &mistral_common.experimental.app.modelsr   r   r   'mistral_common.experimental.app.routersr	   r
   r   *mistral_common.protocol.instruct.validatorr   (mistral_common.tokens.tokenizers.mistralr   test	llama_cppr   intr"   groupr%   commandargumentChoicer/   optionr&   __name__r$   r   r   <module>rQ      s                               
         
 F E E E E E E E E E E E
 '5&9!$1$;* *Tz,,*#* * "	*
 * * * * *Z 	 	 	 	
 '-A9,MNN s+++	==n===e	T	T	T%  
 		"   		"   	#	   	<<m<<<U	S	S	S#)	   		   -;,?-'17+ +$J+#c)+ + 	+
 + + + 
+ + +       ,+ ONT+( zCEEEEE r   