File size: 2,482 Bytes
3f6f474 cf575f8 d654474 cf575f8 d654474 3f6f474 cf575f8 d654474 b49f004 d654474 b49f004 d654474 cf575f8 d654474 cf575f8 3f6f474 d654474 3f6f474 d654474 cf575f8 3f6f474 d654474 cf575f8 3f6f474 cf575f8 b49f004 d654474 3f6f474 cf575f8 d654474 b49f004 d654474 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 98 99 100 101 |
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
instructions = 'Please upload a file or paste the text below. '
task_name_dropdown = gr.components.Dropdown(
label='Task Name',
value='Originality',
choices=['Originality', 'Flexibility']
)
model_name_input = gr.components.Textbox(
value='paraphrase-multilingual-MiniLM-L12-v2',
lines=1,
type='text'
)
model_name_dropdown = gr.components.Dropdown(
label='Model Name',
value=list_models[0],
choices=list_models
)
text_input = gr.components.Textbox(
value='id,prompt,response\n',
lines=10,
type='text'
)
text_output = gr.components.Textbox(
label='Output',
type='text'
)
dataframe_output = gr.components.Dataframe(
label='DataFrame'
)
description = open('description.txt', 'r').read()
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'],
outputs=[text_output, dataframe_output, file_output],
description=description
)
app.launch()
|