o
    Lg#                     @   s8   d dl Z d dlZd dlZeeZdd ZdddZdS )    Nc              
   C   sP   z||||d}| |iW S  t y' } ztd|  dt|  |d}~ww )aZ  
    Train models for a specific client using their data.

    Parameters:
    client_id (str): The client identifier
    courses_data (list): List of course data objects
    users_data (dict): Dictionary of user data objects
    competency_data (list): List of competency data objects
    top_rated_courses (list): List of top-rated courses
    )courses_data
users_datacompetency_datatop_rated_coursesz Error training model for client z: N)	Exceptionloggingerrorstr)	client_idr   r   r   r   trained_modele r   Y/var/www/eduai.edurigo.com/doc_train/edurigo_ai/get_recommendations/prod/model_trainer.pytrain_model   s   
r   trained_modelsc              
   C   s   z=|   D ]5\}}tj|d| d}tjtj|dd t|d}t|| W d    n1 s5w   Y  qW d S  t	yP } zt
d |d }~ww )Nmodel_z.pklT)exist_okwbzFailed to save model)itemsospathjoinmakedirsdirnameopenpickledumpr   logger	exception)r   	directoryr
   r   
model_pathfiler   r   r   r   
save_model"   s   
r"   )r   )r   r   r   	getLogger__name__r   r   r"   r   r   r   r   <module>   s    
