Ilyas KHIAT commited on
Commit
33ab192
·
1 Parent(s): 5f96521
audit_page/dialogue_doc.py CHANGED
@@ -8,6 +8,7 @@ from utils.kg.construct_kg import get_graph
8
  from audit_page.knowledge_graph import *
9
  import json
10
  import clipboard
 
11
 
12
  def graph_doc_to_json(graph):
13
  nodes = []
@@ -30,9 +31,9 @@ def chat_history_formatter(chat_history):
30
  formatted_chat = ""
31
  for message in chat_history:
32
  if isinstance(message, AIMessage):
33
- formatted_chat += f"AI:\n {message.content}\n\n"
34
  elif isinstance(message, HumanMessage):
35
- formatted_chat += f"Human:\n {message.content}\n\n"
36
  return formatted_chat
37
 
38
  def filter_correspondance(source_list:list[str],ref_dict:dict,reverse=False):
@@ -43,6 +44,16 @@ def filter_correspondance(source_list:list[str],ref_dict:dict,reverse=False):
43
  # st.write(source_list)
44
  # st.write(ref_dict.keys())
45
  return [value for key, value in ref_dict.items() if key.lower().strip() in source_list]
 
 
 
 
 
 
 
 
 
 
46
 
47
 
48
  def doc_dialog_main():
@@ -74,13 +85,19 @@ def doc_dialog_main():
74
  if "chat_graph_history" not in st.session_state:
75
  st.session_state.chat_graph_history = []
76
 
 
77
  if "radio_choice" not in st.session_state:
78
  st.session_state.radio_choice = None
 
 
79
 
 
 
80
  options = ["compte_rendu","graphe de connaissance"]
81
  choice = st.radio("Choisissez une option",options,index=st.session_state.radio_choice,horizontal=True,label_visibility="collapsed")
82
- if choice:
83
  st.session_state.radio_choice = options.index(choice)
 
84
 
85
  audit = st.session_state.audit_simplified
86
  content = st.session_state.audit["content"]
@@ -186,7 +203,7 @@ def doc_dialog_main():
186
  # if col_copy_c.button("📋",key="copy_cr_chat"):
187
  with st.container(height=50,border=False):
188
  chat_formatted = chat_history_formatter(st.session_state.cr_chat_history)
189
- st_copy_to_clipboard(chat_formatted,key="cp_but_cr_chat")
190
  # col_success_c.success("Historique copié !")
191
 
192
  elif choice == "graphe de connaissance":
@@ -202,7 +219,10 @@ def doc_dialog_main():
202
  st.session_state.chat_graph_history = []
203
 
204
  node_types = get_node_types(graph[0])
205
- nodes_type_dict = list_to_dict_colors(node_types)
 
 
 
206
  st.session_state.node_types = nodes_type_dict
207
  st.session_state.filter_views["Vue par défaut"] = list(node_types)
208
  st.session_state.current_view = "Vue par défaut"
@@ -235,7 +255,9 @@ def doc_dialog_main():
235
  default_target_filter = filter_correspondance(st.session_state.filter_views[st.session_state.current_view],dict_filters)
236
  # st.write(default_target_filter)
237
  # st.write(dict_filters)
238
- target_filter = filter_correspondance(st.session_state.node_types.keys(),dict_filters)
 
 
239
  filter = filter_col.multiselect("Filtrer selon l'étiquette",target_filter,placeholder="Sélectionner une ou plusieurs étiquettes",default=default_target_filter,label_visibility="collapsed")
240
  filter = filter_correspondance(filter,dict_filters,reverse=True)
241
  if add_view_col.button("➕",help="Ajouter une vue"):
@@ -292,16 +314,11 @@ def doc_dialog_main():
292
  # col_copy_c , col_success_c = st.columns([1,7])
293
  # if col_copy_c.button("📋",key="copy_graph_chat"):
294
  with st.container(height=50,border=False):
295
- chat_formatted = chat_history_formatter(st.session_state.chat_graph_history)
296
- st_copy_to_clipboard(chat_formatted,key="cp_but_graph_chat")
297
  # col_success_c.success("Historique copié !")
298
 
299
 
300
 
301
-
302
-
303
-
304
-
305
  doc_dialog_main()
306
 
307
 
 
8
  from audit_page.knowledge_graph import *
9
  import json
10
  import clipboard
11
+ from time import sleep
12
 
13
  def graph_doc_to_json(graph):
14
  nodes = []
 
31
  formatted_chat = ""
32
  for message in chat_history:
33
  if isinstance(message, AIMessage):
34
+ formatted_chat += f"AI:{message.content}\n\n"
35
  elif isinstance(message, HumanMessage):
36
+ formatted_chat += f"Human:{message.content}\n\n"
37
  return formatted_chat
38
 
39
  def filter_correspondance(source_list:list[str],ref_dict:dict,reverse=False):
 
44
  # st.write(source_list)
45
  # st.write(ref_dict.keys())
46
  return [value for key, value in ref_dict.items() if key.lower().strip() in source_list]
