# -*- coding: utf-8 -*- """Copia de app.ipynb Automatically generated by Colab. Original file is located at https://colab.research.google.com/drive/1CWlm7_FskC5LwZaYL-sgzASC5LDAzZ15 """ import transformers from transformers import pipeline import pandas as pd import gradio as gr url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vT8Za7W25DoTgnsEpLxcwbrq-Fmi2kSuUXr_i8ymdSi6Q3Zd4fmgEvpkguwHklZC1ZuYNuNpY6wKv6G/pub?gid=1287415630&single=true&output=csv' df = pd.read_csv(url) df['contexto'] = df['Descripción'] + '' + df['Atributos'] + '' pln = pipeline('question-answering', model='mrm8488/distill-bert-base-spanish-wwm-cased-finetuned-spa-squad2-es', tokenizer=('mrm8488/distill-bert-base-spanish-wwm-cased-finetuned-spa-squad2-es', {'use_fast': False})) def obtener_origen(personaje): columna = df[df['Personaje'] == personaje] if columna.empty: return f'El personaje "{personaje}" no se encuentra en la base de datos.' origen = columna.iloc[0]['Origen'] return f'El origen de este ser mitológico "{personaje}" es "{origen}".' def responder_pregunta(personaje, pregunta): columna = df[df['Personaje'] == personaje] if columna.empty: return f'El personaje "{personaje}" no se encuentra en la base de datos.' contexto = columna.iloc[0]['contexto'] resultado = {'answer': f'{contexto}'} return resultado['answer'] def interfaz(nombre, pregunta): origen = obtener_origen(nombre) respuesta = responder_pregunta(nombre, pregunta) return f"Respuesta: {respuesta}\nOrigen: {origen}" demo = gr.Interface( fn=interfaz, inputs=[gr.Textbox(label="Nombre del personaje"), gr.Textbox(label="Pregunta")], outputs=gr.Textbox(label="Respuesta"), title="Sistema de Respuesta a Preguntas sobre Personajes Mitológicos Asturianos", description="Introduce el nombre del personaje (Trasgu, Xana, Espumeru...) y la pregunta (¿Quién es?, ¿qué hace?, descríbelo...) para obtener una respuesta basada en los datos disponibles." ) demo.launch()