Jimenagh's picture
Update app.py
65d78fc verified
# -*- 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()