Spaces:
Running
Running
import gradio as gr | |
import json | |
# Lista para armazenar os dados | |
data = [] | |
# Função para adicionar contextos, perguntas e respostas | |
def add_entry(context, question, answer, answer_start, entry_id): | |
global data | |
entry = { | |
"context": context, | |
"qas":[ | |
{ | |
"id": entry_id, | |
"question": question, | |
"answers": [ | |
{ | |
"text": answer, | |
"answer_start": answer_start | |
} | |
] | |
} | |
] | |
} | |
data.append(entry) | |
return "Entry added!" | |
# Função para salvar os dados em um arquivo JSON e retornar o caminho do arquivo | |
def save_to_json(file_name): | |
global data | |
file_path = "squad_dataset.json" | |
with open(file_path, "w", encoding='utf-8') as f: | |
json.dump(data, f, ensure_ascii=False, indent=4) | |
return file_path | |
# Interface Gradio | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
title = gr.Textbox(label="Title") | |
context = gr.Textbox(lines=5, label="Context") | |
question = gr.Textbox(lines=2, label="Question") | |
answer = gr.Textbox(lines=2, label="Answer") | |
answer_start = gr.Number(label="Answer Start") | |
entry_id = gr.Textbox(label="ID") | |
add_button = gr.Button("Add Entry") | |
with gr.Row(): | |
file_name = gr.Textbox(label="File Name", value="squad_dataset") | |
save_button = gr.Button("Save to JSON") | |
output = gr.Textbox(label="Output") | |
download_link = gr.File(label="Download JSON", interactive=False) | |
add_button.click(fn=add_entry, inputs=[title, context, question, answer, answer_start, entry_id], outputs=output) | |
save_button.click(fn=save_to_json, inputs=file_name, outputs=download_link) | |
demo.launch() |