Jorge Henao commited on
Commit
e0cffe2
1 Parent(s): 45506aa

gradio app updated

Browse files
Files changed (1) hide show
  1. app.py +82 -65
app.py CHANGED
@@ -1,59 +1,4 @@
1
  import gradio as gr
2
- from haystack.nodes import BM25Retriever, FARMReader
3
- from haystack.document_stores import ElasticsearchDocumentStore
4
- from haystack.pipelines import ExtractiveQAPipeline
5
- from abc import ABC, abstractmethod
6
-
7
- import certifi
8
- ca_certs=certifi.where()
9
-
10
- class Config():
11
- es_host = "ask2democracy.es.us-central1.gcp.cloud.es.io"
12
- es_user = "elastic"
13
- es_password = "siKAHmmk2flwEaKNqQVZwp49"
14
- proposals_index = "petrolfo"
15
- #reader_model_name_or_path = "deepset/roberta-base-squad2"
16
- reader_model_name_or_path = "deepset/xlm-roberta-large-squad2"
17
- use_gpu = True
18
-
19
-
20
- class DocumentQueries(ABC):
21
-
22
- @abstractmethod
23
- def search_by_query(self, query : str, retriever_top_k: int, reader_top_k: int, es_index: str):
24
- pass
25
-
26
- class ExtractiveProposalQueries(DocumentQueries):
27
-
28
- def __init__(self, es_host: str, es_index: str, es_user, es_password, reader_name_or_path: str, use_gpu = False) -> None:
29
- reader = FARMReader(model_name_or_path = reader_name_or_path, use_gpu = use_gpu, num_processes=1)
30
- self._initialize_pipeline(es_host, es_index, es_user, es_password, reader = reader)
31
-
32
-
33
- def _initialize_pipeline(self, es_host, es_index, es_user, es_password, reader = None):
34
- if reader is not None:
35
- self.reader = reader
36
- self.es_host = es_host
37
- self.es_user = es_user
38
- self.es_password = es_password
39
- self.document_store = ElasticsearchDocumentStore(host = es_host, username=es_user, password=es_password, index = es_index, port = 443, scheme='https', verify_certs=True, ca_certs=ca_certs)
40
- self.retriever = BM25Retriever(document_store = self.document_store)
41
- self.pipe = ExtractiveQAPipeline(self.reader, self.retriever)
42
-
43
- def search_by_query(self, query : str, retriever_top_k: int, reader_top_k: int, es_index: str = None) :
44
- if es_index is not None:
45
- self._initialize_pipeline(self.es_host, es_index, self.es_user, self.es_password)
46
- params = {"Retriever": {"top_k": retriever_top_k}, "Reader": {"top_k": reader_top_k}}
47
- prediction = self.pipe.run( query = query, params = params)
48
- return prediction["answers"]
49
-
50
-
51
-
52
- query = ExtractiveProposalQueries(es_host = Config.es_host, es_index = Config.proposals_index,
53
- es_user = Config.es_user, es_password = Config.es_password,
54
- reader_name_or_path = Config.reader_model_name_or_path,
55
- use_gpu = Config.use_gpu)
56
-
57
 
58
  def update(query):
59
  return f"{query}", f"{query}", f"{query}", f"{query}"
@@ -72,24 +17,96 @@ demo = gr.Blocks()
72
  with demo:
73
  gr.Markdown(
74
  """
75
- # Ask2Democracy
76
- Preguntale a los candidatos
 
 
 
 
 
 
 
 
 
 
77
  """)
78
 
79
- inp = gr.Textbox(placeholder="Haz tu pregunta aquí")
80
  search_button = gr.Button("Buscar")
81
  with gr.Row():
82
- response = gr.Label(value="Petro")
83
- context = gr.Label(value="El viejo")
 
 
 
 
 
 
84
  with gr.Row():
85
  with gr.Column():
86
- # resp_1 = gr.Markdown("<b>Respuesta</b>")
87
- # context_1 = gr.Markdown("<b>Contexto</b>")
88
- resp_1 = gr.Textbox(lines=1, label="respuesta")
89
  context_1 = gr.Textbox(lines=5, label="contexto")
