Spaces:
Paused
Paused
import gradio as gr | |
import random | |
from llm import get_prompt, get_responce | |
def generate_questions(question_type): | |
prompt, seed = get_prompt(question_type) | |
questions = get_responce(prompt) | |
return questions, seed | |
def process_question_type(question_type): | |
questions, seed = generate_questions(question_type) | |
formatted_questions = [] | |
for question in questions: | |
question_text = question["question"] | |
options = question.get("options", {}) | |
answer = question["answer"] | |
correction = question.get("correction", "") | |
question_display = { | |
"Question": question_text, | |
"Answer": answer, | |
"Correction": correction, | |
"Options": options if options else None, | |
} | |
formatted_questions.append(question_display) | |
return formatted_questions, seed | |
def main(): | |
question_types = [ | |
"Choose the correct meaning of the word", | |
"Personal response", | |
"Give reasons", | |
"Fill in the blanks", | |
"True or False", | |
] | |
# Create a Gradio interface | |
with gr.Blocks() as demo: | |
gr.Markdown("<h1>Select Question Type</h1>") | |
question_type = gr.Dropdown(choices=question_types, label="Question Type", value=question_types[0]) | |
generate_button = gr.Button("Generate Questions") | |
output = gr.Textbox(label="Generated Questions", interactive=False) | |
seed_output = gr.Textbox(label="Seed Number", interactive=False) | |
def generate(): | |
questions, seed = process_question_type(question_type.value) | |
formatted_output = "\n".join([f"{q['Question']} - Answer: {q['Answer']}, Correction: {q['Correction']}" for q in questions]) | |
return formatted_output, seed | |
generate_button.click(generate, outputs=[output, seed_output]) | |
demo.launch() | |
if __name__ == "__main__": | |
main() |