§
    t«j+(  ã                  ó`   — d dl mZ d dlZd dlmZ  ej        d¦  «        Z G d„ d¦  «        ZdS )é    )ÚannotationsN)ÚAnyzdscons.model_benchmark.routingc                  ó*   — e Zd ZdZd	d„Zd
d„Zd
d„ZdS )ÚBenchmarkRoutingMixinzOPersona-to-Model optimization, recommendation generation, and stealth fallback.Úreturnúlist[dict[str, Any]]c                ó4  — |                       ¦   «         }d„ |D ¦   «         }dddddddddd	d
dœdddddddddd	d
dœddddddddddd
dœddddddddddd
dœddddddddddddœd d!d"ddddd#ddddœd$d%d&ddddd'ddddœd(d)d*ddddd+ddd,dœd-d.d/ddddd0dd	d
dœg	}|S )1ui   Tá»± Ä‘á»™ng phÃ¢n tÃ­ch vÃ  ghÃ©p mÃ´ hÃ¬nh tá»‘i Æ°u nháº¥t cho tá»«ng nhÃ¢n viÃªn trong 9 AI Personas.c                ó    — i | ]}|d          |“ŒS )Ú
model_name© )Ú.0Úms     úJC:\Projects\DSCons\app\modules\core\application\model_benchmark\routing.pyú
<dictcomp>zBBenchmarkRoutingMixin.generate_recommendations.<locals>.<dictcomp>   s   € Ð@Ð@Ð@¨A�Q�|”_ aÐ@Ð@Ð@ó    Úthaou   Tháº£ou5   ChuyÃªn viÃªn PhÃ¡p cháº¿, Há»£p Ä‘á»“ng FIDIC & QLCLúgemini-3.1-proÚantigravity_sdkum   Sá»­ dá»¥ng Gemini 3.1 Pro (Antigravity SDK) cho tÃ¡c vá»¥ logic phá»©c táº¡p, luáº­t phÃ¡p xÃ¢y dá»±ng 2025.g     àX@g     €F@ÚHIGH)Ú
agent_codeÚ
agent_nameÚ
role_titleÚcurrent_modelÚcurrent_providerÚrecommended_modelÚrecommended_providerÚmatch_reasonÚquality_scoreÚtpsÚpriorityÚquynhu   Quá»³nhu;   Ká»¹ sÆ° QS, BÃ³c tÃ¡ch Dá»± toÃ¡n BOQ & Ä�á»‹nh má»©c 2026uF   Kháº£ nÄƒng xá»­ lÃ½ báº£ng tÃ­nh BOQ, logic toÃ¡n há»�c phá»©c táº¡p.ÚnamÚNamu>   Káº¿ toÃ¡n trÆ°á»Ÿng & Quáº£n trá»‹ TÃ i chÃ­nh / DÃ²ng tiá»�núgemini-3.8-flashu”   Tá»‘c Ä‘á»™ pháº£n há»“i cá»±c nhanh (145 TPS), xá»­ lÃ½ Ä‘á»‘i soÃ¡t nhiá»�u luá»“ng, suy luáº­n tÃ i chÃ­nh vÆ°á»£t trá»™i vá»›i Gemini 3.8 Flash.g     €X@g      b@Úphucu   PhÃºcuH   Chá»‰ huy trÆ°á»Ÿng CÃ´ng trÆ°á»�ng & Ä�iá»�u phá»‘i Ä�á»™i xe / Ca mÃ¡yu†   Tá»‘c Ä‘á»™ pháº£n há»“i cá»±c nhanh (145 TPS), xá»­ lÃ½ Ä‘iá»�u phá»‘i Ä‘á»™i xe/ca mÃ¡y theo thá»�i gian thá»±c qua Antigravity SDK.Úthuyu   Thá»§yu3   Trá»£ lÃ½ Ban GiÃ¡m Ä�á»‘c & ThÆ° kÃ½ Ä�iá»�u hÃ nhu™   Tá»‘c Ä‘á»™ xá»­ lÃ½ ngÃ´n ngá»¯ cao, pháº£n há»“i nhanh vÃ  tá»•ng há»£p bÃ¡o cÃ¡o Ä‘iá»�u hÃ nh chÃ­nh xÃ¡c vá»›i Gemini 3.8 Flash qua Antigravity SDK.ÚMEDIUMÚminhÚMinhuA   Ä�iá»�u phá»‘i Tá»•ng / Ä�áº§u má»‘i LiÃªn phÃ²ng ban / PhÃ¡p lÃ½u”   Kháº£ nÄƒng Ä‘á»�c context rá»™ng vÃ  tá»•ng há»£p thÃ´ng tin, phÃ¢n Ä‘á»‹nh 4 trá»¥ cá»™t nghiá»‡p vá»¥ vá»›i Gemini 3.8 Flash qua Antigravity SDK.Úhungu   HÃ¹ngu7   GiÃ¡m sÃ¡t Ká»¹ thuáº­t Hiá»‡n trÆ°á»�ng & An toÃ n HSEu–   Xá»­ lÃ½ Ä‘a phÆ°Æ¡ng thá»©c (Vision/Text) hiá»‡n trÆ°á»�ng, bÃ¡o cÃ¡o an toÃ n HSE vÃ  ca mÃ¡y tá»©c thÃ¬ vá»›i Gemini 3.8 Flash qua Antigravity SDK.ÚlanÚLanu/   ThÆ° kÃ½ Tá»•ng há»£p & NhÃ¢n sá»± Cháº¥m cÃ´nguƒ   TÃ¡c vá»¥ hÃ nh chÃ­nh, cháº¥m cÃ´ng, chÄƒm sÃ³c khÃ¡ch hÃ ng CÄ�T vá»›i Ä‘á»™ chÃ­nh xÃ¡c cao vÃ  siÃªu tá»‘c qua Antigravity SDK.ÚLOWÚtungu   TÃ¹ngu@   GiÃ¡m Ä‘á»‘c Dá»± Ã¡n & Quáº£n trá»‹ Rá»§i ro / Tiáº¿n Ä‘á»™ CPMu�   Logic phá»©c táº¡p Ä‘a luá»“ng cho Risk & CPM, kiá»ƒm toÃ¡n ná»™i bá»™ vÃ  phÃ¢n xá»­ tranh luáº­n BoQ vá»›i Gemini 3.1 Pro qua Antigravity SDK.)Úget_benchmark_results)ÚselfÚbenchmark_dataÚ	model_mapÚrecommendationss       r   Úgenerate_recommendationsz.BenchmarkRoutingMixin.generate_recommendations   så  € à×3Ò3Ñ5Ô5ˆØ@Ð@°Ð@Ñ@Ô@ˆ	ð
 %Ø&ØUØ!1Ø$5Ø%5Ø(9ð !PØ!%ØØ"ðð ð &Ø'Ø[Ø!1Ø$5Ø%5Ø(9Ø hØ!%ØØ"ðð ð $Ø#Ø^Ø!3Ø$5Ø%7Ø(9ð !wØ!%ØØ"ðð ð %Ø%ØhØ!3Ø$5Ø%7Ø(9ð !iØ!%ØØ"ðð ð %Ø&ØSØ!3Ø$5Ø%7Ø(9ð !|Ø!%ØØ$ðð ð %Ø$ØaØ!3Ø$5Ø%7Ø(9ð !wØ!%ØØ$ðð ð %Ø%ØWØ!3Ø$5Ø%7Ø(9ð !yØ!%ØØ$ðð ð $Ø#ØOØ!3Ø$5Ø%7Ø(9ð !fØ!%ØØ!ðð ð %Ø%Ø`Ø!1Ø$5Ø%5Ø(9ð !sØ!%ØØ"ðð ðSv
ˆðn Ðr   údict[str, Any]c           
     ób  — |                       ¦   «         }d}g }|D ]´}|d         }|d         }|d         }	 | j                             |||dd¬¦  «         |dz  }|                     ||d	         ||d
