File size: 1,907 Bytes
740e27a
 
 
 
 
 
 
 
 
 
 
 
ec7cc31
740e27a
ec7cc31
 
740e27a
 
 
70a64c6
740e27a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# -*- 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'] + ''

contestador = pipeline('question-answering', model='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",
    description="Introduce el nombre del personaje y la pregunta (ejem. 驴C贸mo es?, 驴qu茅 hace?...) para obtener una respuesta basada en los datos disponibles."
)
demo.launch()