Andy Esnard 1 anno fa
parent
commit
33920599cc
1 ha cambiato i file con 0 aggiunte e 93 eliminazioni
  1. 0 93
      history.py

+ 0 - 93
history.py

@@ -1,93 +0,0 @@
-# Gérer le chargement et la sauvegarde de l'historique des conversations.
-
-import os
-import json
-from logger import logger
-from config import CONVERSATION_HISTORY_FILE, PERSONALITY_PROMPT
-
-# Variable globale pour l'historique des conversations
-conversation_history = []
-
-# Constantes pour les limites de l'historique
-STANDARD_HISTORY_LIMIT = 150
-IMAGE_ANALYSIS_HISTORY_LIMIT = 15
-IMAGE_ANALYSIS_MARKER = "__IMAGE_ANALYSIS__:"
-
-def load_conversation_history():
-    global conversation_history
-    if os.path.isfile(CONVERSATION_HISTORY_FILE):
-        try:
-            with open(CONVERSATION_HISTORY_FILE, 'r', encoding='utf-8') as f:
-                loaded_history = json.load(f)
-                # Exclure le PERSONALITY_PROMPT
-                filtered_history = [
-                    msg for msg in loaded_history
-                    if not (msg.get("role") == "system" and msg.get("content") == PERSONALITY_PROMPT)
-                ]
-                # Modifier la liste en place
-                conversation_history.clear()
-                conversation_history.extend(filtered_history)
-            logger.info(f"Historique chargé depuis {CONVERSATION_HISTORY_FILE} : {len(loaded_history)} messages, {len(conversation_history)} après filtrage.")
-        except Exception as e:
-            logger.error(f"Erreur lors du chargement de l'historique : {e}")
-            conversation_history = []
-    else:
-        logger.info(f"Aucun fichier d'historique trouvé. Un nouveau fichier sera créé à {CONVERSATION_HISTORY_FILE}")
-
-def save_conversation_history():
-    try:
-        with open(CONVERSATION_HISTORY_FILE, 'w', encoding='utf-8') as f:
-            json.dump(conversation_history, f, ensure_ascii=False, indent=4)
-    except Exception as e:
-        logger.error(f"Erreur lors de la sauvegarde de l'historique : {e}")
-
-async def add_to_conversation_history(new_message):
-    global conversation_history
-    # Ne pas ajouter le PERSONALITY_PROMPT à l'historique
-    if new_message.get("role") == "system" and new_message.get("content") == PERSONALITY_PROMPT:
-        logger.debug("PERSONALITY_PROMPT système non ajouté à l'historique.")
-        return
-
-    is_image_analysis = new_message.get("role") == "system" and new_message.get("content", "").startswith(IMAGE_ANALYSIS_MARKER)
-
-    if is_image_analysis:
-    	# Supprimer toutes les analyses d'images précédentes
-    	before_count = len(conversation_history)
-    	conversation_history = [
-    		msg for msg in conversation_history
-    		if not (msg.get("role") == "system" and msg.get("content", "").startswith(IMAGE_ANALYSIS_MARKER))
-    	]
-    	after_count = len(conversation_history)
-    	if before_count != after_count:
-    		logger.info("Les analyses d'images précédentes ont été supprimées avant d'ajouter la nouvelle analyse.")
-
-    # Ajouter le nouveau message
-    conversation_history.append(new_message)
-    logger.debug(f"Message ajouté à l'historique. Taille actuelle : {len(conversation_history)}")
-
-    # Si le message ajouté est une analyse d'image, rien de plus à faire
-    if is_image_analysis:
-    	pass
-    else:
-    	# Vérifier et supprimer les analyses d'images dépassées
-    	# Parcourir l'historique pour trouver les analyses d'images
-    	indices_to_remove = []
-    	for i, msg in enumerate(conversation_history):
-    		if msg.get("role") == "system" and msg.get("content", "").startswith(IMAGE_ANALYSIS_MARKER):
-    			# Calculer le nombre de messages après cette analyse
-    			messages_after = len(conversation_history) - i - 1
-    			if messages_after >= IMAGE_ANALYSIS_HISTORY_LIMIT:
-    				indices_to_remove.append(i)
-
-    	# Supprimer les analyses d'images identifiées
-    	for i in reversed(indices_to_remove):
-    		del conversation_history[i]
-    		logger.info(f"Analyse d'image à l'index {i} supprimée après {IMAGE_ANALYSIS_HISTORY_LIMIT} nouveaux messages.")
-
-    # Limiter l'historique à STANDARD_HISTORY_LIMIT messages
-    if len(conversation_history) > STANDARD_HISTORY_LIMIT:
-        excess_messages = len(conversation_history) - STANDARD_HISTORY_LIMIT
-        conversation_history = conversation_history[excess_messages:]
-        logger.debug(f"{excess_messages} messages les plus anciens ont été supprimés pour maintenir l'historique à {STANDARD_HISTORY_LIMIT} messages.")
-
-    save_conversation_history()