o
    
۾i                     @   s   d dl Z d dlmZ d dlmZ d dlmZmZ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 eeZe Zde	d	efd
dZedde	fddZdefddZdS )    N)
HTTPStatus)Any)	APIRouterFastAPIHTTPExceptionRequest)JSONResponseResponse)EngineClient)init_loggerrequestreturnc                 C   s
   | j jjS N)appstateengine_client)r    r   Y/home/ubuntu/.local/lib/python3.10/site-packages/vllm/entrypoints/serve/rpc/api_router.pyr      s   
r   z/collective_rpcraw_requestc           
   
      s
  z	|   I d H }W n t jy# } zttjjd| d|d }~ww |d}|d u r5ttjjdd|dg }|di }|d}t| j||t	||dI d H }|d u r_t
d	d
S g }|D ]}	|	d u spt|	ttB rv||	 qc|t|	 qctd|idS )NzJSON decode error: )status_codedetailmethodz Missing 'method' in request bodyargskwargstimeout)r   r   r   r      )r   results)content)jsonJSONDecodeErrorr   r   BAD_REQUESTvaluegetr   collective_rpctupler	   
isinstancedictlistappendstrr   )
r   bodyer   r   r   r   r   responseresultr   r   r   r#      s@   


r#   r   c                 C   s   t jsd S | t d S r   )envsVLLM_SERVER_DEV_MODEinclude_routerrouter)r   r   r   r   attach_router:   s   r2   )r   httpr   typingr   fastapir   r   r   r   fastapi.responsesr   r	   	vllm.envsr.   vllm.engine.protocolr
   vllm.loggerr   __name__loggerr1   r   postr#   r2   r   r   r   r   <module>   s   !