
    -`i6                     v   d Z ddlZddlZddlZddlmZ ddl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mZ dd	l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!  ee"          Z# G d dej$                  Z%ee G d d                                  Z&de!de!fdZ'dej(        fdZ)de!fdZ*dS )z
This file contains the command line arguments for the vLLM's
OpenAI-compatible server. It is kept in a separate file for documentation
purposes.
    N)Sequence)field)AnyLiteral)	dataclass)config)AsyncEngineArgsoptional_type)ChatTemplateContentFormatOptionvalidate_chat_template)H11_MAX_HEADER_COUNT_DEFAULT%H11_MAX_INCOMPLETE_EVENT_SIZE_DEFAULT)LoRAModulePath)init_logger)ToolParserManager)FlexibleArgumentParserc            
       \    e Zd Z	 ddej        dej        deee         z  dz  dedz  fdZdS )LoRAParserActionNparser	namespacevaluesoption_stringc           
      \   |g }t          |t                    rt          d          g }|D ]}|dv rd|v r@d|vr<|                    d          \  }}|                    t          ||                     K	 t          j        |          }	t          di |	}
|                    |
           # t          j        $ r |	                    d|            Y t          $ r2}|	                    d| dt          |                      Y d }~d }~ww xY wt          || j        |           d S )	NzExpected values to be a list)N =,z(Invalid JSON format for --lora-modules: z#Invalid fields for --lora-modules: z -  )
isinstancestr	TypeErrorsplitappendr   jsonloadsJSONDecodeErrorerrorsetattrdest)selfr   r   r   r   	lora_listitemnamepath	lora_dictloraes               t/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/entrypoints/openai/cli_args.py__call__zLoRAParserAction.__call__&   s    >Ffc"" 	<:;;;*,	 	 	Dz!!d{{s$!ZZ__
d  d!;!;<<<<	 $
4 0 0I)66I66D$$T****+ T T TLL!RD!R!RSSSSS    LLOdOOs1vvOO        		49i00000s   95B//'D	D!(DDN)	__name__
__module____qualname__argparseArgumentParser	Namespacer   r   r2   r       r1   r   r   %   sp         %)1 1'1 %1 hsm#d*	1
 Tz1 1 1 1 1 1r:   r   c                   Z   e Zd ZU dZdZedz  ed<   	 dZeed<   	 dZ	edz  ed<   	 dZ
ed         ed	<   	 d
Zeed<   	 d
Zeed<   	  ed           Zee         ed<   	  ed           Zee         ed<   	  ed           Zee         ed<   	 dZee         dz  ed<   	 dZee         dz  ed<   	 dZedz  ed<   	 dZeed<   	 d
Zeed<   	 dZeeef         dz  ed<   	 dZeed<   	 dZedz  ed<   	 dZ edz  ed<   	 dZ!edz  ed<   	 d
Z"eed <   	  ee#j$                  Z%eed!<   	 dZ&edz  ed"<   	 dZ'edz  ed#<   	  ed$           Z(ee         ed%<   	 d
Z)eed&<   	 d
Z*eed'<   	 d
Z+eed(<   	 d
Z,eed)<   	 d
Z-eed*<   	 dZ.edz  ed+<   	 d,Z/eed-<   	 dZ0edz  ed.<   	 e1j2        Z3edz  ed/<   	 dZ4edz  ed0<   	 d
Z5eed1<   	 d
Z6eed2<   	 d
Z7eed3<   	 d
Z8eed4<   	 d
Z9eed5<   	 d
Z:eed6<   	 d7Z;eed8<   	 e<Z=eed9<   	 e>Z?eed:<   	 e1j@        ZAeed;<   	 d
ZBeed<<   	 d
ZCeed=<   	 eDd>eEd?eEfd@            ZFdS )AFrontendArgsz4Arguments for the OpenAI-compatible frontend server.Nhosti@  portudsinfo)criticalr&   warningr@   debugtraceuvicorn_log_levelFdisable_uvicorn_access_logallow_credentialsc                      dgS N*r   r   r:   r1   <lambda>zFrontendArgs.<lambda>Z       u r:   )default_factoryallowed_originsc                      dgS rI   r   r   r:   r1   rK   zFrontendArgs.<lambda>\   rL   r:   allowed_methodsc                      dgS rI   r   r   r:   r1   rK   zFrontendArgs.<lambda>^   rL   r:   allowed_headersapi_keylora_moduleschat_templateautochat_template_content_formattrust_request_chat_templatedefault_chat_template_kwargs	assistantresponse_rolessl_keyfilessl_certfilessl_ca_certsenable_ssl_refreshssl_cert_reqsssl_ciphers	root_pathc                      g S r3   r   r   r:   r1   rK   zFrontendArgs.<lambda>   s    " r:   
middlewarereturn_tokens_as_token_ids disable_frontend_multiprocessingenable_request_id_headersenable_auto_tool_choice#exclude_tools_when_tool_choice_nonetool_call_parserr   tool_parser_plugintool_serverlog_config_filemax_log_lendisable_fastapi_docsenable_prompt_tokens_detailsenable_server_load_trackingenable_force_include_usageenable_tokenizer_info_endpointenable_log_outputsTenable_log_deltash11_max_incomplete_event_sizeh11_max_header_countlog_error_stacktokens_onlyenable_offline_docsr   returnc                 $   ddl m}  |t                    }t          j        |d         d<   t          j        |d         d<   t          j        |d         d<   |d         d= |d         d= |d         d= t          j        |d         d<   t          t                    |d	         d<   t          |d	         d
<   d|d         d
<   t          |d         d<   d|d         v r	|d         d= g |d         d<   t          t          j
                              }d                    |          }d| d|d         d<   |                     dt          j                  }|                                D ]*\  }} |j        d|                    dd           fi | +| S )Nr   )
get_kwargsrN   typerP   rR   nargsrY   rT   actionr"   rd   defaultr   {z,} or name registered in --tool-parser-pluginrj   metavarFrontend)titledescriptionz--_-)vllm.engine.arg_utilsr}   r<   r#   r$   r
   r   r   listr   list_registeredjoinadd_argument_group__doc__itemsadd_argumentreplace)r   r}   frontend_kwargsvalid_tool_parsersparsers_strfrontend_groupkeyvalues           r1   add_cli_argszFrontendArgs.add_cli_args   s   444444$*\22
 6:Z)*6259Z)*6259Z)*62-.w7-.w7-.w7 CG*67? 3@2D2D'/4D'1 3;%h/03%f-ol333-g635%i0 ""3"C"E"EFFhh122KKKK 	*+I6  22$, 3 
 

 *//11 	O 	OJC'N'(DS[[c-B-B(D(DNNNNNNr:   )Gr4   r5   r6   r   r=   r   __annotations__r>   intr?   rE   r   rF   boolrG   r   rN   r   rP   rR   rS   rT   r   rU   rW   r   rX   rY   dictr   r[   r\   r]   r^   r_   ssl	CERT_NONEr`   ra   rb   rd   re   rf   rg   rh   ri   rj   rk   rl   envsVLLM_LOGGING_CONFIG_PATHrm   rn   ro   rp   rq   rr   rs   rt   ru   r   rv   r   rw   VLLM_SERVER_DEV_MODErx   ry   rz   staticmethodr   r   r   r:   r1   r<   r<   G   s         ?>D#*D#CtO 	 w@    !',,,,%#t###!&}}!E!E!EOT#YEEE!&}}!E!E!EOT#YEEE!&}}!E!E!EOT#YEEE $GT#Y$$$04L$~&-444% !%M3:$$$ DJ "AJJJN
 ).---# ;? $sCx.4"7>>>F
 %M3$$$J"Kt""",#L#*###-#L#*####$$$$?S]++M3+++K"Kt"""J IsTz   J!E**===JS	===:
 (-,,,) .3$d222!&+t+++M$)T)))'05'555#'cDj'''M !    #Kt""" #'"?OS4Z???D"Kt"""1!&$&&&K). $...@(----O',,,,;+0"D0004$$$$'"t""" *O!3NNNI <#<<<2 5OT555@K !&%%%
 -3 -8N - - - \- - -r:   r<   r   r{   c                 <   |                      dt          dd           |                      dddd	           |                      d
dt          dd           |                      dd           t                              |           } t          j        |           } | S )a(  Create the CLI argument parser used by the OpenAI API server.

    We rely on the helper methods of `FrontendArgs` and `AsyncEngineArgs` to
    register all arguments instead of manually enumerating them here. This
    avoids code duplication and keeps the argument definitions in one place.
    	model_tag?z8The model tag to serve (optional if specified in config))r~   r   helpz
