import gradio as gr import pandas as pd import matplotlib.pyplot as plt from Prediction import * import os from datetime import datetime examples = [] if os.path.exists("assets/examples.txt"): with open("assets/examples.txt", "r", encoding="utf8") as file: for sentence in file: sentence = sentence.strip() examples.append(sentence) else: examples = [ "Games of the imagination teach us actions have consequences in a realm that can be reset.", "But New Jersey farmers are retiring and all over the state, development continues to push out dwindling farmland.", "He also is the Head Designer of The Design Trust so-to-speak, besides his regular job ..." ] device = torch.device('cpu') manager = model_factory("./models", device) def single_sentence(sentence, model_select): df = [] for model_name in model_select: dct = manager[model_name] model, tokenizer = dct['model'], dct['tokenizer'] predictions = predict_single(sentence, tokenizer, model, device) df.append([model_name] + predictions) return df def csv_process(csv_file, model_select, attr="content"): current_time = datetime.now() formatted_time = current_time.strftime("%Y_%m_%d_%H_%M_%S") df = pd.read_csv(csv_file.name) outputs = [] for model_name in model_select: data = df.copy(deep=True) dct = manager[model_name] model, tokenizer = dct['model'], dct['tokenizer'] predictions = predict_csv(data, attr, tokenizer, model, device) output_path = f"output/prediction_{model_name}_{formatted_time}.csv" predictions.to_csv(output_path) outputs.append(output_path) return outputs my_theme = gr.Theme.from_hub("JohnSmith9982/small_and_pretty") with gr.Blocks(theme=my_theme, title='XXX') as demo: gr.HTML( """

Place the title of the paper here

If you like our project, please give us a star ✨ on Github for the latest update.
Project Page
""") with gr.Tab("Single Sentence"): with gr.Row(): tbox_input = gr.Textbox(label="Input", info="Please input a sentence here:") model_select = gr.CheckboxGroup(manager.keys(), label="Models:", info="Selecting different model variants to obtain aggregated predictions.") tab_output = gr.DataFrame(label='Probability Predictions:', headers=["model"] + LABEL_COLUMNS, datatype=["str"] * (len(LABEL_COLUMNS)+1), interactive=False, wrap=True) with gr.Row(): button_ss = gr.Button("Submit", variant="primary") button_ss.click(fn=single_sentence, inputs=[tbox_input, model_select], outputs=[tab_output]) gr.ClearButton([tbox_input, tab_output]) gr.Markdown("## Examples") gr.Examples( examples=examples, inputs=tbox_input, examples_per_page=5 ) with gr.Tab("Csv File"): with gr.Row(): csv_input = gr.File(label="CSV File:", file_types=['.csv'], file_count="single" ) csv_output = gr.File(label="Predictions:") model_select = gr.CheckboxGroup(manager.keys(), label="Models:", info="Selecting different model variants to obtain aggregated predictions.") with gr.Row(): button = gr.Button("Submit", variant="primary") button.click(fn=csv_process, inputs=[csv_input, model_select], outputs=[csv_output]) gr.ClearButton([csv_input, csv_output]) gr.Markdown("## Examples") gr.Examples( examples=["assets/csv_examples.csv",], inputs=csv_input ) with gr.Tab("Readme"): gr.Markdown( """ # Paper Name # Authors + First author + Corresponding author # Detailed Information ... """ ) demo.launch()