o
    ॵ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   S/home/ubuntu/.local/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_revision	llm_first)r   list_model_revisionsloggerinfolenerrorr   r   CONFIGURATIONr   	from_filesafe_getr   r
   r   r	   r   )r   r   r   model_revisionsconfiguration_filecfgr   pplpipeline_infodata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)r1   r2   r   r   checkerreser   r   r   check_deploy9   s0   

 r@   __main__z
--model_id)typez
--revision)rB   defaultr   )"argparser;   typingr   r   modelscope.hub.apir   modelscope.hub.file_downloadr   modelscope.pipelinesr   modelscope.utils.configr   modelscope.utils.constantr   modelscope.utils.input_outputr	   r
   r   r   modelscope.utils.loggerr   r   r   r0   r@   r-   ArgumentParserparseradd_argument
parse_argsargsr   r   r   r   r   r   <module>   s(    $'