from transformers import pipeline import gradio as gr import json pipe = pipeline("text-generation", model="gpt2") with open("dataset_45_perfiles.json", "r", encoding="utf-8") as f: dataset = json.load(f) PROMPT_BASE = """ Eres un asistente experto en becas universitarias internacionales (USA, UK y Canadá). Usa la base de datos de perfiles de becas para responder preguntas de usuarios. Cada perfil contiene: perfil, pais, universidad, tipo_beca, economia, area, pais_estadia, respuesta. Instrucciones: 1. Identifica la información relevante de la pregunta: tipo de beca, país, universidad, economía, área y país de estadía. 2. Filtra el perfil del dataset que coincida con todos los criterios posibles. 3. Devuelve la respuesta en la siguiente estructura exacta: Tipo de beca: País o región: Nivel académico: Requisitos y nivel de inglés recomendado en CEFR: Beneficios: Observaciones o recomendaciones: 4. Si el nivel de inglés del usuario es inferior a C1, agrega un paso inicial de plan de mejora de inglés antes de aplicar. 5. Asegúrate de que la respuesta sea específica, profesional y adaptada al perfil filtrado. """ def responder(texto): prompt = f"{PROMPT_BASE}\nUsuario: {texto}\nRespuesta:" salida = pipe(prompt, max_new_tokens=250, temperature=0.7) texto_generado = salida[0]["generated_text"].split("Respuesta:")[-1].strip() return texto_generado demo = gr.Interface( fn=responder, inputs=gr.Textbox(label="Tu pregunta"), outputs=gr.Textbox(label="Respuesta"), title="Asistente de Becas" ) demo.launch()