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