From 1f3c4bf2ec80f5ebf0a91ebe332ccbad6a34cbae Mon Sep 17 00:00:00 2001 From: Ladebeze66 Date: Thu, 24 Apr 2025 13:57:57 +0200 Subject: [PATCH] 2404-13:57 --- ...3.2-vision_90b-instruct-q8_0_exchanges.csv | 8 ++--- agents/llama_vision/agent_image_sorter.py | 22 ++++++------ orchestrator_llama.py | 34 +++++++++++++++++-- .../analyse_image_unknown_model_results.json | 26 ++++++++++++++ .../analyse_image_unknown_model_results.txt | 18 ++++++++++ ...a3-2-vision-90b-instruct-q8-0_results.json | 2 +- ...962ed21795c4e943fcb8cb84fd4d7465a.jpg.json | 2 +- ...20e0e112c46b4440cc938f74d10934e98.gif.json | 2 +- .../pipeline/ocr_traduction/image.png.json | 2 +- .../ocr_traduction/image_145435.png.json | 2 +- ...inal_llama3-2-vision-90b-instruct-q8-0.txt | 22 +++++++----- ...al_llama3-vision-90b-instruct_results.json | 10 +++--- ...nal_llama3-vision-90b-instruct_results.txt | 22 +++++++----- ...ge_llama3-vision-90b-instruct_results.json | 8 ++--- reports/T11143/rapport_final_T11143.txt | 22 +++++++----- 15 files changed, 145 insertions(+), 57 deletions(-) create mode 100644 output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_image_unknown_model_results.json create mode 100644 output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_image_unknown_model_results.txt diff --git a/CSV/T11143/T11143_llama3.2-vision_90b-instruct-q8_0_exchanges.csv b/CSV/T11143/T11143_llama3.2-vision_90b-instruct-q8_0_exchanges.csv index b160e7f..f5dd607 100644 --- a/CSV/T11143/T11143_llama3.2-vision_90b-instruct-q8_0_exchanges.csv +++ b/CSV/T11143/T11143_llama3.2-vision_90b-instruct-q8_0_exchanges.csv @@ -1,5 +1,5 @@ Émetteur,Type,Date,Contenu,Éléments visuels -Victor Bollée,Question,2025-04-24 11:50:40,"Le test ""bleu"" ne fonctionne pas comme prévu. J'ai joint une capture d'écran (image_145435.png) pour référence.",Image_145435.png (capture d'écran du problème) -Équipe de soutien,Réponse,2025-04-24 12:00:00,Pouvez-vous fournir plus d'informations sur le message d'erreur que vous recevez? Pouvez-vous également joindre une autre capture d'écran avec les détails d'erreur?,- -Victor Bollée,Réponse,2025-04-24 12:10:00,"J'ai joint une autre capture d'écran (image.png) avec les détails d'erreur. Le message d'erreur est ""Erreur pendant l'analyse:"" Llamavision ""L'objet n'a pas d'attribut 'can_analyse_images'""",image.png (capture d'écran du message d'erreur) -Équipe de soutien,Réponse,2025-04-24 12:20:00,Merci d'avoir fourni les informations nécessaires. Nous avons identifié le problème et fourni une solution. Le problème a été résolu en mettant à jour la bibliothèque Llamavision vers la dernière version.,- +Victor Bollée,Question,2025-04-24 13:50:51,"Le test ""bleu"" ne fonctionne pas comme prévu. J'ai joint une capture d'écran (image_145435.png).",Image_145435.png (capture d'écran du problème) +Support,Réponse,2025-04-24 14:00:00,Pouvez-vous fournir plus d'informations sur le message d'erreur que vous recevez? Pouvez-vous également joindre une autre capture d'écran avec les détails d'erreur?,- +Victor Bollée,Réponse,2025-04-24 14:10:00,"J'ai joint une autre capture d'écran (image.png) avec les détails d'erreur. Le message d'erreur est ""Erreur lors de l'analyse:"" Llamavision ""L'objet n'a pas d'attribut 'can_analyse_images'"".",image.png (capture d'écran des détails d'erreur) +Support,Réponse,2025-04-24 14:20:00,Merci d'avoir fourni les informations nécessaires. Nous avons identifié le problème et fourni une solution. Le problème était dû à un attribut manquant dans l'objet Llamavision. Nous avons mis à jour le code et le problème devrait être résolu maintenant.,- diff --git a/agents/llama_vision/agent_image_sorter.py b/agents/llama_vision/agent_image_sorter.py index 8cbd1a6..018bff3 100644 --- a/agents/llama_vision/agent_image_sorter.py +++ b/agents/llama_vision/agent_image_sorter.py @@ -176,12 +176,13 @@ DO NOT attempt to perform OCR or analyze text - focus only on the image format a image_name = os.path.basename(image_path) print(f" AgentImageSorter: Évaluation de {image_name}") - if not self._verifier_image(image_path): - result = self._erreur("Erreur d'accès ou format d'image invalide", image_path) - self.resultats.append(result) - return result - try: + if not self._verifier_image(image_path): + result = self._erreur("Erreur d'accès ou format d'image invalide", image_path) + self.resultats.append(result) + print(f" Décision: Image {image_name} non pertinente (erreur de vérification)") + return result + # Extraction du ticket ID pour la sauvegarde ticket_id = self._extraire_ticket_id_depuis_path(image_path) @@ -189,17 +190,17 @@ DO NOT attempt to perform OCR or analyze text - focus only on the image format a prompt = self._generer_prompt(ocr_context) # Utilisation directe de la vision pour l'analyse d'image - if hasattr(self.llm, "interroger_avec_image"): - response = self.llm.interroger_avec_image(image_path, prompt) - else: + if not hasattr(self.llm, "interroger_avec_image"): result = self._erreur("Le modèle ne supporte pas les images", image_path) self.resultats.append(result) + print(f" Décision: Image {image_name} non pertinente (modèle non compatible)") return result - # Analyse de la réponse - if "i cannot" in response.lower() or "unable to" in response.lower(): + response = self.llm.interroger_avec_image(image_path, prompt) + if not response or "i cannot" in response.lower() or "unable to" in response.lower(): result = self._erreur("Réponse du modèle invalide", image_path, raw=response) self.resultats.append(result) + print(f" Décision: Image {image_name} non pertinente (réponse invalide)") return result is_relevant, reason = self._analyser_reponse(response) @@ -244,6 +245,7 @@ DO NOT attempt to perform OCR or analyze text - focus only on the image format a except Exception as e: result = self._erreur(f"Erreur inattendue: {str(e)}", image_path) self.resultats.append(result) + print(f" Décision: Image {image_name} non pertinente (erreur inattendue)") return result def _erreur(self, message: str, path: str, raw: str = "") -> Dict[str, Any]: diff --git a/orchestrator_llama.py b/orchestrator_llama.py index 87faeb9..c430fae 100644 --- a/orchestrator_llama.py +++ b/orchestrator_llama.py @@ -246,6 +246,7 @@ class OrchestratorLlamaVision: # Analyser les images pertinentes avec l'agent d'analyse d'images if self.image_analyser and ticket_analysis: + analyses_resultats = [] # Pour accumuler les résultats for img in relevant_images: try: # Intégrer les résultats de l'OCR dans le contexte @@ -254,16 +255,45 @@ class OrchestratorLlamaVision: result = self.image_analyser.executer(img, contexte=contexte_enrichi) images_analyses[img]["analysis"] = result + if result: + analyses_resultats.append(result) except Exception as e: - logger.warning(f"Erreur analyse image {os.path.basename(img)}: {e}") + logger.error(f"Erreur analyse image {os.path.basename(img)}: {e}") + if self.config.get("debug_mode"): + logger.error(traceback.format_exc()) + + # Sauvegarder les résultats d'analyse d'images + if analyses_resultats: + try: + from agents.utils.pipeline_logger import sauvegarder_donnees + sauvegarder_donnees( + ticket_id=ticket_id, + step_name="analyse_image", + data=analyses_resultats, + base_dir=rapport_dir, + is_resultat=True + ) + logger.info(f"Sauvegarde de {len(analyses_resultats)} analyses d'images effectuée") + except Exception as e: + logger.error(f"Erreur lors de la sauvegarde des analyses d'images: {e}") + if self.config.get("debug_mode"): + logger.error(traceback.format_exc()) if self.report_generator and ticket_analysis: try: + # Normaliser le nom du modèle pour éviter les doublons de rapports + model_name = self.config.get("model_name", "").replace(".", "-").replace(":", "-").replace("_", "-") + if not model_name: + model_name = "llama3-vision-90b-instruct" + rapport_data = { "ticket_id": ticket_id, "ticket_data": ticket_data, "ticket_analyse": ticket_analysis, - "analyse_images": images_analyses + "analyse_images": images_analyses, + "metadata": { + "model_name": model_name + } } # Utiliser directement le répertoire rapports_dir au lieu de recréer un chemin diff --git a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_image_unknown_model_results.json b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_image_unknown_model_results.json new file mode 100644 index 0000000..194603a --- /dev/null +++ b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_image_unknown_model_results.json @@ -0,0 +1,26 @@ +[ + { + "analyse": "ERROR: Erreur lors de l'analyse: 'LlamaVision' object has no attribute 'peut_analyser_images'", + "raw_response": "", + "error": true, + "metadata": { + "image_path": "output/ticket_T11143/T11143_20250422_084617/attachments/image.png", + "image_name": "image.png", + "timestamp": "20250424_135150", + "error": true, + "source_agent": "AgentImageAnalyser" + } + }, + { + "analyse": "ERROR: Erreur lors de l'analyse: 'LlamaVision' object has no attribute 'peut_analyser_images'", + "raw_response": "", + "error": true, + "metadata": { + "image_path": "output/ticket_T11143/T11143_20250422_084617/attachments/image_145435.png", + "image_name": "image_145435.png", + "timestamp": "20250424_135150", + "error": true, + "source_agent": "AgentImageAnalyser" + } + } +] \ No newline at end of file diff --git a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_image_unknown_model_results.txt b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_image_unknown_model_results.txt new file mode 100644 index 0000000..d655e13 --- /dev/null +++ b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_image_unknown_model_results.txt @@ -0,0 +1,18 @@ +RÉSULTATS DE L'ANALYSE ANALYSE_IMAGE - TICKET T11143 +================================================================================ + +--- ÉLÉMENT 1 --- + +ERROR: Erreur lors de l'analyse: 'LlamaVision' object has no attribute 'peut_analyser_images' + +---------------------------------------- + +--- ÉLÉMENT 2 --- + +ERROR: Erreur lors de l'analyse: 'LlamaVision' object has no attribute 'peut_analyser_images' + +---------------------------------------- + + +================================================================================ +Fichier original: analyse_image_unknown_model_results.json \ No newline at end of file diff --git a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_ticket_llama3-2-vision-90b-instruct-q8-0_results.json b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_ticket_llama3-2-vision-90b-instruct-q8-0_results.json index fe24c06..d10dd1f 100644 --- a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_ticket_llama3-2-vision-90b-instruct-q8-0_results.json +++ b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/analyse_ticket_llama3-2-vision-90b-instruct-q8-0_results.json @@ -10,7 +10,7 @@ "https://odoo.cbao.fr/web/image/145435?access_token=608ac9e7-3627-4a13-8ec-06ff5046ebf3" ], "metadata": { - "timestamp": "20250424_115040", + "timestamp": "20250424_135051", "source_agent": "AgentTicketAnalyser", "ticket_id": "T11143", "model_info": { diff --git a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/543d7da1b54c29ff43ce5712d1a9aa4962ed21795c4e943fcb8cb84fd4d7465a.jpg.json b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/543d7da1b54c29ff43ce5712d1a9aa4962ed21795c4e943fcb8cb84fd4d7465a.jpg.json index e635305..331bd90 100644 --- a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/543d7da1b54c29ff43ce5712d1a9aa4962ed21795c4e943fcb8cb84fd4d7465a.jpg.json +++ b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/543d7da1b54c29ff43ce5712d1a9aa4962ed21795c4e943fcb8cb84fd4d7465a.jpg.json @@ -5,7 +5,7 @@ "translation_en_back_fr": "", "metadata": { "ticket_id": "T11143", - "timestamp": "20250424_115049", + "timestamp": "20250424_135059", "source_module": "ocr_utils + translate_utils", "lang_detected": "fr" } diff --git a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/a20f7697fd5e1d1fca3296c6d01228220e0e112c46b4440cc938f74d10934e98.gif.json b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/a20f7697fd5e1d1fca3296c6d01228220e0e112c46b4440cc938f74d10934e98.gif.json index 8fbdc05..65bca7a 100644 --- a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/a20f7697fd5e1d1fca3296c6d01228220e0e112c46b4440cc938f74d10934e98.gif.json +++ b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/a20f7697fd5e1d1fca3296c6d01228220e0e112c46b4440cc938f74d10934e98.gif.json @@ -5,7 +5,7 @@ "translation_en_back_fr": "", "metadata": { "ticket_id": "T11143", - "timestamp": "20250424_115049", + "timestamp": "20250424_135100", "source_module": "ocr_utils + translate_utils", "lang_detected": "fr" } diff --git a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/image.png.json b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/image.png.json index bb20b7a..dafaaca 100644 --- a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/image.png.json +++ b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/image.png.json @@ -5,7 +5,7 @@ "translation_en_back_fr": "Apache Tomcat x +\n\nGc @ 2 zk1.brg-b.com\n\n@ Andre Demo Devmat @ Modèle de base\n\nÇa marche!\n\nSi vous voyez cette page via un navigateur Web, cela signifie que vous avez configuré Tomcat avec succès. Félicitations!\n\nIl s'agit de la page d'accueil par défaut de Tomcat. Il peut être trouvé sur le système de fichiers local à: /var/lib/tomcat7/webapps/root/index.html\n\nMatou? Les vétérans pourraient être ravis de lire cette instance système de Tomcat est installé avec cataina_home dans / usr / tomcat7 et cataina_base dans / var / 1ib / tomcat7, en suivant les règles de / usr / share / doc / tomcat7-commun / running. SMS. GZ.\nVous pourriez envisager d'installer les packages suivants, si vous avez fait Alreni:\n\nTomcat7-Docs: Ce package installe une application Web qui permet de parcourir la documentation Tomcat 7 localement. Une fois installé, vous pouvez y accéder en cliquant\n\nTomcat7-Exemple: Ce package installe une application Web qui permet d'accéder aux exemples de servlet Tomcat 7 et JSP. Une fois installé, vous pouvez y accéder en cliquant\n\nTomcat7-admin: Ce package installe deux applications Web qui peuvent aider à gérer cette instance Tomcat. Une fois installé, vous pouvez accéder au et le et le et\n\nRemarque: Pour des raisons de sécurité, l'utilisation du gestionnaire WebApp est limitée aux utilisateurs avec le rôle \"Manager-Gui\". Le manager host-manager est limité aux utilisateurs avec un rôle \"Admin-Gui\". Les utilisateurs sont définis dans / et / tomcat7 / tomcta-users.xml.", "metadata": { "ticket_id": "T11143", - "timestamp": "20250424_115044", + "timestamp": "20250424_135055", "source_module": "ocr_utils + translate_utils", "lang_detected": "fr" } diff --git a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/image_145435.png.json b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/image_145435.png.json index a742d25..599a84f 100644 --- a/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/image_145435.png.json +++ b/output/ticket_T11143/T11143_20250422_084617/T11143_rapports/pipeline/ocr_traduction/image_145435.png.json @@ -5,7 +5,7 @@ "translation_en_back_fr": "C3 Giraudbrg-Lobicom / Brg-Lab / Page Progratsai / Zeaaahevngoaaaa\n\n Brglas cd béton cd foumasew tubo © masse\n\nECHANTILLION N ° 25-0007 ECEPTIAN le 02/04/2025 PR Bollé Victor prévu le 04/04/2025 Por Bollee Victor N ° Pédéwment 25-00078\nMatériau de sable 0/20 Carriere adceg\n\n[Fai Jemmarme | [M Porrouo || onservanons] [