murphy / app.py
cheesexuebao's picture
Gray Testing
8518918
raw
history blame
5.17 kB
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()