Spaces:
Sleeping
Sleeping
| 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 |