Daly26 commited on
Commit
cbf8044
·
1 Parent(s): 53500db

Changement type stockage user

Browse files
Files changed (1) hide show
  1. LesChatsDeSeatech.py +18 -22
LesChatsDeSeatech.py CHANGED
@@ -138,20 +138,13 @@ def handle_role_selection(session_id, selected_role=None):
138
  if session_id not in conversation_history_global:
139
  conversation_history_global[session_id] = []
140
  print(f"Session {session_id} - Rôle sélectionné : {selected_role}")
141
- # Si un rôle est sélectionné, l'enregistrer dans la session
142
  if selected_role and selected_role in profile_mapping:
143
- # Marquer la session comme permanente pour la persister
144
- session.permanent = True
145
-
146
- # Créer un nouveau dictionnaire et l'assigner à session (crucial pour que Flask détecte les modifications)
147
- user_profile = {
148
  'role': selected_role,
149
  'confirmed': True
150
  }
151
- session['user_profile'] = user_profile
152
-
153
- # Force Flask à sauvegarder la session
154
- session.modified = True
155
 
156
  # Message de bienvenue personnalisé selon le rôle
157
  role_config = profile_mapping[selected_role]
@@ -168,7 +161,7 @@ def handle_role_selection(session_id, selected_role=None):
168
  })
169
 
170
  logger.info(f"Rôle '{selected_role}' confirmé pour la session {session_id}")
171
- logger.info(f"Session après confirmation: {dict(session)}")
172
  return selected_role
173
 
174
  return None
@@ -551,15 +544,15 @@ def search_similar_chunks_with_confirmed_role(query, index, is_faiss, embeddings
551
  # 3. Fonction pour vérifier si l'utilisateur a confirmé son rôle
552
  def is_role_confirmed(session_id):
553
  """Vérifie si l'utilisateur a confirmé son rôle."""
554
- user_profile = session.get('user_profile', {})
555
- confirmed = user_profile.get('confirmed', False)
556
- logger.info(f"Vérification rôle pour session {session_id}: user_profile={user_profile}, confirmed={confirmed}")
557
  return confirmed
558
 
559
  def get_confirmed_role(session_id):
560
  """Récupère le rôle confirmé de l'utilisateur."""
561
- user_profile = session.get('user_profile', {})
562
- return user_profile.get('role', None)
 
563
  def keyword_search(query, chunks_data, top_n=5):
564
  """Recherche par mots-clés en fallback."""
565
  query_terms = query.lower().split()
@@ -788,6 +781,7 @@ app.config['SESSION_COOKIE_HTTPONLY'] = True
788
  app.config['SESSION_COOKIE_SAMESITE'] = 'Lax'
789
  app.config['PERMANENT_SESSION_LIFETIME'] = 3600 # 1 heure
790
  conversation_history_global = {}
 
791
  # ajout Daly
792
 
793
  # Charger modèle Vosk une seule fois au démarrage
@@ -866,7 +860,9 @@ def index():
866
 
867
  conv = conversation_history_global.get(session_id, [])
868
  current_datetime = datetime.now()
869
- user_profile = session.get('user_profile', {})
 
 
870
 
871
  return render_template("index.html",
872
  conversation=conv,
@@ -1013,16 +1009,16 @@ def api_reset_role():
1013
  """Permet de réinitialiser le rôle sélectionné."""
1014
  session.permanent = True
1015
 
1016
- if 'user_profile' in session:
1017
- session.pop('user_profile')
1018
- session.modified = True
1019
-
1020
  if 'session_id' in session:
1021
  session_id = session['session_id']
 
 
 
 
1022
  if session_id in conversation_history_global:
1023
  conversation_history_global[session_id] = []
 
1024
 
1025
- logger.info(f"Rôle réinitialisé pour la session {session.get('session_id')}")
1026
  return jsonify({
1027
  "response": "<p>Rôle réinitialisé. Veuillez sélectionner votre nouveau profil.</p>",
1028
  "role_confirmed": False,
 
138
  if session_id not in conversation_history_global:
139
  conversation_history_global[session_id] = []
140
  print(f"Session {session_id} - Rôle sélectionné : {selected_role}")
141
+ # Si un rôle est sélectionné, l'enregistrer dans le dictionnaire global
142
  if selected_role and selected_role in profile_mapping:
143
+ # Stocker le profil dans le dictionnaire global (plus fiable que Flask Session)
144
+ user_profiles_global[session_id] = {
 
 
 
145
  'role': selected_role,
146
  'confirmed': True
147
  }
 
 
 
 
148
 
149
  # Message de bienvenue personnalisé selon le rôle
150
  role_config = profile_mapping[selected_role]
 
161
  })
162
 
163
  logger.info(f"Rôle '{selected_role}' confirmé pour la session {session_id}")
164
+ logger.info(f"user_profiles_global après confirmation: {user_profiles_global}")
165
  return selected_role
166
 
167
  return None
 
544
  # 3. Fonction pour vérifier si l'utilisateur a confirmé son rôle
545
  def is_role_confirmed(session_id):
546
  """Vérifie si l'utilisateur a confirmé son rôle."""
547
+ confirmed = session_id in user_profiles_global and user_profiles_global[session_id].get('confirmed', False)
548
+ logger.info(f"Vérification rôle pour session {session_id}: {confirmed}, profils={user_profiles_global}")
 
549
  return confirmed
550
 
551
  def get_confirmed_role(session_id):
552
  """Récupère le rôle confirmé de l'utilisateur."""
553
+ if session_id in user_profiles_global:
554
+ return user_profiles_global[session_id].get('role', None)
555
+ return None
556
  def keyword_search(query, chunks_data, top_n=5):
557
  """Recherche par mots-clés en fallback."""
558
  query_terms = query.lower().split()
 
781
  app.config['SESSION_COOKIE_SAMESITE'] = 'Lax'
782
  app.config['PERMANENT_SESSION_LIFETIME'] = 3600 # 1 heure
783
  conversation_history_global = {}
784
+ user_profiles_global = {} # Stocker les profils utilisateur plutôt que dans la session Flask
785
  # ajout Daly
786
 
787
  # Charger modèle Vosk une seule fois au démarrage
 
860
 
861
  conv = conversation_history_global.get(session_id, [])
862
  current_datetime = datetime.now()
863
+ user_profile = user_profiles_global.get(session_id, {})
864
+
865
+ logger.info(f"Route / render_template - session_id: {session_id}, user_profile: {user_profile}")
866
 
867
  return render_template("index.html",
868
  conversation=conv,
 
1009
  """Permet de réinitialiser le rôle sélectionné."""
1010
  session.permanent = True
1011
 
 
 
 
 
1012
  if 'session_id' in session:
1013
  session_id = session['session_id']
1014
+ # Supprimer le profil du dictionnaire global
1015
+ if session_id in user_profiles_global:
1016
+ del user_profiles_global[session_id]
1017
+ # Vider l'historique de conversation
1018
  if session_id in conversation_history_global:
1019
  conversation_history_global[session_id] = []
1020
+ logger.info(f"Rôle réinitialisé pour la session {session_id}")
1021
 
 
1022
  return jsonify({
1023
  "response": "<p>Rôle réinitialisé. Veuillez sélectionner votre nouveau profil.</p>",
1024
  "role_confirmed": False,