
    j                        d dl Z d dlmZ d dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ defd	Zd
edefdZd
edee         ddfdZdedee         dededededededededefdZdededz  fdZddedededee         fdZdS )    N)uuid4)logger)get_auto_annotate_joblist_auto_annotate_jobssave_auto_annotate_job)submit_task)auto_annotate_dataset_assets)get_datasetreturnc                  n    dt          j        d          z   dz   t                      j        d d         z   S )Nauto_z%Y%m%d_%H%M%S_   )timestrftimer   hex     V/home/longshao/multi-rider-rag/modules/training/services/auto_annotate_task_service.py_new_auto_job_idr      s/    T]?333c9EGGKOKKr   jobc                 N    |                      |           t          |            | S N)updater   )r   changess     r   _update_jobr      s'    JJw3Jr   	asset_idsc                     	 t           dt          t          j                              d           dt          dd f fd}t	           d         | d         t           d	         pd
          t           d         pd                               d          pd                     d          pdt                               d                    |	  	        }d|d          d|d          d}|d         r|d|d          dz  }|d         r|d|d          dz  }t           dt          t          j                              t          |d         pd          t          |d         pd          t          |d         pd          t          |d         pd          t          |d         pd          |	  	         d S # t          $ rt}t          j
        d                     d           |           t           d!t          t          j                              t          |          pd"#           Y d }~d S d }~ww xY w)$Nrunningu   正在批量执行预标注)statusstart_tsmessagesnapshotr   c           	         t          |                     d          pd          }t          |                     d          pd          }t          |                     d          pd          }t          |                     d          pd          }t          |                     d          pd          }d| d| d	| d
}|r	|d| dz  }|r	|d| dz  }t          ||||||           d S )Ntotalr   	processedupdatedskipped_existingno_detectionu
   已处理 /    张，生成     张预标注   ，跳过已标注     张   ，无命中 )r%   r&   r'   r(   r)   r"   )intgetr   )r#   r%   r&   r'   r(   r)   r"   r   s          r   on_progressz+_run_auto_annotate_job.<locals>.on_progress"   s/   W--233EHLL55:;;I(,,y116Q77G"8<<0B#C#C#HqIIx||N;;@qAALZ9ZZuZZGZZZG HG1AGGGG >=<====#!1)     r   
dataset_id	model_keyconf_thresh      ?imgsz  prompt_classes class_mapping	overwrite)	r3   r   r4   r5   r7   prompt_valueclass_mapping_valuer<   progress_callbacku   批量预标注完成，处理 r&   r+   r'   r,   r(   r-   r.   r)   r/   doner   )r    end_tsr%   r&   r'   r(   r)   r"   z&failed to run auto annotate job %s: %siderroru   批量预标注失败)r    rA   r"   )r   r0   r   dictr	   floatr1   bool	Exceptionr   	exceptionstr)r   r   r2   resultr"   excs   `     r   _run_auto_annotate_jobrL      s   A
%%1		
 	
 	
 	
	$ 	4 	 	 	 	 	 	* .<(+&c-08D99c'l)c**!1228b # 8 8 >B377;//00)

 

 

 xF;4GwwW]^gWhwww$% 	NMV4F-GMMMMG.! 	DCvn'=CCCCGty{{##f[).Q//&-233y).Q// (:!;!@qAAVN38q99
	
 
	
 
	
 
	
 
	
 
	
  
 
 
A3774==RUVVVty{{##HH7 7		
 	
 	
 	
 	
 	
 	
 	
 	
 	

s   F:F? ?
H=	A)H88H=r3   r4   r5   r7   r9   r;   r<   	owner_keyowner_ipc
                    t          |           }
|st          d          i dt                      d|
d         d|
                    d          p|
d         dddd	d
|dt	          |pd          dt          |pd          dt          |pd                                          dt          |pd                                          dt          |          dt          |          dddddddddt          t          j
                              d d ||	d}t          |           t          d|d         t          |          d||	|d                    |S )Nu-   当前没有可用于批量预标注的图片rB   r3   dataset_namenamer    queuedr"   u-   批量预标注任务已创建，等待启动r4   r5   r6   r7   r8   r9   r:   r;   r<   r%   r&   r   r'   r(   r)   
created_ts)r!   rA   rM   rN   auto_annotate)job_idr   )rM   rN   task_id)r
   
ValueErrorr   r1   rE   r0   rI   striprF   lenr   r   r   list)r3   r   r4   r5   r7   r9   r;   r<   rM   rN   datasetr   s               r   start_auto_annotate_jobr\   ^   s    *%%G JHIII  gdm 	F++<wt} 	(	
 	B 	Y 	u[0D11 	U\c"" 	#n23399;; 	]0b117799 	T)__ 	Y 	Q 	1 	A  	!" 	c$)++&&#$ +  C. 3t94	??;;D	    Jr   rU   c                      t          |           S r   )r   )rU   s    r   get_auto_annotate_job_snapshotr^      s     (((r      limitc                 &    t          | ||          S )N)r`   )r   )rM   rN   r`   s      r    list_auto_annotate_job_snapshotsrb      s    "9heDDDDr   )r_   )r   uuidr   shared.config.configr   shared.db.sqliter   r   r   shared.task_queuer   /modules.training.services.auto_annotate_servicer	   )modules.training.services.dataset_servicer
   rI   r   rD   r   rZ   rL   rE   r0   rF   r\   r^   rb   r   r   r   <module>ri      s          ' ' ' ' ' '         
 * ) ) ) ) ) X X X X X X A A A A A AL# L L L LT     B
 B
c B
t B
 B
 B
 B
J00Cy0 0 	0
 0 0 0 0 0 0 
0 0 0 0f)3 )4$; ) ) ) )E E Es E3 EX\]aXb E E E E E Er   