llm_ticket3/README.md
2025-04-02 11:43:26 +02:00

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:

  1. Extraction des données (extract_ticket.py) - Nettoie et prépare les données brutes des tickets
  2. Filtrage des images (filter_images.py) - Identifie les images pertinentes dans les pièces jointes
  3. Analyse d'images (analyze_image_contexte.py) - Analyse les images pertinentes en fonction du contexte
  4. Analyse de ticket (analyze_ticket.py) - Analyse le contenu du ticket pour en extraire les informations clés
  5. 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:

  • --ticket ou -t: Code du ticket à analyser (obligatoire)
  • --source ou -s: Dossier source contenant les tickets bruts (par défaut: output/)
  • --output ou -o: Dossier de sortie pour les résultats (par défaut: output_processed/)
  • --verbose ou -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 ticket
  • filtrage: Filtrage des images pertinentes
  • analyse_images: Analyse des images pertinentes
  • analyse_ticket: Analyse du contenu du ticket
  • questions_reponses: Extraction des questions et réponses
  • tout: 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

  1. Messages non traités correctement:

    • Exécutez extract_ticket.py avec l'option --verbose pour voir les détails du traitement
    • Vérifiez que le fichier messages.json est correctement formaté
  2. 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.)
  3. 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

Journaux

Chaque script génère un fichier de journal dans le répertoire de travail:

  • extract_ticket.log
  • filter_images.log
  • analyze_image.log
  • analyze_ticket.log
  • extract_qr.log
  • processus_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