47
+
48
+ @st.fragment()
49
+ def radio_choice():
50
+ options = ["compte_rendu","graphe de connaissance"]
51
+ choice = st.radio("Choisissez une option",options,index=st.session_state.radio_choice,horizontal=True,label_visibility="collapsed")
52
+ sleep(1)
53
+ if choice and options.index(choice) != st.session_state.radio_choice:
54
+ sleep(1)
55
+ st.session_state.radio_choice = options.index(choice)
56
+ return choice
57
 
58
 
59
  def doc_dialog_main():
 
85
  if "chat_graph_history" not in st.session_state:
86
  st.session_state.chat_graph_history = []
87
 
88
+ #init a radio button for the choice
89
  if "radio_choice" not in st.session_state:
90
  st.session_state.radio_choice = None
91
+ # if "choice" not in st.session_state:
92
+ # st.session_state.choice = st.radio("Choisissez une option",["compte_rendu","graphe de connaissance"],index=st.session_state.radio_choice,horizontal=True,label_visibility="collapsed")
93
 
94
+ # choice = radio_choice()
95
+
96
  options = ["compte_rendu","graphe de connaissance"]
97
  choice = st.radio("Choisissez une option",options,index=st.session_state.radio_choice,horizontal=True,label_visibility="collapsed")
98
+ if choice and options.index(choice) != st.session_state.radio_choice:
99
  st.session_state.radio_choice = options.index(choice)
100
+
101
 
102
  audit = st.session_state.audit_simplified
103
  content = st.session_state.audit["content"]
 
203
  # if col_copy_c.button("📋",key="copy_cr_chat"):
204
  with st.container(height=50,border=False):
205
  chat_formatted = chat_history_formatter(st.session_state.cr_chat_history)
206
+ st_copy_to_clipboard(chat_formatted,key="cp_but_cr_chat",show_text=False)
207
  # col_success_c.success("Historique copié !")
208
 
209
  elif choice == "graphe de connaissance":
 
219
  st.session_state.chat_graph_history = []
220
 
221
  node_types = get_node_types(graph[0])
222
+ list_node_types = list(node_types)
223
+ sorted_node_types = sorted(list_node_types,key=lambda x: x.lower())
224
+ print(sorted_node_types)
225
+ nodes_type_dict = list_to_dict_colors(sorted_node_types)
226
  st.session_state.node_types = nodes_type_dict
227
  st.session_state.filter_views["Vue par défaut"] = list(node_types)
228
  st.session_state.current_view = "Vue par défaut"
 
255
  default_target_filter = filter_correspondance(st.session_state.filter_views[st.session_state.current_view],dict_filters)
256
  # st.write(default_target_filter)
257
  # st.write(dict_filters)
258
+ sorted_default_target_filter = sorted(default_target_filter,key=lambda x: x.lower())
259
+ target_filter = filter_correspondance(list(st.session_state.node_types.keys()),dict_filters)
260
+ target_filter = sorted(target_filter,key=lambda x: x.lower())
261
  filter = filter_col.multiselect("Filtrer selon l'étiquette",target_filter,placeholder="Sélectionner une ou plusieurs étiquettes",default=default_target_filter,label_visibility="collapsed")
262
  filter = filter_correspondance(filter,dict_filters,reverse=True)
263
  if add_view_col.button("➕",help="Ajouter une vue"):
 
314
  # col_copy_c , col_success_c = st.columns([1,7])
315
  # if col_copy_c.button("📋",key="copy_graph_chat"):
316
  with st.container(height=50,border=False):
317
+ st_copy_to_clipboard(chat_history_formatter(st.session_state.chat_graph_history),key="cp_but_graph_chat",show_text=False)
 
318
  # col_success_c.success("Historique copié !")
319
 
320
 
321
 
 
 
 
 
322
  doc_dialog_main()
323
 
324
 
audit_page/knowledge_graph.py CHANGED
@@ -159,6 +159,13 @@ def change_view_dialog():
159
  st.rerun()
160
  if len(st.session_state.filter_views.keys()) > index:
161
  with col1.expander(item):
 
 
 
 
 
 
 
162
  st.markdown("\n".join(f"- {label.strip()}" for label in st.session_state.filter_views[item]))
163
  else:
164
  emp.empty()
 
159
  st.rerun()
160
  if len(st.session_state.filter_views.keys()) > index:
161
  with col1.expander(item):
162
+ if index > 0:
163
+ change_name = st.text_input("Nom de la vue", label_visibility="collapsed", placeholder="Changez le nom de la vue",key=f"change_name{index}")
164
+ if st.button("Renommer",key=f"rename{index}"):
165
+ if change_name != "":
166
+ st.session_state.filter_views[change_name] = st.session_state.filter_views.pop(item)
167
+ st.session_state.current_view = change_name
168
+ st.rerun()
169
  st.markdown("\n".join(f"- {label.strip()}" for label in st.session_state.filter_views[item]))
170
  else:
171
  emp.empty()