Spaces:
Sleeping
Sleeping
MattiaSangermano
commited on
Commit
•
8e023cd
1
Parent(s):
e34a2a6
Fixed bug in the ui
Browse files
app.py
CHANGED
@@ -5,7 +5,7 @@ import string
|
|
5 |
from config import CONFIG, UI_USER, UI_PWD
|
6 |
from consts import JUSTICE_CELEXES, POLLUTION_CELEXES
|
7 |
from enum import Enum
|
8 |
-
|
9 |
|
10 |
def generate_random_string(length):
|
11 |
# Generate a random string of the specified length
|
@@ -15,9 +15,12 @@ def generate_random_string(length):
|
|
15 |
return random_string
|
16 |
|
17 |
class ChatBot():
|
18 |
-
def __init__(self) -> None:
|
19 |
self.documents = []
|
20 |
-
self.
|
|
|
|
|
|
|
21 |
|
22 |
class Versions(Enum):
|
23 |
AKN='Akoma Ntoso'
|
@@ -26,28 +29,26 @@ class Versions(Enum):
|
|
26 |
BASIC='All eurovoc'
|
27 |
|
28 |
|
29 |
-
|
|
|
|
|
30 |
|
31 |
-
justice_ids = bot.chat.get_ids_from_celexes(JUSTICE_CELEXES)
|
32 |
-
pollution_ids = bot.chat.get_ids_from_celexes(POLLUTION_CELEXES)
|
33 |
|
34 |
-
|
35 |
-
def reinit(version):
|
36 |
bot.documents = []
|
|
|
37 |
if version == Versions.AKN.value:
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
bot.chat = EurLexChat(config=CONFIG)
|
42 |
-
return clean_page()
|
43 |
|
44 |
-
def remove_doc(btn):
|
45 |
bot.documents.pop(btn)
|
46 |
new_accordions, new_texts = set_new_docs_ui(bot.documents)
|
47 |
-
return [*new_accordions, *new_texts]
|
48 |
|
49 |
|
50 |
-
def get_answer(message, history, session_id, celex_type):
|
51 |
s = session_id
|
52 |
if celex_type == Versions.JUSTICE.value:
|
53 |
ids_list = justice_ids
|
@@ -67,7 +68,7 @@ def get_answer(message, history, session_id, celex_type):
|
|
67 |
if result.new_documents:
|
68 |
bot.documents = result.new_documents
|
69 |
accordions, list_texts = set_new_docs_ui(bot.documents)
|
70 |
-
return ['', history, gr.Column(scale=1, visible=True), *accordions, *list_texts, s]
|
71 |
|
72 |
|
73 |
def set_new_docs_ui(documents):
|
@@ -83,10 +84,10 @@ def set_new_docs_ui(documents):
|
|
83 |
return new_accordions, new_texts
|
84 |
|
85 |
|
86 |
-
def clean_page():
|
87 |
bot.documents = []
|
88 |
accordions, list_texts = set_new_docs_ui(bot.documents)
|
89 |
-
return ["", [], None, *accordions, *list_texts, gr.Column(visible=False)]
|
90 |
|
91 |
list_texts = []
|
92 |
accordions = []
|
@@ -104,6 +105,7 @@ with block:
|
|
104 |
gr.Markdown("""
|
105 |
<h1><center>Chat-EUR-Lex prototype - Alpha version</center></h1>
|
106 |
""")
|
|
|
107 |
state = gr.State(value=None)
|
108 |
with gr.Row():
|
109 |
with gr.Column(scale=3):
|
@@ -138,11 +140,11 @@ with block:
|
|
138 |
Contact us: <a href="mailto:chat-eur-lex@igsg.cnr.it">chat-eur-lex@igsg.cnr.it</a>.</p>
|
139 |
</div>""")
|
140 |
|
141 |
-
drop_down.change(reinit, inputs=[drop_down], outputs=[message, chatbot, state, *accordions, *list_texts, col])
|
142 |
-
clear.click(clean_page, outputs=[message, chatbot, state, *accordions, *list_texts, col])
|
143 |
-
message.submit(get_answer, inputs=[message, chatbot, state, drop_down], outputs=[message, chatbot, col, *accordions, *list_texts, state])
|
144 |
-
submit.click(get_answer, inputs=[message, chatbot, state, drop_down], outputs=[message, chatbot, col, *accordions, *list_texts, state])
|
145 |
for i, b in enumerate(delete_buttons):
|
146 |
-
b.click(remove_doc, inputs=states[i], outputs=[*accordions, *list_texts])
|
147 |
|
148 |
block.launch(debug=True, auth=(UI_USER, UI_PWD))
|
|
|
5 |
from config import CONFIG, UI_USER, UI_PWD
|
6 |
from consts import JUSTICE_CELEXES, POLLUTION_CELEXES
|
7 |
from enum import Enum
|
8 |
+
from copy import deepcopy
|
9 |
|
10 |
def generate_random_string(length):
|
11 |
# Generate a random string of the specified length
|
|
|
15 |
return random_string
|
16 |
|
17 |
class ChatBot():
|
18 |
+
def __init__(self, config) -> None:
|
19 |
self.documents = []
|
20 |
+
self.config = deepcopy(config)
|
21 |
+
self.chat = EurLexChat(config=self.config)
|
22 |
+
def __deepcopy__(self, _):
|
23 |
+
return ChatBot(self.config)
|
24 |
|
25 |
class Versions(Enum):
|
26 |
AKN='Akoma Ntoso'
|
|
|
29 |
BASIC='All eurovoc'
|
30 |
|
31 |
|
32 |
+
chat_init = EurLexChat(config=CONFIG)
|
33 |
+
justice_ids = chat_init.get_ids_from_celexes(JUSTICE_CELEXES)
|
34 |
+
pollution_ids = chat_init.get_ids_from_celexes(POLLUTION_CELEXES)
|
35 |
|
|
|
|
|
36 |
|
37 |
+
def reinit(version, bot):
|
|
|
38 |
bot.documents = []
|
39 |
+
config = deepcopy(CONFIG)
|
40 |
if version == Versions.AKN.value:
|
41 |
+
config['vectorDB']['kwargs']['collection_name'] += "-akn"
|
42 |
+
bot.chat = EurLexChat(config=config)
|
43 |
+
return clean_page(bot)
|
|
|
|
|
44 |
|
45 |
+
def remove_doc(btn, bot):
|
46 |
bot.documents.pop(btn)
|
47 |
new_accordions, new_texts = set_new_docs_ui(bot.documents)
|
48 |
+
return [*new_accordions, *new_texts, bot]
|
49 |
|
50 |
|
51 |
+
def get_answer(message, history, session_id, celex_type, bot):
|
52 |
s = session_id
|
53 |
if celex_type == Versions.JUSTICE.value:
|
54 |
ids_list = justice_ids
|
|
|
68 |
if result.new_documents:
|
69 |
bot.documents = result.new_documents
|
70 |
accordions, list_texts = set_new_docs_ui(bot.documents)
|
71 |
+
return ['', history, gr.Column(scale=1, visible=True), *accordions, *list_texts, s, bot]
|
72 |
|
73 |
|
74 |
def set_new_docs_ui(documents):
|
|
|
84 |
return new_accordions, new_texts
|
85 |
|
86 |
|
87 |
+
def clean_page(bot):
|
88 |
bot.documents = []
|
89 |
accordions, list_texts = set_new_docs_ui(bot.documents)
|
90 |
+
return ["", [], None, *accordions, *list_texts, gr.Column(visible=False), bot]
|
91 |
|
92 |
list_texts = []
|
93 |
accordions = []
|
|
|
105 |
gr.Markdown("""
|
106 |
<h1><center>Chat-EUR-Lex prototype - Alpha version</center></h1>
|
107 |
""")
|
108 |
+
bot = gr.State(value=ChatBot(CONFIG))
|
109 |
state = gr.State(value=None)
|
110 |
with gr.Row():
|
111 |
with gr.Column(scale=3):
|
|
|
140 |
Contact us: <a href="mailto:chat-eur-lex@igsg.cnr.it">chat-eur-lex@igsg.cnr.it</a>.</p>
|
141 |
</div>""")
|
142 |
|
143 |
+
drop_down.change(reinit, inputs=[drop_down, bot], outputs=[message, chatbot, state, *accordions, *list_texts, col])
|
144 |
+
clear.click(clean_page, inputs=[bot], outputs=[message, chatbot, state, *accordions, *list_texts, col, bot])
|
145 |
+
message.submit(get_answer, inputs=[message, chatbot, state, drop_down, bot], outputs=[message, chatbot, col, *accordions, *list_texts, state, bot])
|
146 |
+
submit.click(get_answer, inputs=[message, chatbot, state, drop_down, bot], outputs=[message, chatbot, col, *accordions, *list_texts, state, bot])
|
147 |
for i, b in enumerate(delete_buttons):
|
148 |
+
b.click(remove_doc, inputs=[states[i],bot], outputs=[*accordions, *list_texts, bot])
|
149 |
|
150 |
block.launch(debug=True, auth=(UI_USER, UI_PWD))
|