
    .`if
                         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 d dlmZ d dlmZ d d	lmZmZ d d
lmZ  ee          Z e            ZdefdZdS )    N)	APIRouterDependsFastAPIRequest)JSONResponseResponse)envs)ErrorResponse)models)OpenAIServingModels)validate_json_request)LoadLoRAAdapterRequestUnloadLoRAAdapterRequest)init_loggerappc                     t           j        s	 d S t                              d           t	          j        dddd          t                              dt          t                    g          d	t          d
t          fd                        }t	          j        ddi          t                              dt          t                    g          d	t          d
t          fd                        }|                     t                     d S )NznLoRA dynamic loading & unloading is enabled in the API server. This should ONLY be used for local development!z	body.namezbody.srczbody.load_inplace || `false`)	lora_name	lora_pathload_inplace)request_shapez/v1/load_lora_adapter)dependenciesrequestraw_requestc                    K   t          |          }|                    |            d {V }t          |t                    r-t	          |                                |j        j                  S t          d|          S N)contentstatus_code   )r   r   )	r   load_lora_adapter
isinstancer
   r   
model_dumperrorcoder   r   r   handlerresponses       z/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/entrypoints/serve/lora/api_router.pyr   z(attach_router.<locals>.load_lora_adapter#   s       (.k':': 227;;;;;;;;h.. 	 ++--8>;N    C::::    r   zpath_params.adapter_namez/v1/unload_lora_adapterc                    K   t          |          }|                    |            d {V }t          |t                    r-t	          |                                |j        j                  S t          d|          S r   )	r   unload_lora_adapterr    r
   r   r!   r"   r#   r   r$   s       r'   r*   z*attach_router.<locals>.unload_lora_adapter5   s       (.k':': 44W========h.. 	 ++--8>;N    C::::r(   )r	    VLLM_ALLOW_RUNTIME_LORA_UPDATINGloggerwarningsagemaker_standardsregister_load_adapter_handlerrouterpostr   r   r   r   register_unload_adapter_handlerr   include_router)r   r   r*   s      r'   attach_routerr4      sQ   0 M
NN	:  
 6$#:
 
   [[(@U8V8V7W[XX;)? ;g ; ; ; YX ; 83
  
 [[!9N1O1O0P   
;)
;8?
; 
; 
;  
; vr(   )+model_hosting_container_standards.sagemaker	sagemakerr.   fastapir   r   r   r   fastapi.responsesr   r   vllmr	   'vllm.entrypoints.openai.engine.protocolr
   )vllm.entrypoints.openai.models.api_routerr   &vllm.entrypoints.openai.models.servingr   vllm.entrypoints.openai.utilsr   $vllm.entrypoints.serve.lora.protocolr   r   vllm.loggerr   __name__r,   r0   r4    r(   r'   <module>rB      s9  
 J I I I I I 8 8 8 8 8 8 8 8 8 8 8 8 4 4 4 4 4 4 4 4            = < < < < < F F F F F F ? ? ? ? ? ?        $ # # # # #	X			0w 0 0 0 0 0 0r(   