o
    -i                  
   @   s   d dl m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 eeZdede
fdd	Ze Zed
ededfdedededefddZeddedefddZeddedefddZdefddZdS )    )
HTTPStatus)	APIRouterFastAPIQueryRequest)JSONResponse)EngineClient)init_loggerrequestreturnc                 C   s
   | j jjS N)appstateengine_client)r
    r   c/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/entrypoints/serve/rlhf/api_router.pyr      s   
r   z/pauseFTraw_requestwait_for_inflight_requestsclear_cachec              
      s   t | }z|j||dI dH  tdditjjdW S  ty8 } ztdt|itjjdW  Y d}~S d}~w t	y[ } zt
d tdd| itjjdW  Y d}~S d}~ww )	aO  Pause generation requests to allow weight updates.

    Args:
        wait_for_inflight_requests: When ``True`` waits for in-flight
            requests to finish before pausing. When ``False`` (default),
            aborts any in-flight requests immediately.
        clear_cache: Whether to clear KV/prefix caches after draining.
    )r   r   Nstatuspausedcontentstatus_codeerrorzFailed to pause generationzFailed to pause generation: )r   pause_generationr   r   OKvalue
ValueErrorstrBAD_REQUEST	Exceptionlogger	exceptionINTERNAL_SERVER_ERROR)r   r   r   engineerrr   r   r   r      s2   

r   z/resumec              
      sx   t | }z| I dH  tdditjjdW S  ty; } ztd tdd| itj	jdW  Y d}~S d}~ww )z Resume generation after a pause.Nr   resumedr   zFailed to resume generationr   zFailed to resume generation: )
r   resume_generationr   r   r   r   r!   r"   r#   r$   )r   r%   r&   r   r   r   r(   ?   s    
r(   z
/is_pausedc              
      st   t | }z	| I dH }W n$ ty2 } ztd tdd| itjjdW  Y d}~S d}~ww td|idS )z Return the current pause status.NzFailed to fetch pause statusr   zFailed to fetch pause status: r   	is_paused)r   )	r   r)   r!   r"   r#   r   r   r$   r   )r   r%   r   r&   r   r   r   r)   S   s   
r)   r   c                 C   s   |  t d S r   )include_routerrouter)r   r   r   r   attach_routere   s   r,   N)httpr   fastapir   r   r   r   fastapi.responsesr   vllm.engine.protocolr   vllm.loggerr	   __name__r"   r   r+   postboolr   r(   getr)   r,   r   r   r   r   <module>   s2   '