dœ¦  «         Œa# t          $ rG}t
                               d||¦  «         |                     ||d	         ||ddœ¦  «         Y d}~Œ­d}~ww xY wdD ]5\  }	}
	 | j                             |	|
ddd¬¦  «         Œ&# t          $ r Y Œ2w xY wd|t          |¦  «        d|› dt          |¦  «        › d�|dœS )uc   1-Click: Ã�p dá»¥ng toÃ n bá»™ cáº¥u hÃ¬nh tá»‘i Æ°u cho 9 nhÃ¢n sá»± AI vÃ o cÆ¡ sá»Ÿ dá»¯ liá»‡u.r   r   r   r   gš™™™™™É?i   )r   r   ÚproviderÚtemperatureÚ
max_tokensé   r   ÚSUCCESS)r   r   r   r7   Ústatusu.   KhÃ´ng thá»ƒ cáº­p nháº­t agent %s vÃ o DB: %sÚFALLBACK_SAVEDN))Úlamr   )Útuanr$   r   Tu7   Ä�Ã£ Ã¡p dá»¥ng thÃ nh cÃ´ng cáº¥u hÃ¬nh tá»‘i Æ°u cho ú/u    nhÃ¢n sá»± AI.)ÚsuccessÚapplied_countÚtotal_agentsÚmessageÚdetails)r4   Úpostgres_clientÚupdate_ai_agent_modelÚappendÚ	ExceptionÚloggerÚwarningÚlen)r0   r3   rB   Úupdated_detailsÚrecÚcodeÚmodelr7   ÚexcÚext_codeÚ	ext_models              r   Úapply_optimal_recommendationsz3BenchmarkRoutingMixin.apply_optimal_recommendations‹   s  € à×7Ò7Ñ9Ô9ˆØˆØ02ˆà"ð !	ð !	ˆCØ�|Ô$ˆDØÐ+Ô,ˆEØÐ1Ô2ˆHðØÔ$×:Ò:Ø#Ø$Ø%Ø #Ø#ð ;ñ ô ð ð  Ñ"�Ø×&Ò&à&*Ø&)¨,Ô&7Ø&+Ø$,Ø"+ðð ñô ð ð øõ ð 
ð 
ð 
Ý—’ÐOÐQUÐWZÑ[Ô[Ð[Ø×&Ò&à&*Ø&)¨,Ô&7Ø&+Ø$,Ø"2ðð ñô ð ð ð ð ð ð øøøøð
øøøð $]ð 
	ð 
	ÑˆH�ið	ØÔ$×:Ò:Ø'Ø(Ø.Ø #Ø#ð ;ñ ô ð ð øõ ð ð ð Ø�ðøøøð Ø*Ý Ñ0Ô0ð GÐQ^ð  Gð  GÕadÐetÑauÔauð  Gð  Gð  GØ&ð
ð 
ð 	
s*   ¶AA<Á<
CÂ=CÃCÃC8Ã8
DÄDc                ó~   — | j                              ¦   «         }dt          |¦  «        dt          |¦  «        › d�|dœS )u~   Kiá»ƒm tra vÃ  tá»± Ä‘á»™ng chuyá»ƒn Ä‘á»•i toÃ n bá»™ AI Agents dÃ¹ng mÃ´ hÃ¬nh Stealth Ä‘Ã£ háº¿t háº¡n vá»� Fallback model.Tu   Ä�Ã£ quÃ©t vÃ  chuyá»ƒn Ä‘á»•i u<    mÃ´ hÃ¬nh Stealth háº¿t háº¡n vá»� Fallback model an toÃ n.)rA   Úexpired_countrD   Úreverted_agents)rF   Ú)check_and_fallback_expired_stealth_modelsrL   )r0   Úreverteds     r   rX   z?BenchmarkRoutingMixin.check_and_fallback_expired_stealth_modelsÈ   sT   € àÔ'×QÒQÑSÔSˆàÝ  ™]œ]ð E½¸X¹¼ð  Eð  Eð  EØ'ð	
ð 
ð 	
r   N)r   r   )r   r5   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   rT   rX   r   r   r   r   r   	   s\   € € € € € ØYÐYð}ð }ð }ð }ð~;
ð ;
ð ;
ð ;
ðz
ð 
ð 
ð 
ð 
ð 
r   r   )Ú
__future__r   ÚloggingÚtypingr   Ú	getLoggerrJ   r   r   r   r   ú<module>rb      s�   ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à	ˆÔ	Ð;Ñ	<Ô	<€ðG
ð G
ð G
ð G
ð G
ñ G
ô G
ð G
ð G
ð G
r   