bbecop / app.py
Nextgengirls's picture
Update app.py
9e9ec4d verified
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()