Spaces:
Sleeping
Sleeping
import warnings | |
warnings.filterwarnings("ignore") | |
import os, json | |
import gradio as gr | |
import pandas as pd | |
from backend import Backend | |
QUESTIONS = [ | |
"Animal Type", | |
"Exposure Age", | |
"Behavior Test", | |
"Intervention 1", | |
"Intervention 2", | |
"Genetic Chain", | |
"Issues or Challenge Resolved", | |
"Innovations in Methodology", | |
"Impact of Findings", | |
"limitations", | |
"Potential Applications", | |
] | |
with gr.Blocks(theme="dark") as demo: | |
backend = Backend() | |
with gr.Row(): | |
gr.Markdown(f'<center> <h1> <b> DAN_AI </b> </h1> </center>\ | |
<center> <h4> Please follow the Instruction <a href="https://huggingface.co/spaces/oliverwang15/DAN_AI/blob/main/README.md">HERE</a> </h4> </center>') | |
with gr.Row(): | |
with gr.Row(): | |
# Update | |
with gr.Group(): | |
gr.Markdown(f'<center><h1>Input</h1></center>') | |
gr.Markdown(f'<center><p>Please First Upload the File</p></center>') | |
with gr.Group(): | |
gr.Markdown(f'<center><h2>Request Online</h2></center>') | |
openai_key = gr.Textbox( | |
label='Enter your OpenAI API key here', | |
type='password') | |
model_selection = gr.Radio(choices = ["ChatGPT", "GPT4"], label="Model Selection", info="Please select the model you want to use") | |
file = gr.File(label='Upload your .txt or .pdf file here', file_types=['.txt', '.pdf'], file_count = 'multiple') | |
btn_submit_txt_online = gr.Button(value='Submit') | |
# btn_submit_txt.style(full_width=True) | |
with gr.Group(): | |
gr.Markdown(f'<center><h2>Or Load Offline</h2></center>') | |
questions = gr.CheckboxGroup(choices = QUESTIONS, value = QUESTIONS, label="Questions", info="Please select the question you want to ask") | |
answer_type = gr.Radio(choices = ["ChatGPT_txt", "GPT4_txt", 'New_GPT_4_pdf', 'Exp_training', 'Exp_Group_A', 'Exp_Group_B'], label="Answer_type", info="Please select the type of answer you want to show") | |
btn_submit_txt_offline = gr.Button(value='Show Answers') | |
# btn_submit_txt.style(full_width=True) | |
# Output | |
with gr.Group(): | |
gr.Markdown(f'<center><h1>Output</h1></center>') | |
gr.Markdown(f'<center><p>The answer to your question is :</p></center>') | |
filename_box = gr.Textbox(label = "File") | |
question_box = gr.Textbox(label='Question') | |
answer_box = gr.Textbox(label='Answer') | |
reference_box = gr.Textbox(label='Reference') | |
with gr.Group(): | |
gr.Markdown("<center><h4>Please select different questions</h4></center>") | |
with gr.Row(): | |
btn_last_question = gr.Button(value='Last Question') | |
btn_next_question = gr.Button(value='Next Question') | |
with gr.Group(): | |
gr.Markdown("<center><h4>Please select different passages</h4></center>") | |
with gr.Row(): | |
btn_last_passage = gr.Button(value='Last Passage') | |
btn_next_passage = gr.Button(value='Next Passage') | |
# Correctness | |
with gr.Group(): | |
gr.Markdown(f'<center><h1>Correct the Result</h1></center>') | |
gr.Markdown(f'<center><p>Please Correct the Results</p></center>') | |
with gr.Row(): | |
save_results = gr.Textbox(placeholder = "Still need to click the button above to save the results", label = 'Save Results') | |
with gr.Group(): | |
gr.Markdown(f'<center><p>Please Choose: </p></center>') | |
answer_correct = gr.Radio(choices = ["Correct", "Incorrect"], label='Is the Generated Answer Correct?', info="Pease select whether the generated text is correct") | |
correct_answer = gr.Textbox(placeholder = "Please judge on the generated answer", label = 'Correct Answer', interactive = True) | |
reference_correct = gr.Radio(choices = ["Correct", "Incorrect"], label="Is the Reference Correct?", info="Pease select whether the reference is correct") | |
correct_reference = gr.Textbox(placeholder = "Please judge on the generated answer", label = 'Correct Reference', interactive = True) | |
btn_submit_correctness = gr.Button(value='Submit Correctness') | |
# btn_submit_correctness.style(full_width=True) | |
# Download | |
with gr.Group(): | |
gr.Markdown(f'<center><h1>Download</h1></center>') | |
gr.Markdown(f'<center><p>Download the original LLM answers and corrected LLM answers</p></center>') | |
answer_file = gr.File(label='Download original LLM answers', file_types=['.xlsx']) | |
btn_download_answer = gr.Button(value='Download original LLM answers') | |
# btn_download_answer.style(full_width=True) | |
corrected_file = gr.File(label='Download corrected data', file_types=['.xlsx']) | |
btn_download_corrected = gr.Button(value='Download corrected LLM answers') | |
# btn_download_corrected.style(full_width=True) | |
with gr.Row(): | |
highlighted_text = gr.HTML(label="Highlighted Text") | |
# reset = gr.Button(value='Reset') | |
# reset.style(full_width=True) | |
# Answer change | |
answer_correct.input( | |
backend.change_correct_answer, | |
inputs = [answer_correct], | |
outputs = [correct_answer], | |
) | |
reference_correct.input( | |
backend.change_correct_reference, | |
inputs = [reference_correct], | |
outputs = [correct_reference], | |
) | |
# Submit button | |
btn_submit_txt_online.click( | |
backend.process_file_online, | |
inputs=[file, questions, openai_key, model_selection], | |
outputs=[filename_box, question_box, answer_box, reference_box, highlighted_text, correct_answer, correct_reference], | |
) | |
btn_submit_txt_offline.click( | |
backend.process_file_offline, | |
inputs=[questions, answer_type], | |
outputs=[filename_box, question_box, answer_box, reference_box, highlighted_text, correct_answer, correct_reference], | |
) | |
btn_submit_correctness.click( # TODO | |
backend.process_results, | |
inputs=[answer_correct, correct_answer, reference_correct, correct_reference], | |
outputs=[save_results], | |
) | |
# Switch question button | |
btn_last_question.click( | |
backend.process_last, | |
outputs=[filename_box, question_box, answer_box, reference_box, highlighted_text, correct_answer, correct_reference, save_results, answer_correct, reference_correct], | |
) | |
btn_next_question.click( | |
backend.process_next, | |
outputs=[filename_box, question_box, answer_box, reference_box, highlighted_text, correct_answer, correct_reference, save_results, answer_correct, reference_correct], | |
) | |
# Switch passwage button | |
btn_last_passage.click( | |
backend.switch_last_passage, | |
outputs=[filename_box, question_box, answer_box, reference_box, highlighted_text, correct_answer, correct_reference, save_results, answer_correct, reference_correct], | |
) | |
btn_next_passage.click( | |
backend.switch_next_passage, | |
outputs=[filename_box, question_box, answer_box, reference_box, highlighted_text, correct_answer, correct_reference, save_results, answer_correct, reference_correct], | |
) | |
# Download button | |
btn_download_answer.click( | |
backend.download_answer, | |
outputs=[answer_file], | |
) | |
btn_download_corrected.click( | |
backend.download_corrected, | |
outputs=[corrected_file], | |
) | |
demo.queue() | |
demo.launch(show_error=True) |