Spaces:
Sleeping
Sleeping
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( | |
""" | |
<div style="display: flex; justify-content: center; align-items: center; text-align: center;"> | |
<a href="https://github.com/xxx" style="margin-right: 20px; text-decoration: none; display: flex; align-items: center;"> | |
</a> | |
<div> | |
<h1 >Place the title of the paper here</h1> | |
<h5 style="margin: 0;">If you like our project, please give us a star ✨ on Github for the latest update.</h5> | |
<div style="display: flex; justify-content: center; align-items: center; text-align: center;> | |
<a href="https://arxiv.org/abs/xx.xx"><img src="https://img.shields.io/badge/Arxiv-xx.xx-red"></a> | |
<a href='https://huggingface.co/spaces/cheesexuebao/murphy'><img src='https://img.shields.io/badge/Project_Page-Murphy/xxBert' alt='Project Page'></a> | |
<a href='https://github.com'><img src='https://img.shields.io/badge/Github-Code-blue'></a> | |
</div> | |
</div> | |
</div> | |
""") | |
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() |