Ë
    I»jç
  ã                   ó^   — d Z ddlmZ ddlmZmZ ddlmZ dede	e
ef   fd„Z G d„ d	«      Zy
)zHiring-fit prediction service.é    )Ú	JobStatus)ÚHiringFitRequestÚHiringFitResponse)Úgenerate_jsonÚscoreÚreturnc                 ó(   — | dk\  ry| dk\  ry| dk\  ryy)Ng333333ë?)Ú
strong_yesTçffffffæ?)ÚyesTç      à?)ÚmaybeF)ÚnoF© )r   s    ú1/var/www/html/TJ-AI/tj/app/services/hiring_fit.pyÚ_label_and_passr      s#   € Ø�‚}Ø!Ø�‚}ØØ�‚}ØØó    c                   ó   — e Zd Zdedefd„Zy)ÚHiringFitServiceÚpayloadr   c              ƒ   óÎ  ‡K  — d}d‰j                   › d‰j                  › d‰j                  › d‰j                  › d‰j                  › d‰j
                  › dt        ‰j                  «      › �}d	t        fˆfd
„}t        |||¬«      ƒ d {  –—† \  }}}t        |j                  d«      xs d«      }|j                  d«      xs t        |«      d   }	|dk\  }
t        ‰j                  ‰j                   ‰j                  t        j                   |d|› �||	|
t#        |j                  d«      xs g «      t#        |j                  d«      xs g «      |j                  d«      ¬«      S 7 ŒÙ­w)NzpPredict hiring fit. Return JSON: {"hiring_fit_score":0-1,"hiring_fit_label","reasons":[],"risks":[],"next_step"}zCandidate: z
Role: z
JD: z	
Skills: z	
Resume: z
Scorecard: z
Transcript turns: r   c                  óÐ  •— d} ‰j                   r`‰j                   j                  «       D �cg c]$  }t        |t        t        f«      sŒt	        |«      ‘Œ& }}|rt        |«      t        |«      z  } ‰j                  r<‰j                  r0t        ˆfd„‰j                  D «       «      }t        d| d|z  z   «      } t        | «      \  }}t        | d«      |dgdg| dk\  rd	dœS d
dœS c c}w )Ng333333ã?c              3   óx   •K  — | ]1  }|j                  «       ‰j                  j                  «       v sŒ.d –— Œ3 y­w)é   N)ÚlowerÚresume_text)Ú.0Úsr   s     €r   Ú	<genexpr>z:HiringFitService.predict.<locals>.local.<locals>.<genexpr>&   s0   øè ø€ ÐjÑ&= ÀÇÁÃÈg×NaÑNa×NgÑNgÓNiÒAiœ1Ñ&=ùs   ƒ/:³:gffffffî?gš™™™™™©?é   z/Profile partially aligns with role requirementsz1Validate depth with a focused technical follow-upr   ÚadvanceÚhold_for_follow_up)Úhiring_fit_scoreÚhiring_fit_labelÚreasonsÚrisksÚ	next_step)Ú	scorecardÚvaluesÚ
isinstanceÚintÚfloatÚsumÚlenÚrequired_skillsr   Úminr   Úround)ÚbaseÚvÚvalsÚhitsÚlabelÚ_r   s         €r   Úlocalz'HiringFitService.predict.<locals>.local   së   ø€ ØˆDØ× Ò Ø*1×*;Ñ*;×*BÑ*BÔ*DÓdÑ*D QÌ
ÐSTÔWZÔ\aÐVbÕHcœ˜a�Ð*D�ÐdÙÜ˜t›9¤s¨4£yÑ0�DØ×&Ò&¨7×+>Ò+>ÜÓj g×&=Ò&=ÓjÓj�Ü˜4 ¨¨t©Ñ!3Ó4�Ü& tÓ,‰HˆE�1ä$)¨$°£NØ$)ØMÐNØMÐNØ*.°$ª,˜Yñð ð
 =Qñð ùò es   ¬C#ÁC#)ÚsystemÚuserÚlocal_factoryr#   r   r$   r   r   zHiring-fit prediction via r%   r&   r'   )Úcorrelation_idÚcandidate_idÚ
role_titleÚstatusÚstubÚmessager#   r$   Úpassedr%   r&   r'   )r=   r>   Újob_descriptionr/   r   r(   r.   Ú
transcriptÚdictr   r,   Úgetr   r   r<   r   Ú	SUCCEEDEDÚlist)Úselfr   r9   r:   r8   Údatar@   Úproviderr   r6   rB   s    `         r   ÚpredictzHiringFitService.predict   s  øè ø€ ðNð 	ð
 ˜'×.Ñ.Ð/¨x¸×8JÑ8JÐ7Kð LØ×*Ñ*Ð+¨:°g×6MÑ6MÐ5Nð OØ×*Ñ*Ð+¨=¸×9JÑ9JÐ8Kð L!Ü!$ W×%7Ñ%7Ó!8Ð 9ð;ð 	ð	”tõ 	ô$ &3Ø °Eô&
÷  
Ñˆˆd�Hô �d—h‘hÐ1Ó2Ò9°cÓ:ˆØ—‘Ð+Ó,ÒI´ÀÓ0FÀqÑ0IˆØ˜$‘ˆÜ Ø"×1Ñ1Ø ×-Ñ-Ø×)Ñ)Ü×&Ñ&ØØ0°°
Ð;Ø"Ø"ØÜ˜Ÿ™ )Ó,Ò2°Ó3Ü�t—x‘x Ó(Ò.¨BÓ/Ø—h‘h˜{Ó+ô
ð 	
ð 
ús   ƒBE%Â	E#Â
CE%N)Ú__name__Ú
__module__Ú__qualname__r   r   rL   r   r   r   r   r      s   „ ð1
Ð%5ð 1
Ð:Kô 1
r   r   N)Ú__doc__Úapp.schemas.commonr   Úapp.schemas.hiring_fitr   r   Úapp.services.ai_generater   r,   ÚtupleÚstrÚboolr   r   r   r   r   Ú<module>rW      s7   ðÙ $å (ß FÝ 2ð˜5ð  U¨3°¨9Ñ%5ó ÷2
ò 2
r   