omniscient / app.py
issamlaradji's picture
Update app.py
83e006e verified
import gradio as gr
import random
# Sample content for flashcards and quizzes
flashcards = [
{"question": "What is the capital of France?", "answer": "Paris"},
{"question": "What is the largest planet in our solar system?", "answer": "Jupiter"},
{"question": "Who wrote '1984'?", "answer": "George Orwell"}
]
quizzes = [
{"question": "What is 5 + 5?", "choices": ["5", "10", "15"], "answer": "10"},
{"question": "What is the square root of 16?", "choices": ["2", "4", "8"], "answer": "4"},
{"question": "Which country is known as the land of the rising sun?", "choices": ["China", "Japan", "India"], "answer": "Japan"}
]
# Function to display a random flashcard
def get_flashcard():
flashcard = random.choice(flashcards)
return flashcard['question'], flashcard['answer']
# Function to generate a random quiz question
def get_quiz():
quiz = random.choice(quizzes)
return quiz['question'], quiz['choices'], quiz['answer']
# Function to check the answer for a quiz
def check_quiz_answer(selected_answer, correct_answer):
if selected_answer == correct_answer:
return "Correct!"
else:
return f"Incorrect! The right answer is: {correct_answer}"
# Gradio Interface using gr.Interface for Gradio 5.20.1
def create_gradio_interface():
flashcard_question, flashcard_answer = get_flashcard()
quiz_question, quiz_choices, correct_answer = get_quiz()
def quiz_interface(selected_answer):
return check_quiz_answer(selected_answer, correct_answer)
with gr.Blocks() as demo:
with gr.Tab("Flashcards"):
gr.Markdown("## Flashcards Section")
gr.Textbox(label="Flashcard Question", value=flashcard_question, interactive=False)
gr.Textbox(label="Answer", value=flashcard_answer, interactive=False)
with gr.Tab("Quizzes"):
gr.Markdown("## Quiz Section")
selected_answer = gr.Radio(choices=quiz_choices, label="Choose your answer")
submit_button = gr.Button("Submit Answer")
result = gr.Textbox(label="Result", interactive=False)
# Use the Interface for the quiz
submit_button.click(quiz_interface, inputs=selected_answer, outputs=result)
return demo
# Launch the Gradio interface
demo = create_gradio_interface()
demo.launch()