Ajout print pour voir si role sélectionné
Browse files- LesChatsDeSeatech.py +22 -0
LesChatsDeSeatech.py
CHANGED
|
@@ -140,11 +140,17 @@ def handle_role_selection(session_id, selected_role=None):
|
|
| 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 |
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,6 +165,7 @@ def handle_role_selection(session_id, selected_role=None):
|
|
| 159 |
"is_system_message": True
|
| 160 |
})
|
| 161 |
|
|
|
|
| 162 |
return selected_role
|
| 163 |
|
| 164 |
return None
|
|
@@ -771,6 +778,10 @@ search_index, use_faiss = setup_search_index(chunk_embeddings)
|
|
| 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,8 +794,11 @@ vosk_model = vosk.Model("models/vosk-model-small-fr-0.22")
|
|
| 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,6 +870,7 @@ def index():
|
|
| 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,6 +890,7 @@ def api_ask():
|
|
| 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,6 +898,7 @@ def api_ask():
|
|
| 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,
|
|
@@ -976,16 +993,21 @@ def api_role_info():
|
|
| 976 |
"status": "success"
|
| 977 |
})
|
| 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,
|
|
|
|
| 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 |
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 |
"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 |
# ===== 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 |
@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 |
@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 |
# 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 |
# 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,
|
|
|
|
| 993 |
"status": "success"
|
| 994 |
})
|
| 995 |
@app.route("/api/reset-role", methods=["POST"])
|
| 996 |
+
@app.route("/api/reset-role", methods=["POST"])
|
| 997 |
def api_reset_role():
|
| 998 |
"""Permet de réinitialiser le rôle sélectionné."""
|
| 999 |
+
session.permanent = True
|
| 1000 |
+
|
| 1001 |
if 'user_profile' in session:
|
| 1002 |
session.pop('user_profile')
|
| 1003 |
+
session.modified = True
|
| 1004 |
|
| 1005 |
if 'session_id' in session:
|
| 1006 |
session_id = session['session_id']
|
| 1007 |
if session_id in conversation_history_global:
|
| 1008 |
conversation_history_global[session_id] = []
|
| 1009 |
|
| 1010 |
+
logger.info(f"Rôle réinitialisé pour la session {session.get('session_id')}")
|
| 1011 |
return jsonify({
|
| 1012 |
"response": "<p>Rôle réinitialisé. Veuillez sélectionner votre nouveau profil.</p>",
|
| 1013 |
"role_confirmed": False,
|