Daly26 commited on
Commit
b88d33f
·
1 Parent(s): 78d1ed2

test session

Browse files
Files changed (2) hide show
  1. LesChatsDeSeatech.py +0 -21
  2. templates/index.html +5 -36
LesChatsDeSeatech.py CHANGED
@@ -140,17 +140,11 @@ def handle_role_selection(session_id, selected_role=None):
140
 
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
  if 'user_profile' not in session:
147
  session['user_profile'] = {}
148
  session['user_profile']['role'] = selected_role
149
  session['user_profile']['confirmed'] = True
150
 
151
- # Force Flask à sauvegarder la session
152
- session.modified = True
153
-
154
  # Message de bienvenue personnalisé selon le rôle
155
  role_config = profile_mapping[selected_role]
156
  welcome_message = f"""
@@ -165,7 +159,6 @@ def handle_role_selection(session_id, selected_role=None):
165
  "is_system_message": True
166
  })
167
 
168
- logger.info(f"Rôle '{selected_role}' confirmé pour la session {session_id}")
169
  return selected_role
170
 
171
  return None
@@ -778,10 +771,6 @@ search_index, use_faiss = setup_search_index(chunk_embeddings)
778
  # ===== APPLICATION FLASK =====
779
  app = Flask(__name__, static_folder="static", template_folder="templates")
780
  app.secret_key = 'seatech_chat_secret_key'
781
- app.config['SESSION_COOKIE_SECURE'] = False # Important pour développement/HTTP
782
- app.config['SESSION_COOKIE_HTTPONLY'] = True
783
- app.config['SESSION_COOKIE_SAMESITE'] = 'Lax'
784
- app.config['PERMANENT_SESSION_LIFETIME'] = 3600 # 1 heure
785
  conversation_history_global = {}
786
  # ajout Daly
787
 
@@ -794,11 +783,8 @@ vosk_model = vosk.Model("models/vosk-model-small-fr-0.22")
794
  @app.route("/", methods=["GET", "POST"])
795
  def index():
796
  """Page d'accueil du chatbot avec gestion de la sélection de rôle."""
797
- session.permanent = True
798
-
799
  if 'session_id' not in session:
800
  session['session_id'] = str(uuid.uuid4())
801
- session.modified = True
802
  session_id = session['session_id']
803
 
804
  if session_id not in conversation_history_global:
@@ -870,7 +856,6 @@ def index():
870
  @app.route("/api/ask", methods=["POST"])
871
  def api_ask():
872
  """Endpoint API pour la recherche avec gestion de rôle."""
873
- session.permanent = True
874
  start_time = time.time()
875
  try:
876
  data = request.get_json()
@@ -890,7 +875,6 @@ def api_ask():
890
  # Gestion de la session
891
  if 'session_id' not in session:
892
  session['session_id'] = str(uuid.uuid4())
893
- session.modified = True
894
  session_id = session['session_id']
895
  if session_id not in conversation_history_global:
896
  conversation_history_global[session_id] = []
@@ -898,7 +882,6 @@ def api_ask():
898
  # Gérer la sélection de rôle
899
  if role_selection:
900
  handle_role_selection(session_id, role_selection)
