| from typing import Optional | |
| import gradio as gr | |
| import pandas as pd | |
| from utils.similarity import batch_cos_sim | |
| def read_data(filepath: str) -> Optional[pd.DataFrame]: | |
| if not filepath: | |
| return None | |
| 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(model_name: str, | |
| prompt: str, | |
| file=None, | |
| ): | |
| df = read_data(file.name) | |
| df = batch_cos_sim(df, model_name) | |
| path = 'output.csv' | |
| df.to_csv(path, index=False, encoding='utf-8-sig') | |
| return df.to_markdown(), path | |
| model_name_input = gr.components.Textbox( | |
| value='paraphrase-multilingual-MiniLM-L12-v2', | |
| lines=1, | |
| type="text" | |
| ) | |
| prompt_input = gr.components.Textbox( | |
| value='prompt,response', | |
| lines=10, | |
| type="text" | |
| ) | |
| file_output = gr.components.File(label="Output File", | |
| file_count="single", | |
| file_types=["", ".", ".csv", ".xls", ".xlsx"]) | |
| app = gr.Interface( | |
| fn=process, | |
| inputs=[model_name_input, prompt_input, "file" ], | |
| outputs=["text", file_output] | |
| ) | |
| app.launch() | |