o
    rqi                     @   s  d dl Z d dl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mZmZ d d	lmZ e ZG d
d dZddeeef deeef fddZedkre  Zejded ejdedd e Zeej ej! dS dS )    N)ListUnion)HubApi)model_file_download)pipeline)Config)	ModelFile)call_pipeline_with_json$get_pipeline_information_by_pipelineget_task_input_examples(pipeline_output_to_service_base64_output)
get_loggerc                   @   s$   e Zd Zdd ZddefddZdS )DeployCheckerc                 C   s   t  | _d S N)r   api)self r   f/home/app/PaddleOCR-VL/.venv_paddleocr/lib/python3.10/site-packages/modelscope/utils/deploy_checker.py__init__   s   zDeployChecker.__init__Nmodel_idc                 C   s   |s$| j |}td| d|  t|r|d }nt| d t|tj|d}t	
|}|d}t|||dd}t|}t|}	t|||	}
t||
}|S )	NzAll model_revisions of `z`: r   z has no revision.)r   	file_pathrevisiontaskT)r   modelmodel_revisionZexternal_engine_for_llm)r   Zlist_model_revisionsloggerinfolenerrorr   r   ZCONFIGURATIONr   	from_fileZsafe_getr   r
   r   r	   r   )r   r   r   Zmodel_revisionsZconfiguration_filecfgr   ZpplZpipeline_infodataZinfer_resultresultr   r   r   check_model   s4   



zDeployChecker.check_modelr   )__name__
__module____qualname__r   strr#   r   r   r   r   r      s    r   models	revisionsc                 C   s   t | ts| g} t |ts|g|rdnt|  }t| t|kr0tdt| dt| d t }t| |D ]?\}}z|||}t| d| d| d W q8 t	yw } zt| d| d| d	t
  d W Y d }~q8d }~ww d S )
N   zMThe number of models and revisions need to be equal: The number of models is z" while the number of revisions is . z: Deploy pre-check pass. 
z: Deploy pre-check failed: z. )
isinstancelistr   r   r   r   zipr#   r   BaseException	traceback	print_exc)r(   r)   r   r   checkerreser   r   r   check_deploy9   s0   

 r7   __main__z
--model_id)typez
--revision)r9   defaultr   )"argparser2   typingr   r   Zmodelscope.hub.apir   Zmodelscope.hub.file_downloadr   Zmodelscope.pipelinesr   Zmodelscope.utils.configr   Zmodelscope.utils.constantr   Zmodelscope.utils.input_outputr	   r
   r   r   Zmodelscope.utils.loggerr   r   r   r'   r7   r$   ArgumentParserparseradd_argument
parse_argsargsr   r   r   r   r   r   <module>   s(    $'