Docfile commited on
Commit
c96425b
·
verified ·
1 Parent(s): 1d2f614

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -0
app.py CHANGED
@@ -146,6 +146,9 @@ def get_conversation(conversation_id):
146
  return jsonify({'error': 'Conversation non trouvée'}), 404
147
  return jsonify(conversations[conversation_id])
148
 
 
 
 
149
  @app.route('/send_message', methods=['POST'])
150
  def send_message():
151
  """Traite l'envoi d'un message"""
@@ -161,6 +164,19 @@ def send_message():
161
  # Crée une nouvelle conversation si nécessaire
162
  if not conversation_id or conversation_id not in conversations:
163
  conversation_id = create_new_conversation()
 
 
 
 
 
 
 
 
 
 
 
 
 
164
 
165
  # Effectue une recherche web si activée
166
  search_results = ""
@@ -194,6 +210,38 @@ def send_message():
194
  print(f"Erreur lors de l'envoi du message: {e}")
195
  return jsonify({'error': str(e)}), 500
196
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  @app.route('/upload', methods=['POST'])
198
  def upload_file():
199
  """Gère l'upload de fichiers"""
 
146
  return jsonify({'error': 'Conversation non trouvée'}), 404
147
  return jsonify(conversations[conversation_id])
148
 
149
+
150
+ # Dans app.py, modifiez la fonction send_message :
151
+
152
  @app.route('/send_message', methods=['POST'])
153
  def send_message():
154
  """Traite l'envoi d'un message"""
 
164
  # Crée une nouvelle conversation si nécessaire
165
  if not conversation_id or conversation_id not in conversations:
166
  conversation_id = create_new_conversation()
167
+
168
+ # Récupère ou crée la session de chat
169
+ if conversation_id not in chat_sessions:
170
+ # Reconstruit l'historique complet pour Gemini
171
+ history = []
172
+ if conversation_id in conversations:
173
+ for msg in conversations[conversation_id]['messages']:
174
+ role = 'user' if msg['role'] == 'user' else 'model'
175
+ history.append({
176
+ 'role': role,
177
+ 'parts': [msg['content']]
178
+ })
179
+ chat_sessions[conversation_id] = model.start_chat(history=history)
180
 
181
  # Effectue une recherche web si activée
182
  search_results = ""
 
210
  print(f"Erreur lors de l'envoi du message: {e}")
211
  return jsonify({'error': str(e)}), 500
212
 
213
+ # Ajoutez cette nouvelle route pour gérer le changement de conversation
214
+ @app.route('/switch_conversation', methods=['POST'])
215
+ def switch_conversation():
216
+ """Gère le changement de conversation"""
217
+ try:
218
+ data = request.json
219
+ conversation_id = data.get('conversation_id')
220
+
221
+ if not conversation_id:
222
+ return jsonify({'error': 'ID de conversation manquant'}), 400
223
+
224
+ if conversation_id not in conversations:
225
+ return jsonify({'error': 'Conversation non trouvée'}), 404
226
+
227
+ # Recrée la session avec l'historique complet
228
+ history = []
229
+ for msg in conversations[conversation_id]['messages']:
230
+ role = 'user' if msg['role'] == 'user' else 'model'
231
+ history.append({
232
+ 'role': role,
233
+ 'parts': [msg['content']]
234
+ })
235
+
236
+ chat_sessions[conversation_id] = model.start_chat(history=history)
237
+
238
+ return jsonify({'success': True})
239
+
240
+ except Exception as e:
241
+ print(f"Erreur lors du changement de conversation: {e}")
242
+ return jsonify({'error': str(e)}), 500
243
+
244
+
245
  @app.route('/upload', methods=['POST'])
246
  def upload_file():
247
  """Gère l'upload de fichiers"""