
    ujE                        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
 d dlmZmZ d dlmZ  e
            Z ed          ZeZ ed	          Z ej                    e         Z ee                                          D ]PZed
         ej        k    r=ed          dk    r1ee         eej                                        ed
         ed         f<   Q	 	 ddededefdZddedefdZ	 	 ddededefdZ dS )    )Models)
ConfigDict)Tasks)	INDEX_KEYLazyImportModule)
get_logger)Registrybuild_from_cfg)get_task_by_subtask_namemodelsheads   	BACKBONES   Ncfg	task_namedefault_argsc                     	 t          | t          ||          }nW# t          $ rJ}t          |          \  }}|t          |          || d<   t          | t          ||          }Y d}~nd}~ww xY w|S )a   build model given model config dict

    Args:
        cfg (:obj:`ConfigDict`): config dict for model object.
        task_name (str, optional):  task name, refer to
            :obj:`Tasks` for more details
        default_args (dict, optional): Default initialization arguments.
    	group_keyr   Ntype)r
   MODELSKeyErrorr   )r   r   r   modeleparent_tasktask_model_types          i/lsinfo/ai/hellotax_ai/data_center/backend/venv/lib/python3.11/site-packages/modelscope/models/builder.pybuild_modelr      s    K9<I I I 	K 	K 	K (@	'J'J$_"1++%F;\K K K	K Ls    
A/A A**A/c                    |                      dd          s|                     dd          }n|                      dd          }	 t          | t          t          j        |          }ni# t          $ r\ t                              d| j	         d           t          j        | d<   || d<   t          | t          t          j        |          }Y nw xY w|S )	z build backbone given backbone config dict

    Args:
        cfg (:obj:`ConfigDict`): config dict for backbone object.
        default_args (dict, optional): Default initialization arguments.
    init_backboneF	model_dirNr   zThe backbone zR is not registered in modelscope, try to import the backbone from hf transformers.r   )getpopr
   r   r   backboner   loggerwarningr   r   transformers)r   r   r"   r   s       r   build_backboner)   2   s     77?E** /GGK..		GGK..	'n%	' ' '
  ' ' ' 	xCHxxx	
 	
 	
 )F$Kn%	' ' '' Ls   "A( (A#CCc                 2    t          | t          ||          S )a   build head given config dict

    Args:
        cfg (:obj:`ConfigDict`): config dict for head object.
        task_name (str, optional):  task name, refer to
            :obj:`Tasks` for more details
        default_args (dict, optional): Default initialization arguments.
    r   )r
   HEADS)r   r   r   s      r   
build_headr,   U   s(     UilD D D D    )NN)N)!modelscope.metainfor   modelscope.utils.configr   modelscope.utils.constantr   modelscope.utils.import_utilsr   r   modelscope.utils.loggerr   modelscope.utils.registryr	   r
   modelscope.utils.task_utilsr   r&   r   r   r+   get_ast_indexmoduleslistkeysmodule_indexr%   nameupperstrdictr   r)   r,    r-   r   <module>r?      s   & & & & & & . . . . . . + + + + + + E E E E E E E E . . . . . . > > > > > > > > @ @ @ @ @ @		(			
(

(
*
*9
5D(( ; ;LA%.((\!_-K-K%,\%: 	""$$l1oa" 	#
 "&%) Z "   6   
  $        H !%$(D DJ DD!D D D D D Dr-   