
    ڵ1i                          G d  d      Z y)c                       e Zd Zd Zd Zy)ExplainServicec           	      t   |D ci c]  }|d   |d    }}g }|D ]  }||d      }|j                  dg       }| j                  |      }	|D 
cg c]	  }
|
|	v s|
 }}
|	D 
cg c]	  }
|
|vs|
 }}
|j                  |d   |j                  d      t        |dz  d      ||d        |S c c}w c c}
w c c}
w )N	resume_idfinal_scoreskillsnamed      )r   r   match_score	strengths
weaknesses)getextract_required_skillsappendround)selfresumesrankedjob_descriptionrrank_mapresultsscorer   requiredsr   r   s                4/var/www/html/drjob-dev/drjob-ai/services/explain.pyadd_explanationszExplainService.add_explanations   s    >DEAkNAm$44EE 	AQ{^,E UU8R(F33ODH$*<qa8m<I<%-A&!AJANN!";EE&M#(a#8!*",	( / F =As   B+	B0B0!	B5+B5c                 d    dD cg c]   }|j                         j                         " c}S c c}w )N)pythonjavaawsdocker)striplower)r   jdr   s      r   r   z&ExplainService.extract_required_skills   s#    +NOa	!OOOs   %-N)__name__
__module____qualname__r   r        r   r   r      s    4Pr*   r   N)r   r)   r*   r   <module>r+      s   P Pr*   