o
    V۷iP	                     @   sL   d dl Z d dlZd dlZd dlmZ d dlZdddZedkr$e  dS dS )    N)AutoTokenizerreturnc                  C   s  t jdd} | jdddd | jddd	 | jd
dd	 | jddd	 | jdddtd | jdddd | jdddd |  }|j}t|d}t|d}|	 }W d    n1 s]w   Y  t
|}i }|jrt|jd}|	 |d< W d    n1 sw   Y  |jrt|jd}t|	 |d< W d    n1 sw   Y  |stdg }|jrt|jd}|	 }W d    n1 sw   Y  t|}	|	j|dd}t
j|td|gi|j|j|jd }
|
  t|| |D ]G}|
 \}}t|}|d! D ]}|d" d#krtd$d%d& t| qt||gd'd& |s0J || d(kr=td)  n|
| qtd* d S )+Nz'Command line interface for LL Guidance.)descriptionz--tokenizerzTokenizer namezmicrosoft/Phi-3.5-mini-instruct)helpdefaultz--larkzLark grammar file)r   z--json-schemazJSON schema filez--textz(File containing simulated generated textz--log-levelz	Log level   )r   r   typez--ff-tokenszEnable fast-forward tokens
store_true)r   actionz--backtrackzEnable backtrackingztokenizer.jsonrlark_grammarjson_schemaz1No grammar provided; need --lark or --json-schemaF)add_special_tokensgrammars)enable_ff_tokensenable_backtrack	log_levelprogressobjecttextz
   )end r   zToken not in mask
)argparseArgumentParseradd_argumentint
parse_args	tokenizerhuggingface_hubhf_hub_downloadopenread
llguidanceLLTokenizerlarkr   jsonloads
ValueErrorr   r   from_pretrainedencodeLLInterpreterdumps	ff_tokens	backtrackr   start_without_promptprint
dbg_tokenscompute_maskcommit_token)parserargsr   tok_namefr   tokgrmtokenshf_tokinterptmaskr   objp rB   D/home/ubuntu/vllm_env/lib/python3.10/site-packages/llguidance/cli.pymain   s~   





rD   __main__)r   N)r   r'   r    transformersr   r$   rD   __name__rB   rB   rB   rC   <module>   s    
D
