Spaces:
Sleeping
Sleeping
| 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() | |