o
    
۾if
                     @   s   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dZdS )    N)	APIRouterDependsFastAPIRequest)JSONResponseResponse)envs)ErrorResponse)models)OpenAIServingModels)validate_json_request)LoadLoRAAdapterRequestUnloadLoRAAdapterRequest)init_loggerappc                 C   s   t js	 d S td tjdddddtjdtt	gdd	t
d
tfdd}tjddidtjdtt	gdd	td
tfd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                    D   t |}|| I d H }t|trt| |jjdS td|dS N)contentstatus_code   )r   r   )	r
   load_lora_adapter
isinstancer	   r   
model_dumperrorcoder   r   r   handlerresponse r%   Z/home/ubuntu/.local/lib/python3.10/site-packages/vllm/entrypoints/serve/lora/api_router.pyr   #   s   	
z(attach_router.<locals>.load_lora_adapterr   zpath_params.adapter_namez/v1/unload_lora_adapterc                    r   r   )	r
   unload_lora_adapterr   r	   r   r   r    r!   r   r"   r%   r%   r&   r'   5   s   
z*attach_router.<locals>.unload_lora_adapter)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'   r%   r%   r&   attach_router   s6   

r1   )+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)   r-   r1   r%   r%   r%   r&   <module>   s   