Spaces:
Runtime error
Runtime error
Commit
ยท
a5290d5
1
Parent(s):
dc6820a
Update demo.py
Browse files
demo.py
CHANGED
@@ -27,6 +27,7 @@ firebase_current_ref = None
|
|
27 |
base_url = "https://skapi.polyglot-edu.com/"
|
28 |
levels = ["Primary School", "Middle School", "High School", "College", "Academy"]
|
29 |
languages = ["English", "Italian", "French", "German", "Spanish"]
|
|
|
30 |
|
31 |
def get_level_mapping(level):
|
32 |
if level is None:
|
@@ -171,7 +172,7 @@ def generate_open_question(original_text, level, temperature, language, question
|
|
171 |
"flagged": False,
|
172 |
})
|
173 |
|
174 |
-
def generate_multiplechoice(original_text, level, number_of_easy_distractors, number_of_distractors, temperature, language):
|
175 |
"""
|
176 |
Generate a multiple-choice question from a given text.
|
177 |
|
@@ -188,6 +189,12 @@ def generate_multiplechoice(original_text, level, number_of_easy_distractors, nu
|
|
188 |
The temperature for the generation.
|
189 |
language : str
|
190 |
The language of the generated text.
|
|
|
|
|
|
|
|
|
|
|
|
|
191 |
|
192 |
Returns
|
193 |
-------
|
@@ -197,8 +204,10 @@ def generate_multiplechoice(original_text, level, number_of_easy_distractors, nu
|
|
197 |
|
198 |
input_json = {
|
199 |
"text": original_text,
|
200 |
-
"type":
|
201 |
"level": get_level_mapping(level),
|
|
|
|
|
202 |
"n_o_d": int(number_of_distractors),
|
203 |
"nedd": int(number_of_easy_distractors),
|
204 |
"temperature": int(temperature) * 0.2,
|
@@ -355,6 +364,10 @@ def build_multiplechoice_interface():
|
|
355 |
level = gr.Radio(levels, label="Level")
|
356 |
language = gr.Dropdown(languages, label="Language", value="English")
|
357 |
with gr.Row():
|
|
|
|
|
|
|
|
|
358 |
easy_distractors = gr.Number(value=1, minimum=0, maximum=8, step=1, label="Number of easy distractors")
|
359 |
distractors = gr.Number(value=1, minimum=0, maximum=8, step=1, label="Number of distractors")
|
360 |
temperature = gr.Checkbox(value=False, label="Increase creativity (decreases preciseness)", visible=False)
|
@@ -364,7 +377,20 @@ def build_multiplechoice_interface():
|
|
364 |
|
365 |
return gr.Number(value=easy_distractors, minimum=0, maximum=distractors, label="Number of easy distractors")
|
366 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
367 |
distractors.change(update_distractors, [easy_distractors, distractors], [easy_distractors])
|
|
|
368 |
|
369 |
with gr.Row():
|
370 |
output = gr.TextArea(placeholder="Generated text", label="Output")
|
@@ -374,7 +400,7 @@ def build_multiplechoice_interface():
|
|
374 |
downvote_btn = gr.Button(value="๐ Downvote")
|
375 |
flag_btn = gr.Button(value="โ ๏ธ Flag")
|
376 |
|
377 |
-
submit_btn.click(generate_multiplechoice, [input_field, level, easy_distractors, distractors, temperature, language], [output])
|
378 |
upvote_btn.click(like)
|
379 |
remove_preference_btn.click(neutral_like)
|
380 |
downvote_btn.click(dislike)
|
@@ -397,9 +423,7 @@ def build_open_question_interface():
|
|
397 |
language = gr.Dropdown(languages, label="Language", value="English")
|
398 |
with gr.Row():
|
399 |
question_type = gr.Dropdown(["Open", "ShortAnswer", "TrueFalse"], label="Question Type", value="Open", type="index")
|
400 |
-
question_category = gr.Dropdown(
|
401 |
-
["Factual Knowledge", "Understanding of Concepts", "Application of Skills", "Analysys And Evaluation"],
|
402 |
-
label="Question Category", value="Factual Knowledge", type="index")
|
403 |
temperature = gr.Checkbox(value=False, label="Increase creativity (decreases preciseness)", visible=False)
|
404 |
with gr.Row():
|
405 |
output = gr.TextArea(placeholder="Generated text", label="Output")
|
|
|
27 |
base_url = "https://skapi.polyglot-edu.com/"
|
28 |
levels = ["Primary School", "Middle School", "High School", "College", "Academy"]
|
29 |
languages = ["English", "Italian", "French", "German", "Spanish"]
|
30 |
+
categories = ["Factual Knowledge", "Understanding of Concepts", "Application of Skills", "Analysys And Evaluation"]
|
31 |
|
32 |
def get_level_mapping(level):
|
33 |
if level is None:
|
|
|
172 |
"flagged": False,
|
173 |
})
|
174 |
|
175 |
+
def generate_multiplechoice(original_text, level, number_of_easy_distractors, number_of_distractors, temperature, language, question_category, correct_answers, exercise_type):
|
176 |
"""
|
177 |
Generate a multiple-choice question from a given text.
|
178 |
|
|
|
189 |
The temperature for the generation.
|
190 |
language : str
|
191 |
The language of the generated text.
|
192 |
+
question_category : str
|
193 |
+
The category of the question.
|
194 |
+
correct_answers : int
|
195 |
+
The number of correct answers.
|
196 |
+
exercise_type : bool
|
197 |
+
The type of the exercise (theory or practice).
|
198 |
|
199 |
Returns
|
200 |
-------
|
|
|
204 |
|
205 |
input_json = {
|
206 |
"text": original_text,
|
207 |
+
"type": bool(exercise_type),
|
208 |
"level": get_level_mapping(level),
|
209 |
+
"question_category": question_category,
|
210 |
+
"n_o_ca": int(correct_answers),
|
211 |
"n_o_d": int(number_of_distractors),
|
212 |
"nedd": int(number_of_easy_distractors),
|
213 |
"temperature": int(temperature) * 0.2,
|
|
|
364 |
level = gr.Radio(levels, label="Level")
|
365 |
language = gr.Dropdown(languages, label="Language", value="English")
|
366 |
with gr.Row():
|
367 |
+
exercise_type = gr.Radio(["Theoretical", "Practical"], label="Exercise type", value="Theoretical", type="index")
|
368 |
+
question_category = gr.Dropdown(categories, label="Question Category", value="Factual Knowledge", type="index")
|
369 |
+
with gr.Row():
|
370 |
+
correct_answers = gr.Number(value=1, minimum=1, maximum=3, step=1, label="Number of correct answers")
|
371 |
easy_distractors = gr.Number(value=1, minimum=0, maximum=8, step=1, label="Number of easy distractors")
|
372 |
distractors = gr.Number(value=1, minimum=0, maximum=8, step=1, label="Number of distractors")
|
373 |
temperature = gr.Checkbox(value=False, label="Increase creativity (decreases preciseness)", visible=False)
|
|
|
377 |
|
378 |
return gr.Number(value=easy_distractors, minimum=0, maximum=distractors, label="Number of easy distractors")
|
379 |
|
380 |
+
def update_exercise_type(exercise_type, question_category, number_of_correct_answers):
|
381 |
+
if exercise_type == 0:
|
382 |
+
return (
|
383 |
+
gr.Dropdown(categories, label="Question Category", value="Analysys And Evaluation", type="index"),
|
384 |
+
gr.Number(value=number_of_correct_answers, minimum=1, maximum=3, step=1, label="Number of correct answers")
|
385 |
+
)
|
386 |
+
elif exercise_type == 1:
|
387 |
+
return (
|
388 |
+
gr.Dropdown(["Analysys And Evaluation"], label="Question Category", value="Analysys And Evaluation", type="index"),
|
389 |
+
gr.Number(value=1, minimum=1, maximum=1, step=1, label="Number of correct answers")
|
390 |
+
)
|
391 |
+
|
392 |
distractors.change(update_distractors, [easy_distractors, distractors], [easy_distractors])
|
393 |
+
exercise_type.change(update_exercise_type, [exercise_type, question_category, correct_answers], [question_category, correct_answers])
|
394 |
|
395 |
with gr.Row():
|
396 |
output = gr.TextArea(placeholder="Generated text", label="Output")
|
|
|
400 |
downvote_btn = gr.Button(value="๐ Downvote")
|
401 |
flag_btn = gr.Button(value="โ ๏ธ Flag")
|
402 |
|
403 |
+
submit_btn.click(generate_multiplechoice, [input_field, level, easy_distractors, distractors, temperature, language, question_category, correct_answers, exercise_type], [output])
|
404 |
upvote_btn.click(like)
|
405 |
remove_preference_btn.click(neutral_like)
|
406 |
downvote_btn.click(dislike)
|
|
|
423 |
language = gr.Dropdown(languages, label="Language", value="English")
|
424 |
with gr.Row():
|
425 |
question_type = gr.Dropdown(["Open", "ShortAnswer", "TrueFalse"], label="Question Type", value="Open", type="index")
|
426 |
+
question_category = gr.Dropdown(categories, label="Question Category", value="Factual Knowledge", type="index")
|
|
|
|
|
427 |
temperature = gr.Checkbox(value=False, label="Increase creativity (decreases preciseness)", visible=False)
|
428 |
with gr.Row():
|
429 |
output = gr.TextArea(placeholder="Generated text", label="Output")
|