import gradio as gr from gpt4all import GPT4All # Cargar el modelo local (requiere archivo .gguf en carpeta "models/") MODEL_PATH = "models/mistral-7b-openorca.Q4_0.gguf" def responder(pregunta, modo): # Plantilla de modos if modo == "Didáctico": prompt = f"Explica de manera sencilla para un estudiante: {pregunta}" elif modo == "Paso a paso": prompt = f"Resuelve paso a paso: {pregunta}" elif modo == "Examen": prompt = f"Responde de forma breve, como si fuera un examen: {pregunta}" else: prompt = f"Responde con referencias de científicos famosos: {pregunta}" try: model = GPT4All(MODEL_PATH) with model.chat_session() as session: respuesta = session.generate(prompt, max_tokens=256) return respuesta except Exception as e: return f"⚠️ Error: {str(e)}\nAsegúrate de poner el archivo .gguf en la carpeta 'models/'." # Interfaz Gradio demo = gr.Interface( fn=responder, inputs=[ gr.Textbox(label="Tu pregunta de Química o Física"), gr.Radio(["Didáctico", "Paso a paso", "Examen", "Referencias"], label="Modo") ], outputs=gr.Textbox(label="Respuesta IA"), title="ExploraLab — Tutor IA de Química y Física", description="Tu asistente académico gratuito para aprender ciencias." ) if __name__ == "__main__": demo.launch()