mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-13 17:37:05 +01:00
86 lines
3.0 KiB
Python
Executable File
86 lines
3.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
Script de test pour vérifier l'extraction JSON des rapports
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import json
|
|
import logging
|
|
from agents.utils.report_utils_bis import extraire_et_traiter_json
|
|
|
|
# Configuration du logging
|
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
logger = logging.getLogger("TestExtractionJSON")
|
|
|
|
def test_extraction_json(rapport_path):
|
|
"""
|
|
Teste l'extraction JSON d'un rapport existant
|
|
|
|
Args:
|
|
rapport_path: Chemin vers le fichier JSON du rapport
|
|
"""
|
|
if not os.path.exists(rapport_path):
|
|
logger.error(f"Le fichier {rapport_path} n'existe pas")
|
|
return False
|
|
|
|
try:
|
|
# Charger le rapport
|
|
with open(rapport_path, 'r', encoding='utf-8') as f:
|
|
rapport_data = json.load(f)
|
|
|
|
# Extraire le rapport complet (où se trouve le texte brut)
|
|
rapport_complet = rapport_data.get("rapport_complet", "")
|
|
if not rapport_complet:
|
|
logger.error("Aucun rapport complet trouvé dans le fichier JSON")
|
|
return False
|
|
|
|
logger.info(f"Rapport chargé: {len(rapport_complet)} caractères")
|
|
|
|
# Extraire le JSON avec notre nouvelle méthode
|
|
rapport_traite, echanges_json, echanges_markdown = extraire_et_traiter_json(rapport_complet)
|
|
|
|
# Vérifier les résultats
|
|
if echanges_json is None:
|
|
logger.error("Échec de l'extraction JSON")
|
|
return False
|
|
|
|
# Afficher le JSON extrait
|
|
logger.info(f"JSON extrait avec succès: {len(json.dumps(echanges_json))} caractères")
|
|
logger.info(f"Nombre d'échanges: {len(echanges_json.get('chronologie_echanges', []))}")
|
|
|
|
# Afficher les échanges
|
|
for i, echange in enumerate(echanges_json.get("chronologie_echanges", []), 1):
|
|
logger.info(f"Échange {i}: [{echange.get('date')}] {echange.get('emetteur')} ({echange.get('type')}): {echange.get('contenu')[:50]}...")
|
|
|
|
# Sauvegarder le JSON corrigé dans le rapport d'origine
|
|
rapport_data["chronologie_echanges"] = echanges_json.get("chronologie_echanges", [])
|
|
|
|
# Sauvegarder le rapport corrigé
|
|
output_path = rapport_path.replace(".json", "_corrige.json")
|
|
with open(output_path, 'w', encoding='utf-8') as f:
|
|
json.dump(rapport_data, f, ensure_ascii=False, indent=2)
|
|
|
|
logger.info(f"Rapport corrigé sauvegardé: {output_path}")
|
|
return True
|
|
|
|
except Exception as e:
|
|
logger.error(f"Erreur lors du test d'extraction: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) != 2:
|
|
print("Usage: python test_extraction_json.py <chemin_rapport>")
|
|
sys.exit(1)
|
|
|
|
rapport_path = sys.argv[1]
|
|
success = test_extraction_json(rapport_path)
|
|
|
|
if success:
|
|
print("\nExtraction réussie ✅")
|
|
else:
|
|
print("\nÉchec de l'extraction ❌") |