
    :ij                        S SK Jr  S SKJr  S SKrS SKrS SKJr  S SKJ	r	J
r
Jr  S SKJrJrJr  S SKJr  S SKJr  \R(                  S	\	R*                  S
4S\\-  \-  S\S\S\	S\S\4S jjr\R2                  " 5       S-S j5       r\R7                  SSS0S9\R8                  " S\S9\R8                  " S\R:                  " \ V s/ s H  o R<                  PM     sn SS9\R(                  R<                  S9\R>                  " S\S	SSS9\R>                  " S \S S!SS9\R>                  " S"\S#S$SS9\R>                  " S%\R:                  " \	 V s/ s H  o R<                  PM     sn SS9\	R*                  R<                  S&SS9\R>                  " S'\S
S(SS9\R(                  S	S S#\	R*                  R<                  S
4S\\-  S\\-  S)\S*\S\S\S\SS4S+ jj5       5       5       5       5       5       5       5       r \!S,:X  a  \" 5         ggs  sn f s  sn f ).    )	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 [        [        [        45      (       d  [	        S5      e[        5       nUR                  [        5        UR                  [        5        UR                  [        5        [        S[        4UUUU U4S jj5       nU" 5         XeR                  [        '   U$ )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S9n [        T[        5      (       a	  TU l        U $ U R	                  TT5        U $ )N)r   r   r   )r   
isinstancer   r   _load_tokenizer)settingsr   r   r   r   r   s    ^/home/james-whalen/.local/lib/python3.13/site-packages/mistral_common/experimental/app/main.pyget_settings_override)create_app.<locals>.get_settings_override0   sL    !)

 i!122!*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!>??STT
)C'}%{#
8 
 
 
 -B\*Jr   c                      g)zMistral-common CLI.N r%   r   r   clir&   C   s     	r   serveauto_envvar_prefixUVICORN)namecontext_settingstokenizer_path)typeF)case_sensitive)r-   defaultz--hostzMistral-common API hostT)r-   r/   helpshow_defaultz--portzMistral-common API portz--engine-urlzhttp://127.0.0.1:8080zEnginge URLz--engine-backendzEngine API backendz	--timeoutTimeouthostportc                 l    [        U [        U5      U[        U5      US9n[        R                  " XrUS9  g)zOServe the Mistral-common API with the given tokenizer path and validation mode.)r   r   r   r   r   )r3   r4   N)r#   r   r   uvicornrun)r,   r   r3   r4   r   r   r   r"   s           r   r'   r'   I   s8    h  &7$^4C KKT*r   __main__)r   N)"	functoolsr   pathlibr   clickr6   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Choicevalueoptionr'   __name__)modes   0r   <module>rL      s        
 
 F E
 '5&9&9!$1$;$;*Tz,,*#* * "	*
 * *Z 	 	
 '-A9,MN s+	n=ndzzn=e	T%%
 		" 		" 	#	 	m<mdzzm<U	S##))	 		 -;,?,?-'1177+$J+#c)+ + 	+
 + + + 
+ , OT+( zE u >4 =s   H 
H