Spaces:
Sleeping
Sleeping
Serhan Yılmaz
commited on
Commit
·
bfe5bbd
1
Parent(s):
e65e67f
add manual input
Browse files
app.py
CHANGED
@@ -12,7 +12,7 @@ from transformers import pipeline
|
|
12 |
import asyncio
|
13 |
|
14 |
# Import the required functions from the pipeline file
|
15 |
-
from pipeline_gradio_experimental import
|
16 |
|
17 |
# Set up logging
|
18 |
logging.basicConfig(level=logging.INFO)
|
@@ -85,68 +85,72 @@ Score each question-answer pair on a scale of 0 to 10 based on the quality and r
|
|
85 |
logger.error(f"Error in comparing questions: {e}")
|
86 |
return {"question1_score": 0, "question2_score": 0, "explanation": "Failed to compare questions"}
|
87 |
|
88 |
-
async def
|
89 |
-
|
90 |
-
|
91 |
-
# Yield the original context, question, and answer immediately
|
92 |
-
yield context, original_question, original_answer, gr.update(visible=True), gr.update(visible=False), gr.update(visible=False), gr.update(visible=False)
|
93 |
-
|
94 |
-
# Simulate some processing time
|
95 |
await asyncio.sleep(1)
|
96 |
-
progress(0.3, desc="Generating questions...")
|
97 |
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
await asyncio.sleep(1)
|
102 |
-
progress(0.6, desc="Generating answers...")
|
103 |
|
|
|
104 |
basic_answer = generate_answer(context, basic_question)
|
105 |
enhanced_answer = generate_answer(context, enhanced_question)
|
106 |
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
comparison_result = compare_questions(context, original_answer, basic_question, basic_answer, enhanced_question, enhanced_answer)
|
111 |
|
112 |
winner = "Basic" if comparison_result["question1_score"] > comparison_result["question2_score"] else "Enhanced"
|
113 |
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
gr.update(visible=True, value=f"Question 1 Score: {comparison_result['question1_score']}\n"
|
123 |
-
f"Question 2 Score: {comparison_result['question2_score']}\n"
|
124 |
-
f"Explanation: {comparison_result['explanation']}\n"
|
125 |
-
f"Winner: {winner} Generation")
|
126 |
)
|
127 |
|
128 |
# Create Gradio interface
|
129 |
with gr.Blocks(theme=gr.themes.Default()) as iface:
|
130 |
gr.Markdown("# Question Generation and Comparison")
|
131 |
-
gr.Markdown("
|
132 |
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
random_button.click(
|
144 |
-
fn=
|
145 |
outputs=[
|
146 |
-
|
|
|
147 |
original_question_output,
|
148 |
-
original_answer_output,
|
149 |
-
output_column,
|
150 |
basic_generation_output,
|
151 |
enhanced_generation_output,
|
152 |
comparison_result_output
|
|
|
12 |
import asyncio
|
13 |
|
14 |
# Import the required functions from the pipeline file
|
15 |
+
from pipeline_gradio_experimental import generate_single_question, rank_questions_with_details
|
16 |
|
17 |
# Set up logging
|
18 |
logging.basicConfig(level=logging.INFO)
|
|
|
85 |
logger.error(f"Error in comparing questions: {e}")
|
86 |
return {"question1_score": 0, "question2_score": 0, "explanation": "Failed to compare questions"}
|
87 |
|
88 |
+
async def process_entry(context, answer, progress=gr.Progress()):
|
89 |
+
progress(0, desc="Starting process...")
|
|
|
|
|
|
|
|
|
|
|
90 |
await asyncio.sleep(1)
|
|
|
91 |
|
92 |
+
progress(0.2, desc="Generating questions...")
|
93 |
+
basic_question = generate_single_question(context, answer, [])
|
94 |
+
_, _, enhanced_question = rank_questions_with_details(context, answer)
|
|
|
|
|
95 |
|
96 |
+
progress(0.4, desc="Generating answers...")
|
97 |
basic_answer = generate_answer(context, basic_question)
|
98 |
enhanced_answer = generate_answer(context, enhanced_question)
|
99 |
|
100 |
+
progress(0.6, desc="Comparing questions...")
|
101 |
+
comparison_result = compare_questions(context, answer, basic_question, basic_answer, enhanced_question, enhanced_answer)
|
|
|
|
|
102 |
|
103 |
winner = "Basic" if comparison_result["question1_score"] > comparison_result["question2_score"] else "Enhanced"
|
104 |
|
105 |
+
progress(1.0, desc="Process complete!")
|
106 |
+
return (
|
107 |
+
f"Question: {basic_question}\nAnswer: {basic_answer}",
|
108 |
+
f"Question: {enhanced_question}\nAnswer: {enhanced_answer}",
|
109 |
+
f"Question 1 Score: {comparison_result['question1_score']}\n"
|
110 |
+
f"Question 2 Score: {comparison_result['question2_score']}\n"
|
111 |
+
f"Explanation: {comparison_result['explanation']}\n"
|
112 |
+
f"Winner: {winner} Generation"
|
|
|
|
|
|
|
|
|
113 |
)
|
114 |
|
115 |
# Create Gradio interface
|
116 |
with gr.Blocks(theme=gr.themes.Default()) as iface:
|
117 |
gr.Markdown("# Question Generation and Comparison")
|
118 |
+
gr.Markdown("Enter a context and answer, or click 'Random' to get a random entry from the SQuAD dataset.")
|
119 |
|
120 |
+
with gr.Row():
|
121 |
+
with gr.Column(scale=2):
|
122 |
+
context_input = gr.Textbox(label="Context", lines=10)
|
123 |
+
answer_input = gr.Textbox(label="Answer", lines=2)
|
124 |
+
with gr.Row():
|
125 |
+
submit_button = gr.Button("Submit")
|
126 |
+
random_button = gr.Button("Random")
|
127 |
+
|
128 |
+
with gr.Column(scale=3):
|
129 |
+
original_question_output = gr.Textbox(label="Original Question from Dataset", lines=2)
|
130 |
+
basic_generation_output = gr.Textbox(label="Basic Generation", lines=4)
|
131 |
+
enhanced_generation_output = gr.Textbox(label="Enhanced Generation", lines=4)
|
132 |
+
comparison_result_output = gr.Textbox(label="Comparison Result", lines=6)
|
133 |
+
|
134 |
+
async def on_submit(context, answer):
|
135 |
+
return await process_entry(context, answer)
|
136 |
+
|
137 |
+
async def on_random():
|
138 |
+
context, answer, question = get_random_entry()
|
139 |
+
results = await process_entry(context, answer)
|
140 |
+
return [context, answer, question] + list(results)
|
141 |
+
|
142 |
+
submit_button.click(
|
143 |
+
fn=on_submit,
|
144 |
+
inputs=[context_input, answer_input],
|
145 |
+
outputs=[basic_generation_output, enhanced_generation_output, comparison_result_output]
|
146 |
+
)
|
147 |
|
148 |
random_button.click(
|
149 |
+
fn=on_random,
|
150 |
outputs=[
|
151 |
+
context_input,
|
152 |
+
answer_input,
|
153 |
original_question_output,
|
|
|
|
|
154 |
basic_generation_output,
|
155 |
enhanced_generation_output,
|
156 |
comparison_result_output
|