Grammar-Quiz / app.py
Jayahae's picture
Create app.py
428fe58 verified
import gradio as gr
story = "https://raw.githubusercontent.com/MK316/Spring2024/main/Sample/storysample.txt"
cloze_questions = [
{"question": "Jamie ___ (love) to visit the lighthouse and was fascinated by the stories his grandfather told.", "answer": "loved"},
{"question": "One evening, as a fierce storm brewed, the council ___ (decide) to test their new electronic navigation system.", "answer": "decided"},
{"question": "That night, with the storm at its peak and the new system in place, the unthinkable happened—the electronic system ___ (fail) due to the severe weather conditions", "answer": "failed"},
{"question": "Braving the howling wind and pelting rain, Jamie ______ (climb) the winding stairs of the lighthouse with the lantern.", "answer": "climbed"},
{"question": "All he ______ (can) do was hope it was enough.", "answer": "could"},
{"question": "Miraculously, the small light was ______ (see) by a nearby ship. ", "answer": "seen"},
{"question": "From that day on, the council ______ (reinstate) the old lighthouse, restoring it and even enhancing its light to ensure higher visibility. ", "answer": "reinstated"},
{"question": "He maintained the tradition of the lighthouse while integrating modern technology responsibly, ensuring that the lighthouse ______ (continue) to be a beacon of safety and a symbol of the town’s enduring spirit.", "answer": "continued"},
{"question": "The story of the lighthouse keeper’s lantern ___ (become) a cherished tale, reminding everyone that sometimes, the simplest solutions are the most effective in times of need.", "answer": "became"},
{"question": "The lighthouse keeper, Mr. Elias, ___ (spend) many years ensuring the light never failed, keeping ships safe from the dangerous rocks below”", "answer": "had spent"},
]
def cloze_quiz(name, *answers):
score = 0
results = []
for i, question in enumerate(cloze_questions):
if answers[i].strip().lower() == question["answer"].lower():
score += 1
results.append(f"Question {i+1}: Correct\n")
else:
results.append(f"Question {i+1}: Incorrect, the correct answer is: {question['answer']}\n")
result_text = f"* Name: {name}\n* Score: {score} out of {len(cloze_questions)}\n" + "\n".join(results)
return result_text
inputs = [gr.Textbox(label="Enter your name")] + [gr.Textbox(label=q["question"]) for q in cloze_questions]
outputs = [gr.Textbox(label="Results")]
iface = gr.Interface(fn=cloze_quiz, inputs=inputs, outputs=outputs, description="The Lightkeeper's Lantern")
iface.launch(share=True)