tommymarto commited on
Commit
a5290d5
ยท
1 Parent(s): dc6820a

Update demo.py

Browse files
Files changed (1) hide show
  1. demo.py +30 -6
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": True,
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")