--headless
store_trueFzRRun in headless mode. See multi-node data parallel documentation for more details.)r   r   r   z--api-server-countz-ascNzVHow many API server processes to run. Defaults to data_parallel_size if not specified.)r~   r   r   z--configzRead CLI options from a config file. Must be a YAML with the following options: https://docs.vllm.ai/en/latest/configuration/serve_args.html)r   )r   r   r   r<   r   r	   )r   s    r1   make_arg_parserr   	  s     G	     *	     ;     G     &&v..F)&11FMr:   argsc                     t          | d          r| j        dk    rdS t          | j                   | j        r| j        st          d          | j        r| j        st          d          dS dS )z>Quick checks for model serve args that raise prior to loading.	subparserserveNz<Error: --enable-auto-tool-choice requires --tool-call-parserz:Error: --enable-log-outputs requires --enable-log-requests)	hasattrr   r   rU   rh   rj   r    rt   enable_log_requests)r   s    r1   validate_parsed_serve_argsr   1  s    t[!! dn&?&? 4-... # XD,A XVWWW Vt'? VTUUUV V V Vr:   c                  @    t          d          } t          |           S )Nz%-m vllm.entrypoints.openai.api_server)prog)r   r   )parser_for_docss    r1   create_parser_for_docsr   @  s)    ,4  O ?+++r:   )+r   r7   r#   r   collections.abcr   dataclassesr   typingr   r   pydantic.dataclassesr   	vllm.envsr   vllm.configr   r   r	   r
   vllm.entrypoints.chat_utilsr   r   vllm.entrypoints.constantsr   r   'vllm.entrypoints.openai.models.protocolr   vllm.loggerr   vllm.tool_parsersr   vllm.utils.argparse_utilsr   r4   loggerActionr   r<   r   r9   r   r   r   r:   r1   <module>r      sB      



 $ $ $ $ $ $               * * * * * *             @ @ @ @ @ @ @ @               C B B B B B # # # # # # / / / / / / < < < < < <	X		1 1 1 1 1x 1 1 1D 
} } } } } } }  }@%2 %7M % % % %PVX%7 V V V V, 6 , , , , , ,r:   