o
    e6                     @   s   d d Z dS )c              
      s2  zt | d }t|| d }t|| d }dd || d D t }| D ]"}dd |d D   fdd	 D }|rL||d
 |d f q*t }	| D ]}|d
 }
|
|vre|
|vre|	|
 qRg }|D ]\}
}||
dd| d qjt|	}|dkrd| }|	D ]}
||
|dd q| D ]G}|d
 }
|
|vr|
|vr|
|vrd}d|v rd|d v r|d7 }d|v rd|d v r|d7 }d|v rd|d v r|d7 }||
|dd q|jdd dd t|dd dd }|D ]
}|d  |  < q|d d W S  ty } zt	d|  d }~ww ) N    assignedCoursescompletedCoursesc                 S      i | ]}|d  t |d qS skill_id
skill_typeint.0skill r   S/var/www/chatrigo.edurigo1.com/get_recommendations/testing/recommendation_system.py
<dictcomp>       z'get_recommendations.<locals>.<dictcomp>skillsc                 S   r   r   r   r
   r   r   r   r      r   c                    s(   g | ]}  |d  |d kr|qS )r   )get)r   r   course_skillsuser_skillsr   r   
<listcomp>   s   ( z'get_recommendations.<locals>.<listcomp>courseId   zBRecommended for upgrading existing user skills. Skill to improve: )r   scorereasonzGRecommended based on similar courses to assigned and completed courses.g      ?nameLaravelg?short_descriptiong?descriptionzIRecommended based on name, short description, and description similarity.c                 S      | d S Nr   r   xr   r   r   <lambda>7       z%get_recommendations.<locals>.<lambda>T)keyreversec                 S   r   r    r   r!   r   r   r   r#   :   r$   )r%   r   
   zError:)
listkeyssetaddappendlensortmax	Exceptionprint)courses_data	user_datacompetency_datauser_idassigned_coursescompleted_coursessimilar_courses_based_on_skillscourseskills_to_improve+similar_courses_based_on_assigned_completed	course_idrecommendationsr   num_similar_coursesscore_incrementr   	max_scorerecommendationer   r   r   get_recommendations   sn   


rC   N)rC   r   r   r   r   <module>   s    