6.9 KiB
Système d'Analyse de Tickets de Support
Ce système d'analyse de tickets de support permet de traiter les données des tickets pour en extraire des informations pertinentes, analyser les images, et générer des rapports d'analyse.
Architecture
Le système est désormais structuré de manière modulaire, avec des étapes de traitement distinctes qui peuvent être exécutées indépendamment:
- Extraction des données (
extract_ticket.py) - Nettoie et prépare les données brutes des tickets - Filtrage des images (
filter_images.py) - Identifie les images pertinentes dans les pièces jointes - Analyse d'images (
analyze_image_contexte.py) - Analyse les images pertinentes en fonction du contexte - Analyse de ticket (
analyze_ticket.py) - Analyse le contenu du ticket pour en extraire les informations clés - Questions-Réponses (
extract_question_reponse.py) - Extrait les paires de questions et réponses du ticket
Ces étapes peuvent être exécutées individuellement ou dans une séquence complète via le script principal (processus_complet.py).
Prérequis
- Python 3.9+
- Bibliothèques requises (listées dans
requirements.txt) - Clé API pour les modèles de langage utilisés (configurée dans
config.json)
Installation
# Cloner le dépôt
git clone <URL_DU_DEPOT>
cd <NOM_DU_DOSSIER>
# Installer les dépendances
pip install -r requirements.txt
# Configurer la clé API
cp config.json.example config.json
# Éditer config.json pour ajouter votre clé API
Configuration
Créez un fichier config.json à la racine du projet avec le contenu suivant:
{
"llm": {
"api_key": "votre-clé-api-ici",
"api_base": "https://api.mistral.ai/v1",
"organization": "votre-organisation"
}
}
Utilisation
Processus complet
Pour exécuter l'ensemble du processus d'analyse sur un ticket:
python scripts/processus_complet.py --ticket T0167
Options disponibles:
--ticketou-t: Code du ticket à analyser (obligatoire)--sourceou-s: Dossier source contenant les tickets bruts (par défaut:output/)--outputou-o: Dossier de sortie pour les résultats (par défaut:output_processed/)--verboseou-v: Afficher plus d'informations
Étapes individuelles
Vous pouvez exécuter uniquement une étape spécifique:
python scripts/processus_complet.py --ticket T0167 --etapes extraction
Étapes disponibles:
extraction: Extraction et nettoyage des données du ticketfiltrage: Filtrage des images pertinentesanalyse_images: Analyse des images pertinentesanalyse_ticket: Analyse du contenu du ticketquestions_reponses: Extraction des questions et réponsestout: Exécute toutes les étapes (par défaut)
Scripts individuels
Vous pouvez aussi exécuter directement les scripts individuels pour plus de contrôle:
1. Extraction des données
python scripts/extract_ticket.py output/ticket_T0167 --output-dir output_processed/ticket_T0167
2. Filtrage des images
python scripts/filter_images.py --dossier-ticket output_processed/ticket_T0167
3. Analyse d'images
python scripts/analyze_image_contexte.py --image chemin/vers/image.jpg --ticket-info output_processed/ticket_T0167/ticket_info.json
4. Analyse de ticket
python scripts/analyze_ticket.py --messages output_processed/ticket_T0167/messages.json --images-rapport output_processed/ticket_T0167/filter_report.json
5. Questions-Réponses
python scripts/extract_question_reponse.py --messages output_processed/ticket_T0167/messages.json
Structure des dossiers
.
├── config.json # Configuration (clés API, etc.)
├── main.py # Script principal original (pour compatibilité)
├── post_process.py # Post-traitement original (pour compatibilité)
├── requirements.txt # Dépendances du projet
├── scripts/ # Scripts modulaires
│ ├── analyze_image_contexte.py # Analyse d'images avec contexte
│ ├── analyze_ticket.py # Analyse de ticket
│ ├── extract_question_reponse.py # Extraction de questions-réponses
│ ├── extract_ticket.py # Extraction et nettoyage de données
│ ├── filter_images.py # Filtrage d'images
│ └── processus_complet.py # Orchestration du processus complet
├── output/ # Données brutes des tickets
│ └── ticket_TXXXX/ # Dossier d'un ticket brut
├── output_processed/ # Données traitées et résultats
│ └── ticket_TXXXX/ # Dossier d'un ticket traité
│ ├── messages.json # Messages nettoyés
│ ├── ticket_info.json # Informations du ticket
│ ├── attachments/ # Pièces jointes
│ ├── filter_report.json # Rapport de filtrage d'images
│ ├── images_analyses/ # Analyses d'images
│ ├── questions_reponses.md # Questions et réponses extraites
│ └── rapport/ # Rapports d'analyse
├── agents/ # Agents d'analyse (pour compatibilité)
├── llm/ # Interfaces avec les modèles de langage
└── utils/ # Utilitaires communs
Dépannage
Problèmes courants
-
Messages non traités correctement:
- Exécutez
extract_ticket.pyavec l'option--verbosepour voir les détails du traitement - Vérifiez que le fichier messages.json est correctement formaté
- Exécutez
-
Images non détectées:
- Assurez-vous que les images sont dans le dossier
attachments/ - Vérifiez les formats d'image supportés (.jpg, .png, .gif, etc.)
- Assurez-vous que les images sont dans le dossier
-
Erreurs LLM:
- Vérifiez que votre clé API est valide et correctement configurée dans
config.json - Assurez-vous d'avoir une connexion internet stable
- Vérifiez que votre clé API est valide et correctement configurée dans
Journaux
Chaque script génère un fichier de journal dans le répertoire de travail:
extract_ticket.logfilter_images.loganalyze_image.loganalyze_ticket.logextract_qr.logprocessus_complet.log
Consultez ces fichiers pour plus de détails sur les erreurs rencontrées.
Exemples
Exemple 1: Analyser un ticket complet
python scripts/processus_complet.py --ticket T0167 --verbose
Exemple 2: Extraire uniquement les questions-réponses
python scripts/extract_question_reponse.py --messages output/ticket_T0167/messages.json --output output/ticket_T0167/questions_reponses.md
Exemple 3: Réanalyser un ticket avec des changements
# Nettoyer d'abord les données
python scripts/extract_ticket.py output/ticket_T0167 --output-dir output_processed/ticket_T0167
# Puis extraire les questions-réponses
python scripts/extract_question_reponse.py --messages output_processed/ticket_T0167/messages.json