o
    0jk                     @   s   d dl Z d dlZddlmZ ddlmZ ddlmZmZ ddl	m
Z
mZ ddlmZmZmZ d	d
 Zdd ZdddZedkrDe  dS dS )    N   )logging) is_genai_engine_plugin_available   )load_backend_configupdate_backend_config)DEFAULT_BACKENDSUPPORTED_BACKENDS)get_chat_template_pathget_default_configget_model_dirc                  C   sn   t d} | jdtdd | jdtd | jdtdd	 | jd
tdd	 | jdtttd | jdtdd | S )NzPaddleX generative AI server.z--model_nameT)typerequiredz--model_dir)r   z--host	localhost)r   defaultz--porti@  z	--backend)r   choicesr   z--backend_configz'Path to the backend configuration file.)r   help)argparseArgumentParseradd_argumentstrintr	   r   )parser r   _/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/inference/genai/server.pyget_arg_parser   s   
r   c           
      C   s  | j  d}t|std| d td | j dkr&ddlm} |}n| j dkr4ddlm	} |}n| j d	krBdd
l
m} |}nt| jrK| j}nz	t| j| j }W n tyi   tjddd td Y nw | jrzt| j}W n ty   tjd| j dd td Y nw i }z	t| j| j }W n ty   tjddd td Y nw t|| |}t| j| j |}	|| j| j| j|||	 W d    d S 1 sw   Y  d S )Nz-serverzThe 'z3' plugin is not available. Please install it first.r   Z
fastdeploy)run_fastdeploy_serverZvllm)run_vllm_serverZsglang)run_sglang_serverzFailed to get model directoryT)exc_infoz0Failed to load backend configuration from file: z1Failed to get default configuration for the model)backendr   r   errorsysexitZbackends.fastdeployr   Zbackends.vllmr   Zbackends.sglangr   AssertionError	model_dirr   Z
model_name	Exceptionbackend_configr   r   r   r
   hostport)
argsZplugin_namer   Zrun_server_funcr   r   r%   r'   Zdefault_configZchat_template_pathr   r   r   run_genai_server(   sz   






"r+   c                 C   s   t  }|j| d} t|  d S )N)r*   )r   
parse_argsr+   )r*   r   r   r   r   mainn   s   r-   __main__)N)r   r"   utilsr   Z
utils.depsr   Zconfigs.utilsr   r   	constantsr   r	   modelsr
   r   r   r   r+   r-   __name__r   r   r   r   <module>   s   
F
