Jimenagh commited on
Commit
740e27a
1 Parent(s): 0b074ac

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -0
app.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ """Copia de app.ipynb
3
+
4
+ Automatically generated by Colab.
5
+
6
+ Original file is located at
7
+ https://colab.research.google.com/drive/1CWlm7_FskC5LwZaYL-sgzASC5LDAzZ15
8
+ """
9
+
10
+ !pip install torch torchvision torchaudio
11
+
12
+ !pip install gradio
13
+ import gradio as gr
14
+
15
+ import transformers
16
+ from transformers import pipeline
17
+ import pandas as pd
18
+
19
+ from transformers import AutoModelForQuestionAnswering, AutoTokenizer
20
+
21
+ model_name = "mrm8488/distill-bert-base-spanish-wwm-cased-finetuned-spa-squad2-es"
22
+
23
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
24
+ model = AutoModelForQuestionAnswering.from_pretrained(model_name)
25
+
26
+ df = pd.read_csv('https://docs.google.com/spreadsheets/d/e/2PACX-1vSWJvS1tP7pp_GpF1fb-KXDyQoACbxKZlUfB4Gd3SFHnX6Jz3xs9-9t0yMOnfPd59Up50Fp8OS02epO/pub?gid=1955047855&single=true&output=csv')
27
+
28
+ df['contexto'] = df['Descripción'] + '' + df['Atributos'] + ''
29
+
30
+ contestador = pipeline('question-answering', model='mrm8488/distill-bert-base-spanish-wwm-cased-finetuned-spa-squad2-es', from_pt=True)
31
+ def obtener_origen(personaje):
32
+ columna = df[df['Personaje'] == personaje]
33
+ if columna.empty:
34
+ return f'El personaje "{personaje}" no se encuentra en la base de datos.'
35
+ origen = columna.iloc[0]['Origen']
36
+ return f'El origen de este ser mitológico "{personaje}" es "{origen}".'
37
+
38
+ def responder_pregunta(personaje, pregunta):
39
+ columna = df[df['Personaje'] == personaje]
40
+ if columna.empty:
41
+ return f'El personaje "{personaje}" no se encuentra en la base de datos.'
42
+ contexto = columna.iloc[0]['contexto']
43
+
44
+ resultado = {'answer': f'{contexto}'}
45
+ return resultado['answer']
46
+
47
+ def interfaz(nombre, pregunta):
48
+ origen = obtener_origen(nombre)
49
+ respuesta = responder_pregunta(nombre, pregunta)
50
+ return f"Respuesta: {respuesta}\nOrigen: {origen}"
51
+
52
+ demo = gr.Interface(
53
+ fn=interfaz,
54
+ inputs=[gr.Textbox(label="Nombre del personaje"), gr.Textbox(label="Pregunta")],
55
+ outputs=gr.Textbox(label="Respuesta"),
56
+ title="Sistema de Respuesta a Preguntas sobre Personajes Mitológicos",
57
+ description="Introduce el nombre del personaje y la pregunta (ejem. ¿Cómo es?, ¿qué hace?...) para obtener una respuesta basada en los datos disponibles."
58
+ )
59
+ demo.launch()