quiz-generator-v3 / ui /feedback_handlers.py
ecuartasm's picture
Initial commit: AI Course Assessment Generator
217abc3
import os
import json
from quiz_generator import QuizGenerator
from .state import get_processed_contents
def propose_question_handler(guidance, model_name, temperature):
"""Generate a single question based on user guidance or feedback."""
if not get_processed_contents():
return "Please upload and process files in the 'Generate Learning Objectives' tab first.", None
if not os.getenv("OPENAI_API_KEY"):
return "OpenAI API key not found.", None
try:
quiz_generator = QuizGenerator(
api_key=os.getenv("OPENAI_API_KEY"),
model=model_name,
temperature=float(temperature)
)
question = quiz_generator.generate_multiple_choice_question_from_feedback(
guidance, get_processed_contents()
)
formatted_question = {
"id": question.id,
"question_text": question.question_text,
"options": [{"text": opt.option_text, "is_correct": opt.is_correct, "feedback": opt.feedback} for opt in question.options],
"learning_objective": question.learning_objective,
"source_reference": question.source_reference,
"feedback": question.feedback
}
return "Question generated successfully.", json.dumps(formatted_question, indent=2)
except Exception as e:
return f"Error: {str(e)}", None