90
  with gr.Column():
91
- resp_2 = gr.Textbox(lines=1, label="respuesta")
92
  context_2 = gr.Textbox(lines=5, label="contexto")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
 
94
- search_button.click(search, inputs = inp, outputs=[resp_1, context_1, resp_2, context_2])
95
  demo.launch(debug = True)
 
1
  import gradio as gr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
  def update(query):
4
  return f"{query}", f"{query}", f"{query}", f"{query}"
 
17
  with demo:
18
  gr.Markdown(
19
  """
20
+ # Ask2Democracy🇨🇴
21
+ El debate ha sido un ausente en la segunda vuelta por la presidencia de Colombia del 2022.
22
+ para ayudar con el conocimiento de las propuestas de los candidatos construí este espacio,
23
+ puede hacerle preguntas a la propuestas de los candidatos. [Abajo algunos ejemplos]👇
24
+ <br>Un pequeño aporte a un fin de semana determinante en la democracia Colombiana.</br>
25
+
26
+ Este espacio hace parte de un proyecto open source que busca ayudar con el conocimiento de la historia Colombiana.
27
+ <a href= "https://github.com/jorge-henao/ask_to_democracy">repo con FastAPI</a>
28
+
29
+ <p>
30
+ Contacto: Jorge Henao 🇨🇴 <a href="https://twitter.com/jhenaotw" target='_blank'>Twitter</a> <a href="https://www.linkedin.com/in/henaojorge" target='_blank'/>LinkedIn</a>
31
+ </p>
32
  """)
33
 
34
+ inp = gr.Textbox(placeholder="¿Que va a hacer con la deuda del ICETEX?")
35
  search_button = gr.Button("Buscar")
36
  with gr.Row():
37
+ #response = gr.Label(value="Gustavo Petro")
38
+ #context = gr.Label(value="Rodolfo Hernández")
39
+ gr.Markdown("<h1>Gustavo Petro (•_•) ( •_•) </h1>")
40
+ gr.Markdown("<h1> Rodolfo Hernandez</h1>")
41
+ # resp_1 = gr.Markdown("<b>Respuesta</b>")
42
+ # context_1 = gr.Markdown("<b>Contexto</b>")
43
+ with gr.Row():
44
+ gr.Markdown("<img src='https://ichef.bbci.co.uk/news/640/cpsprodpb/394A/production/_124966641_blank2gridscollage.png' alt='Girl in a jacket'>")
45
  with gr.Row():
46
  with gr.Column():
47
+ resp_1 = gr.Textbox(lines=1, label="respuesta de Petro")
 
 
48
  context_1 = gr.Textbox(lines=5, label="contexto")
49
  with gr.Column():
50
+ resp_2 = gr.Textbox(lines=1, label="respuesta de Rodolfo Hernandez")
51
  context_2 = gr.Textbox(lines=5, label="contexto")
