import os
from openai import OpenAI

class QuestionGenerator:
    def __init__(self, api_key=None):
        if api_key is None:
            api_key = os.environ.get("OPENAI_API_KEY")
        if api_key is None:
            raise ValueError("OpenAI API key not found. Please set the OPENAI_API_KEY environment variable.")
        self.client = OpenAI(api_key=api_key)

    def generate_question(self, text_content, question_type="multiple_choice", difficulty="medium"):
        prompt = f"""
        Basado en el siguiente texto, genera una pregunta de {question_type} con dificultad {difficulty}.
        Si es de opción múltiple, incluye 4 opciones, una correcta y 3 distractores plausibles. Indica la respuesta correcta.
        Si es de verdadero/falso, indica la respuesta correcta.

        Texto:
        {text_content}

        Formato de salida (JSON):
        {{
            "question": "[Pregunta]",
            "type": "{question_type}",
            "difficulty": "{difficulty}",
            "options": ["[Opcion A]", "[Opcion B]", "[Opcion C]", "[Opcion D]"] (solo para multiple_choice),
            "correct_answer": "[Respuesta Correcta]"
        }}
        """

        try:
            response = self.client.chat.completions.create(
                model="gpt-4.1-mini",  # Updated to supported model
                messages=[
                    {"role": "system", "content": "Eres un asistente experto en la creación de preguntas educativas."},
                    {"role": "user", "content": prompt}
                ],
                response_format={ "type": "json_object" },
                temperature=0.7
            )
            question_data = response.choices[0].message.content
            return question_data
        except Exception as e:
            print(f"Error generating question: {e}")
            return None

if __name__ == '__main__':
    # Example usage
    generator = QuestionGenerator()
    sample_text = """
    La fotosíntesis es un proceso bioquímico que realizan las plantas, las algas y algunas bacterias para convertir la energía de la luz solar en energía química. Este proceso es fundamental para la vida en la Tierra, ya que produce oxígeno y compuestos orgánicos que son la base de la cadena alimentaria.
    """

    print("\n--- Generando pregunta de opción múltiple ---")
    mc_question = generator.generate_question(sample_text, question_type="multiple_choice", difficulty="medium")
    if mc_question:
        print(mc_question)

    print("\n--- Generando pregunta de verdadero/falso ---")
    tf_question = generator.generate_question(sample_text, question_type="true_false", difficulty="easy")
    if tf_question:
        print(tf_question)

    print("\n--- Generando pregunta de opción múltiple (difícil) ---")
    hard_mc_question = generator.generate_question(sample_text, question_type="multiple_choice", difficulty="hard")
    if hard_mc_question:
        print(hard_mc_question)
