# Améliorations du système d'analyse de tickets ## Contexte Le système d'analyse de tickets a été amélioré pour mieux gérer différents formats de données, en particulier les formats JSON et Markdown. Ce document explique les changements apportés et comment utiliser le nouveau système. ## Changements principaux 1. **Remplacement de `AgentJsonAnalyser` par `AgentTicketAnalyser`** - Le nouvel agent est plus flexible et peut traiter des données provenant de différentes sources - Il utilise un prompt système amélioré qui inclut des instructions spécifiques pour l'analyse des tickets - Il intègre une meilleure gestion des métadonnées sur la source des données 2. **Création d'une classe `TicketDataLoader`** - Abstraction pour charger les données de tickets depuis différentes sources - Implémentations spécifiques pour les formats JSON et Markdown - Validation et normalisation des données chargées - Gestion unifiée de la recherche de fichiers de tickets 3. **Mise à jour de l'orchestrateur** - Adaptation pour utiliser le nouvel agent et le loader de données - Simplification des méthodes de traitement des données - Suppression du code redondant pour l'extraction des données Markdown 4. **Ajout d'un script de test** - `test_ticket_analyse.py` permet de tester le système d'analyse de tickets - Possibilité de tester l'analyse d'un fichier spécifique - Possibilité de tester la recherche de fichiers de tickets ## Comment utiliser le nouveau système ### Dans les scripts existants Remplacez les références à `AgentJsonAnalyser` par `AgentTicketAnalyser` : ```python # Ancien code from agents.agent_json_analyser import AgentJsonAnalyser agent = AgentJsonAnalyser(llm) # Nouveau code from agents.agent_ticket_analyser import AgentTicketAnalyser agent = AgentTicketAnalyser(llm) ``` ### Analyser un fichier directement Le nouvel agent peut analyser un fichier directement sans avoir à charger les données au préalable : ```python from agents.agent_ticket_analyser import AgentTicketAnalyser agent = AgentTicketAnalyser(llm) resultat = agent.analyser_depuis_fichier("chemin/vers/ticket.json") # ou resultat = agent.analyser_depuis_fichier("chemin/vers/ticket.md") ``` ### Charger des données de ticket avec le loader ```python from utils.ticket_data_loader import TicketDataLoader loader = TicketDataLoader() # Charger un fichier JSON donnees_json = loader.charger("chemin/vers/ticket.json") # Charger un fichier Markdown donnees_md = loader.charger("chemin/vers/ticket.md") # Détecter automatiquement le format donnees = loader.charger("chemin/vers/ticket.ext") # Rechercher des fichiers de ticket resultats = loader.trouver_ticket("dossier/extraction", "T0101") if resultats.get("json"): print(f"Fichier JSON trouvé: {resultats['json']}") if resultats.get("markdown"): print(f"Fichier Markdown trouvé: {resultats['markdown']}") ``` ## Exécuter les tests ```bash # Tester l'analyse d'un fichier python test_ticket_analyse.py --file chemin/vers/ticket.json # Rechercher un ticket par ID python test_ticket_analyse.py --search T0101 --dir dossier/extraction # Afficher l'aide python test_ticket_analyse.py --help ``` ## Compatibilité avec l'ancien système Si vous avez encore des scripts qui utilisent l'ancien `AgentJsonAnalyser`, ceux-ci devraient continuer à fonctionner avec le nouvel agent, car l'interface de la méthode `executer()` est restée compatible. ## Structure des métadonnées Le nouveau système ajoute des métadonnées sur la source des données, ce qui peut être utile pour le débogage et l'analyse : ```json { "metadata": { "source_file": "chemin/vers/fichier.ext", "format": "json|markdown", "autres_metadonnees": "..." } } ``` ## Prochaines améliorations possibles 1. Ajouter le support pour d'autres formats de données (CSV, XML, etc.) 2. Améliorer la validation des données chargées 3. Ajouter des tests unitaires pour chaque composant 4. Implémenter une détection plus avancée des formats de date 5. Ajouter une option pour normaliser les noms de champs entre différents formats