o
    
۾i                     @   s   d dl Z d dlZd dlmZmZ d dlZd dlmZmZ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e ZeeZdd	 Zejd
ddd Zed	dde
deed e	 f fddZdefddZdS )    N)	AnnotatedLiteral)	APIRouterFastAPIQueryRequest)JSONResponse)get_env_info)
VllmConfig)init_loggerc                  C   sX   ddl m}  i }ttD ]}|dr)d|vr)tt|d }|d ur)| |}|||< q|S )Nr   )normalize_valueVLLM_KEY)vllm.config.utilsr   direnvs
startswithgetattr)r   	vllm_envskeyvalue r   e/home/ubuntu/.local/lib/python3.10/site-packages/vllm/entrypoints/serve/instrumentator/server_info.py_get_vllm_env_vars   s   r      )maxsizec                   C   s
   t   S N)r	   _asdictr   r   r   r   _get_system_env_info_cached&   s   
r   z/server_infotextraw_requestconfig_format)r   jsonc                    sL   | j jj}|dkrt|ntj|dtdt tt	I d H d}t
|dS )Nr   r"   )modefallback)vllm_configvllm_env
system_env)content)appstater%   strPydanticVllmConfigdump_pythonr   asyncio	to_threadr   r   )r    r!   r%   server_infor   r   r   show_server_info+   s   


r1   r)   c                 C   s   t jsd S | t d S r   )r   VLLM_SERVER_DEV_MODEinclude_routerrouter)r)   r   r   r   attach_router>   s   r5   )r   ) r.   	functoolstypingr   r   pydanticfastapir   r   r   r   fastapi.responsesr   	vllm.envsr   vllm.collect_envr	   vllm.configr
   vllm.loggerr   __name__loggerr4   TypeAdapterr,   r   	lru_cacher   getr1   r5   r   r   r   r   <module>   s0   


