File size: 2,490 Bytes
3f6f474 cf575f8 d654474 cf575f8 d654474 3f6f474 cf575f8 d654474 b49f004 d654474 b49f004 d654474 cf575f8 0e97d35 d654474 cf575f8 d654474 3f6f474 d654474 cf575f8 3f6f474 0e97d35 cf575f8 3f6f474 0e97d35 3f6f474 cf575f8 b49f004 3f6f474 cf575f8 0e97d35 b49f004 0e97d35 cf575f8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
from io import StringIO
from typing import Optional
import gradio as gr
import pandas as pd
from utils import pipeline
from utils.models import list_models
def read_data(filepath: str) -> Optional[pd.DataFrame]:
if filepath.endswith('.xlsx'):
df = pd.read_csv(filepath)
elif filepath.endswith('.csv'):
df = pd.read_csv(filepath)
else:
raise Exception('File type not supported')
return df
def process(task_name: str,
model_name: str,
text: str,
file=None,
):
try:
# load file
if file:
df = read_data(file.name)
elif text:
string_io = StringIO(text)
df = pd.read_csv(string_io)
assert len(df) >= 1, 'No input data'
else:
raise Exception('No input data')
# process
if task_name == 'Originality':
df = pipeline.p0_originality(df, model_name)
elif task_name == 'Flexibility':
df = pipeline.p1_flexibility(df, model_name)
else:
raise Exception('Task not supported')
# save
path = 'output.csv'
df.to_csv(path, index=False, encoding='utf-8-sig')
return None, df.iloc[:10], path
except Exception as e:
return {'Error': e}, None, None
# input
task_name_dropdown = gr.components.Dropdown(
label='Task Name',
value='Originality',
choices=['Originality', 'Flexibility']
)
model_name_dropdown = gr.components.Dropdown(
label='Model Name',
value=list_models[0],
choices=list_models
)
text_input = gr.components.Textbox(
value=open('data/example.csv', 'r').read(),
lines=10,
type='text'
)
# output
file_input = gr.components.File(label='Input File',
file_count='single',
file_types=['', '.', '.csv', '.xls', '.xlsx'])
text_output = gr.components.Textbox(
label='Output',
type='text'
)
dataframe_output = gr.components.Dataframe(
label='DataFrame'
)
file_output = gr.components.File(label='Output File',
file_count='single',
file_types=['', '.', '.csv', '.xls', '.xlsx'])
app = gr.Interface(
fn=process,
inputs=[task_name_dropdown, model_name_dropdown, text_input, file_input],
outputs=[text_output, dataframe_output, file_output],
description=open('data/description.txt', 'r').read()
)
app.launch()
|