§
    ÔŸ’j  ã                  óˆ   — d dl mZ d dlZddlmZmZmZ ddlmZ  ej	        d¦  «        Z
 G d„ d¦  «        Z e¦   «         ZdS )	é    )ÚannotationsNé   )ÚQSDrillDefinitionÚQSDrillScorecardÚTrainingEpochResult)ÚQSTrainerLoopzdscons.takeoff_training.servicec                  óB   — e Zd ZdZdd„Zdd„Zdd
„Z	 ddd„Z	 ddd„ZdS )ÚAIQuynhTrainingServiceug   Dá»‹ch vá»¥ Há»�c viá»‡n Ä‘Ã o táº¡o vÃ  bÃ i táº­p tá»± trá»‹ nÃ¢ng cao nÄƒng lá»±c cho AI Quá»³nh QS.ÚreturnÚNonec                ó,   — t          ¦   «         | _        d S )N)r   Útrainer©Úselfs    úNC:\Projects\DSCons\app\modules\takeoff\application\takeoff_training\service.pyÚ__init__zAIQuynhTrainingService.__init__   s   € Ý$‘”ˆŒˆˆó    úlist[QSDrillDefinition]c                ó4   — | j                              ¦   «         S )uN   Láº¥y danh sÃ¡ch cÃ¡c bÃ i táº­p kiá»ƒm chuáº©n thá»±c táº¿ tá»« kho HÄ�-2026.)r   Úlist_drillsr   s    r   Úlist_available_drillsz,AIQuynhTrainingService.list_available_drills   s   € àŒ|×'Ò'Ñ)Ô)Ð)r   Údrill_idÚstrr   c                ó6   — | j                              |¦  «        S )uF   Thá»±c hiá»‡n cháº¥m Ä‘iá»ƒm bÃ i táº­p kiá»ƒm chuáº©n bÃ³c tÃ¡ch BoQ.©r   Úexecute_drill©r   r   s     r   Ú	run_drillz AIQuynhTrainingService.run_drill   s   € àŒ|×)Ò)¨(Ñ3Ô3Ð3r   é   Ú
max_epochsÚintúlist[TrainingEpochResult]c                ó:   — | j                              ||¬¦  «        S )uR   KÃ­ch hoáº¡t vÃ²ng láº·p tá»± há»�c Ä‘a chu ká»³, tá»± sinh Learned Rules vÃ o DB.)r   r    )r   Úrun_autonomous_training_loop)r   r   r    s      r   Úrun_autonomous_learning_loopz3AIQuynhTrainingService.run_autonomous_learning_loop   s(   € ð Œ|×8Ò8Ø¨*ð 9ñ 
ô 
ð 	
r   úDRILL-NVH-DAITHANG-2026c                ó6   — | j                              |¦  «        S )uB   Láº¥y báº£ng Ä‘iá»ƒm kiá»ƒm chuáº©n gáº§n nháº¥t cá»§a AI Quá»³nh.r   r   s     r   Úget_latest_scorecardz+AIQuynhTrainingService.get_latest_scorecard#   s   € ð Œ|×)Ò)¨(Ñ3Ô3Ð3r   N)r   r   )r   r   )r   r   r   r   )r   )r   r   r    r!   r   r"   )r&   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r%   r(   © r   r   r
   r
      s’   € € € € € ØqÐqð'ð 'ð 'ð 'ð*ð *ð *ð *ð4ð 4ð 4ð 4ð ð
ð 
ð 
ð 
ð 
ð 8ð4ð 4ð 4ð 4ð 4ð 4ð 4r   r
   )Ú
__future__r   ÚloggingÚmodelsr   r   r   Útrainer_loopr   Ú	getLoggerÚloggerr
   Úai_quynh_training_servicer-   r   r   ú<module>r5      s¢   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€à LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 'Ð 'Ð 'Ð 'Ð 'Ð 'à	ˆÔ	Ð<Ñ	=Ô	=€ð4ð 4ð 4ð 4ð 4ñ 4ô 4ð 4ð> 3Ð2Ñ4Ô4Ð Ð Ð r   