From 326271511115db100d20ce532411265f15ff8fe3 Mon Sep 17 00:00:00 2001 From: Ladebeze66 Date: Fri, 25 Apr 2025 16:06:46 +0200 Subject: [PATCH] 2504-16:06OCRagent --- agents/llama_vision/agent_image_analyser.py | 39 ++++++++++++++++----- 1 file changed, 30 insertions(+), 9 deletions(-) diff --git a/agents/llama_vision/agent_image_analyser.py b/agents/llama_vision/agent_image_analyser.py index e186828..4b253a0 100644 --- a/agents/llama_vision/agent_image_analyser.py +++ b/agents/llama_vision/agent_image_analyser.py @@ -512,19 +512,40 @@ Structure your analysis clearly with headers and bullet points. try: # Obtenir directement le nom normalisé du modèle depuis l'instance LLM - normalized_model_name = getattr(self.llm, "pipeline_normalized_name", None) - if normalized_model_name: - logger.info(f"Utilisation du nom de modèle normalisé depuis LLM: {normalized_model_name}") + # Utiliser getattr avec une valeur par défaut pour éviter les AttributeError + # Si LLM est None, utiliser une valeur par défaut + if not self.llm: + logger.warning("LLM est None, utilisation du nom de modèle par défaut") + normalized_model_name = "llama3-vision-90b-instruct" else: - # Fallback : utiliser le nom du modèle de l'instance LLM - normalized_model_name = getattr(self.llm, "modele", "llama3-vision-90b-instruct") - # Normaliser manuellement + # Vérifier d'abord pipeline_normalized_name puis modele + normalized_model_name = getattr(self.llm, "pipeline_normalized_name", None) + if not normalized_model_name: + # Fallback : utiliser le nom du modèle de l'instance LLM + normalized_model_name = getattr(self.llm, "modele", None) + if not normalized_model_name: + # Si aucun nom n'est trouvé, utiliser le type de l'objet + normalized_model_name = str(type(self.llm).__name__) + logger.warning(f"Aucun nom de modèle trouvé, utilisation du type: {normalized_model_name}") + + # Normaliser manuellement (dans tous les cas) normalized_model_name = normalized_model_name.replace(".", "-").replace(":", "-").replace("_", "-") - logger.info(f"Fallback : utilisation du nom de modèle normalisé manuellement: {normalized_model_name}") + # S'assurer que le nom n'est pas vide + if not normalized_model_name or normalized_model_name == "None": + normalized_model_name = "llama3-vision-90b-instruct" + + logger.info(f"Nom de modèle normalisé pour la sauvegarde: {normalized_model_name}") + + # Vérifier que le nom ne contient pas "unknown" + if "unknown" in normalized_model_name.lower(): + logger.warning(f"Nom de modèle contient 'unknown', remplacement par nom par défaut") + normalized_model_name = "llama3-vision-90b-instruct" # Normaliser les noms de modèles dans tous les résultats for result in self.resultats: - if "model_info" in result and "model" in result["model_info"]: + if "model_info" in result: + if not isinstance(result["model_info"], dict): + result["model_info"] = {} # Utiliser le nom de modèle normalisé pour tous les résultats result["model_info"]["model"] = normalized_model_name logger.debug(f"Nom de modèle défini pour un résultat: {normalized_model_name}") @@ -541,7 +562,7 @@ Structure your analysis clearly with headers and bullet points. base_dir=None, is_resultat=True ) - print(f"Sauvegarde groupée de {len(self.resultats)} résultats d'analyse d'images") + logger.info(f"Sauvegarde groupée de {len(self.resultats)} résultats d'analyse d'images avec le modèle {normalized_model_name}") # Vérifier si les fichiers ont été créés avec le bon nom from os import path, listdir