Jimenagh's picture
Update app.py
37e6c59 verified
raw
history blame
No virus
2.08 kB
# -*- 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-1vSWJvS1tP7pp_GpF1fb-KXDyQoACbxKZlUfB4Gd3SFHnX6Jz3xs9-9t0yMOnfPd59Up50Fp8OS02epO/pub?gid=1955047855&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()