ssk / app.py
ssk3232's picture
Update app.py
c55a023 verified
import oneclass
import Cosine_distance
import gradio as gr
import pandas as pd
from io import StringIO
def predict_and_download(classifier_oneclass_or_Cosine_distance ,positive_csv_file, unlabelled_csv_file, n,Hyperparameter_nu):
if classifier_oneclass_or_Cosine_distance == "oneclass" :
selected_paper_info = oneclass.select_top_n_papers(n, positive_csv_file, unlabelled_csv_file,Hyperparameter_nu)
else :
selected_paper_info = Cosine_distance.recommend_papers(positive_csv_file, positive_csv_file, n)
# Create a StringIO object to store CSV data
csv_buffer = StringIO()
# Write DataFrame to the StringIO buffer as CSV
selected_paper_info.to_csv(csv_buffer, index=False)
# Get the CSV data from the buffer
csv_content = csv_buffer.getvalue()
# Return selected_paper_info and CSV content
return selected_paper_info, csv_buffer
# Create the interface
iface = gr.Interface(
fn=predict_and_download,
inputs=["text","file", "file", "number"],
outputs=[gr.DataFrame(label="Recommended Papers"), gr.DownloadButton(label="Download CSV")],
title="Personalized Arxiv Feed",
description="Enter text and upload CSV files for labelled and unlabelled data.",
allow_flagging='never' # Disable flagging feature
)
iface.launch()