52
+
53
+ search_button.click(search, inputs = inp, outputs=[resp_1, context_1, resp_2, context_2])
54
+ gr.Markdown("""
55
+ # Aquí algunas cosas que les puede preguntar a los candidatos:
56
+ <ul>
57
+ <li>¿Que va a hacer con la deuda del ICETEX?</li>
58
+ <li>¿Como impulsará la creación de startus o emprendimientos creados por jóvenes?</li>
59
+ <li>¿Propuestas de para garantizar la protección de lideres sociales y ambientales?</li>
60
+ <li>¿Cómo promoverá el mercado laboral de los jóvenes?</li>
61
+ <li>¿Cuales medidas tomará para mejorar la remuneración de los jóvenes ?</li>
62
+ <li>¿Cuales aciones propone para aumentar la capacidad del sistema de salud en materia de prevención y atención de enfermedades?</li>
63
+ <li>¿Apoyará el proceso de paz con el ELN?</li>
64
+ <li>¿ regulará las plataformas móviles de transporte?</li>
65
+ <li>¿ consideraría el cultivo de la hoja de coca para uso farmacéutico y otros usos lícitos?</li>
66
+ <li>¿ está de acuerdo con la legalización de la marhihuana?</li>
67
+ <li>¿ apoyaría las Pymes para entrar el mercado de la marihuana legal?</li>
68
+ <li>¿ implementaría el uso del Canabis para tratar enfermedades no crónicas ni terminales?</li>
69
+ <li>¿Por qué implementará el uso del Canabis?</li>
70
+ <li>¿Que política implementará para aprovechar plantas como la hoja de coca en usos alternativos como abonos?</li>
71
+ <li>¿ está de acuerdo con la reforma del SMAD?</li>
72
+ <li>¿ está de acuerdo con la regulación de la prostitución?</li>
73
+ <li>¿ eliminará el servicio militar obligatorio?</li>
74
+ <li>¿Diversidad de género en los altos cargos del gobierno de ?</li>
75
+ <li>sobre diversidad de género en los altos cargos del gobierno </li>
76
+ <li>¿ eliminará la figura del porte especial de armas?</li>
77
+ <li>¿Que mecanismo implementará para garantizar la paridad de género en la política nacional y territorial?</li>
78
+ <li>cuotas de participación igualitaria en cargos públicos para personas de todas las identidades de género</li>
79
+ <li>¿Que va hacer para eliminar las barreras de acceso, tenencia y formalización de la tierra para las mujeres?</li>
80
+ <li>¿Cómo incentivará la denuncia por parte de hombres victgimas de violencia de genero?</li>
81
+ <li>¿ tendrá en cuenta la identificación de genero no binario para efectos de registros públios?</li>
82
+ <li>¿ aceptaría el matrimonio o union marital de hecho entre familias poliamorosas?</li>
83
+ <li>¿ eliminará el 4 por mil?</li>
84
+ <li>¿ aprueva acuerdo de ESCASÚ?</li>
85
+ <li>¿ va a acabar con las EPS?</li>
86
+ <li>¿Que propone respecto a la medicina preventiva?</li>
87
+ <li>spobre consumo mínimo vital de agua </li>
88
+ <li>¿Replanteará las relaciones con Estados Unidos?</li>
89
+ <li>¿Renegociará los TLCS?</li>
90
+ <li>¿Seguirá importando alimentos o fomentará la producción nacional?</li>
91
+ <li>¿Qué políticas sociales implementará para ayudar a las familias vulnerables?</li>
92
+ <li>¿Cómo financiaría las pensiones?</li>
93
+ <li>¿De dónde va a sacar la plata para financiar las pensiones?</li>
94
+ <li>¿Que propone para la transición energética?</li>
95
+ <li>¿Cómo fortalecerá las capacidades para producir localmente medicamentos e insumos esenciales para la salud de los colombianos?</li>
96
+ <li>¿Cómo hará para preservar la vida de los y las líderes sociales afrodescendientes?</li>
97
+ <li>¿Cómo hará usted una transición energética justa, que balancee nuestras necesidades ambientales con nuestras necesidades sociales y económicas?</li>
98
+ <li>¿Cómo revitalizará el proceso de paz?</li>
99
+ <li>¿Cómo transformará la actual tragedia educativa en Colombia en una oportunidad para tener el sistema educativo que el país necesita?</li>
100
+ <li>¿Cómo va a garantizar el enfoque de género en sus políticas públicas?</li>
101
+ <li>¿Ejecutará la reforma agraria que necesita el país?</li>
102
+ <li>¿Habrá reforma tributaria en el gobierno de ?</li>
103
+ <li>¿Qué acciones concretas tomará para reducir el hacinamiento en las cárceles, penitenciarías y estaciones de Policía?</li>
104
+ <li>¿Qué recursos nacionales destinará a la movilidad en Bogotá?</li>
105
+ <li>¿Qué va a hacer contra la corrupción?</li>
106
+ <li>¿ recomponerá las relaciones diplomáticas con el Gobierno venezolano?</li>
107
+ <li>¿Qué propone sobre las pensiones?</li>
108
+ </ul>
109
+ </ul>""")
110
 
111
+
112
  demo.launch(debug = True)