901
- logger.info(f"Rôle {role_selection} sélectionné via API pour session {session_id}")
902
  return jsonify({
903
  "response": f"<p>Rôle <strong>{role_selection}</strong> sélectionné avec succès ! Vous pouvez maintenant poser vos questions.</p>",
904
  "role_confirmed": True,
@@ -995,18 +978,14 @@ def api_role_info():
995
  @app.route("/api/reset-role", methods=["POST"])
996
  def api_reset_role():
997
  """Permet de réinitialiser le rôle sélectionné."""
998
- session.permanent = True
999
-
1000
  if 'user_profile' in session:
1001
  session.pop('user_profile')
1002
- session.modified = True
1003
 
1004
  if 'session_id' in session:
1005
  session_id = session['session_id']
1006
  if session_id in conversation_history_global:
1007
  conversation_history_global[session_id] = []
1008
 
1009
- logger.info(f"Rôle réinitialisé pour la session {session.get('session_id')}")
1010
  return jsonify({
1011
  "response": "<p>Rôle réinitialisé. Veuillez sélectionner votre nouveau profil.</p>",
1012
  "role_confirmed": False,
 
140
 
141
  # Si un rôle est sélectionné, l'enregistrer dans la session
142
  if selected_role and selected_role in profile_mapping:
 
 
 
143
  if 'user_profile' not in session:
144
  session['user_profile'] = {}
145
  session['user_profile']['role'] = selected_role
146
  session['user_profile']['confirmed'] = True
147
 
 
 
 
148
  # Message de bienvenue personnalisé selon le rôle
149
  role_config = profile_mapping[selected_role]
150
  welcome_message = f"""
 
159
  "is_system_message": True
160
  })
161
 
 
162
  return selected_role
163
 
164
  return None
 
771
  # ===== APPLICATION FLASK =====
772
  app = Flask(__name__, static_folder="static", template_folder="templates")
773
  app.secret_key = 'seatech_chat_secret_key'
 
 
 
 
774
  conversation_history_global = {}
775
  # ajout Daly
776
 
 
783
  @app.route("/", methods=["GET", "POST"])
784
  def index():
785
  """Page d'accueil du chatbot avec gestion de la sélection de rôle."""
 
 
786
  if 'session_id' not in session:
787
  session['session_id'] = str(uuid.uuid4())
 
788
  session_id = session['session_id']
789
 
790
  if session_id not in conversation_history_global:
 
856
  @app.route("/api/ask", methods=["POST"])
857
  def api_ask():
858
  """Endpoint API pour la recherche avec gestion de rôle."""
 
859
  start_time = time.time()
860
  try:
861
  data = request.get_json()
 
875
  # Gestion de la session
876
  if 'session_id' not in session:
877
  session['session_id'] = str(uuid.uuid4())
 
878
  session_id = session['session_id']
879
  if session_id not in conversation_history_global:
880
  conversation_history_global[session_id] = []
 
882
  # Gérer la sélection de rôle
883
  if role_selection:
884
  handle_role_selection(session_id, role_selection)
 
885
  return jsonify({
886
  "response": f"<p>Rôle <strong>{role_selection}</strong> sélectionné avec succès ! Vous pouvez maintenant poser vos questions.</p>",
887
  "role_confirmed": True,
 
978
  @app.route("/api/reset-role", methods=["POST"])
979
  def api_reset_role():
980
  """Permet de réinitialiser le rôle sélectionné."""
 
 
981
  if 'user_profile' in session:
982
  session.pop('user_profile')
 
983
 
984
  if 'session_id' in session:
985
  session_id = session['session_id']
986
  if session_id in conversation_history_global:
987
  conversation_history_global[session_id] = []
988
 
 
989
  return jsonify({
990
  "response": "<p>Rôle réinitialisé. Veuillez sélectionner votre nouveau profil.</p>",
991
  "role_confirmed": False,
templates/index.html CHANGED
@@ -380,50 +380,25 @@
380
  if (confirmRoleBtn) {
381
  confirmRoleBtn.addEventListener('click', function () {
382
  if (selectedRole) {
383
- console.log('Envoi de la sélection de rôle:', selectedRole);
384
- confirmRoleBtn.disabled = true;
385
- confirmRoleBtn.textContent = 'En cours...';
386
-
387
  fetch('/api/ask', {
388
  method: 'POST',
389
  headers: { 'Content-Type': 'application/json' },
390
  body: JSON.stringify({ role_selection: selectedRole }),
391
  credentials: 'same-origin'
392
  })
393
- .then(response => {
394
- console.log('Réponse status:', response.status);
395
- return response.json();
396
- })
397
  .then(data => {
398
- console.log('Données reçues:', data);
399
  if (data.status === 'role_selected') {
400
- console.log('Rôle sélectionné avec succès, rechargement...');
401
- // Attendre 500ms avant de recharger pour assurer la sauvegarde de la session
402
- setTimeout(() => {
403
- window.location.href = window.location.origin + '/';
404
- }, 500);
405
- } else {
406
- console.error('Erreur: statut inattendu', data);
407
- alert('Erreur lors de la sélection du rôle. Veuillez réessayer.');
408
- confirmRoleBtn.disabled = false;
409
- confirmRoleBtn.textContent = '✓ Confirmer mon profil';
410
  }
411
  })
412
- .catch(error => {
413
- console.error('Erreur lors de la sélection de rôle:', error);
414
- alert('Erreur réseau: ' + error.message);
415
- confirmRoleBtn.disabled = false;
416
- confirmRoleBtn.textContent = '✓ Confirmer mon profil';
417
- });
418
  }
419
  });
420
  }
421
 
422
  if (resetRoleBtn) {
423
  resetRoleBtn.addEventListener('click', function () {
424
- console.log('Réinitialisation du rôle...');
425
- resetRoleBtn.disabled = true;
426
-
427
  fetch('/api/reset-role', {
428
  method: 'POST',
429
  headers: { 'Content-Type': 'application/json' },
@@ -431,17 +406,11 @@
431
  })
432
  .then(response => response.json())
433
  .then(data => {
434
- console.log('Réponse réinitialisation:', data);
435
  if (data.status === 'role_reset') {
436
- setTimeout(() => {
437
- window.location.href = window.location.origin + '/';
438
- }, 500);
439
  }
440
  })
441
- .catch(error => {
442
- console.error('Erreur lors de la réinitialisation:', error);
443
- resetRoleBtn.disabled = false;
444
- });
445
  });
446
  }
447
 
 
380
  if (confirmRoleBtn) {
381
  confirmRoleBtn.addEventListener('click', function () {
382
  if (selectedRole) {
 
 
 
 
383
  fetch('/api/ask', {
384
  method: 'POST',
385
  headers: { 'Content-Type': 'application/json' },
386
  body: JSON.stringify({ role_selection: selectedRole }),
387
  credentials: 'same-origin'
388
  })
389
+ .then(response => response.json())
 
 
 
390
  .then(data => {
 
391
  if (data.status === 'role_selected') {
392
+ window.location.reload();
 
 
 
 
 
 
 
 
 
393
  }
394
  })
395
+ .catch(error => console.error('Erreur lors de la sélection de rôle:', error));
 
 
 
 
 
396
  }
397
  });
398
  }
399
 
400
  if (resetRoleBtn) {
401
  resetRoleBtn.addEventListener('click', function () {
 
 
 
402
  fetch('/api/reset-role', {
403
  method: 'POST',
404
  headers: { 'Content-Type': 'application/json' },
 
406
  })
407
  .then(response => response.json())
408
  .then(data => {
 
409
  if (data.status === 'role_reset') {
410
+ window.location.reload();
 
 
411
  }
412
  })
413
+ .catch(error => console.error('Erreur lors de la réinitialisation:', error));
 
 
 
414
  });
415
  }
416