import gradio as gr from fastai.learner import load_learner import pandas as pd import numpy as np #Modelo learn = load_learner('modelo.pkl') #Ids para usar id = pd.read_csv('valid.csv') id = id.sort_values('user', ascending=True) id = id['user'].unique() id_list = list(map(str, id.tolist())) #Dados originais blog = pd.read_csv('blogs.csv') def preds(user): user = int(user) itens = pd.Series(learn.dls.classes['title']).unique() classifications = blog.loc[(blog['user'] == user) & (blog['rating'] > 0), 'title'] no_classifications = np.setdiff1d(itens, classifications) df = pd.DataFrame({'user': [user] * len(no_classifications), 'title': no_classifications}) 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=preds, inputs=gr.Dropdown(choices=id_list), outputs="text", title="Recomendador de Blogs", description="Esse modelo é capaz de realizar de Recomendar Blogs através de um Id de usuário", ) iface.launch(share=True)