import gradio as gr from inference import load_model, generate # Imaginemos que 'generate' es una función adaptada en 'inference.py' que ya maneja la generación de problemas matemáticos. # Cargar modelo model_name = "deepseek-ai/deepseek-vl-7b-chat" # Ejemplo de nombre de modelo tokenizer, model, _ = load_model(model_name) def math_problem_generator(theme): """ Simula la generación de un problema matemático basado en el tema seleccionado. Devuelve un problema y cuatro posibles soluciones, donde solo una es correcta. """ # Este es un ejemplo simplificado. Aquí deberías generar el problema y las soluciones basándote en el tema. if theme == 'Álgebra': problem = "¿Cuál es el resultado de x en la ecuación 2x + 3 = 7?" options = ["x = 1", "x = 2", "x = 3", "x = 4"] correct_answer = "x = 2" elif theme == 'Geometría': problem = "¿Cuál es el área de un círculo con radio de 4 unidades?" options = ["16π unidades cuadradas", "8π unidades cuadradas", "4π unidades cuadradas", "2π unidades cuadradas"] correct_answer = "16π unidades cuadradas" # Agrega más temas y problemas aquí según sea necesario. return problem, options, correct_answer def solve_math_problem(theme): problem, options, correct_answer = math_problem_generator(theme) return problem, options, correct_answer themes = ["Álgebra", "Geometría"] # Agrega más temas según sea necesario theme_dropdown = gr.Dropdown(choices=themes, label="Selecciona un tema matemático") problem_text = gr.Textbox(label="Problema") options_radio = gr.Radio(label="Opciones") correct_answer_text = gr.Textbox(label="Respuesta Correcta", visible=False) def update_response(theme): problem, options, correct_answer = solve_math_problem(theme) problem_text.update(value=problem) options_radio.update(choices=options, value=None) correct_answer_text.update(value=correct_answer, visible=False) return problem, options theme_dropdown.change(update_response, inputs=[theme_dropdown], outputs=[problem_text, options_radio]) def check_answer(user_choice, correct_answer): if user_choice == correct_answer: return "¡Correcto!" else: correct_answer_text.update(visible=True)