import gradio as gr from fastai.learner import load_learner import pandas as pd import numpy as np learn = load_learner('model.pkl') dados = pd.read_csv('valid.csv') ids = dados['user'].unique() ids_list = list(map(str, ids.tolist())) ratings = pd.read_csv('ratings.csv') def top5(user): user = int(user) items = pd.Series(learn.dls.classes['title']).unique() clas_items = ratings.loc[(ratings['user'] == user) & (ratings['rating'] > 0), 'title'] no_clas_items = np.setdiff1d(items, clas_items) df = pd.DataFrame({'user': [user]*len(no_clas_items), 'title': no_clas_items}) preds,_ = learn.get_preds(dl=learn.dls.test_dl(df)) df['prediction'] = preds.numpy() top_5 = df.nlargest(5, 'prediction') return '\n'.join(top_5['title'].tolist()) iface = gr.Interface( fn=top5, inputs=gr.Dropdown(choices=id_list), outputs="text", title="Books Recommendation", description="This model is responsible for a recommendation system involving books and their ratings.", ) iface.launch(share=True)