mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-15 21:06:52 +01:00
137 lines
4.7 KiB
Markdown
137 lines
4.7 KiB
Markdown
# Analyse de Tickets avec LLM
|
|
|
|
Ce projet implémente une solution complète d'analyse de tickets et d'images basée sur des LLM (Large Language Models) pour extraire des informations pertinentes et générer des rapports structurés.
|
|
|
|
## Architecture
|
|
|
|
Le système d'analyse repose sur une architecture à base d'agents spécialisés :
|
|
|
|
1. **AgentTicketAnalyser** : Analyse le contenu textuel du ticket
|
|
2. **AgentImageSorter** : Trie les images pour identifier celles qui sont pertinentes
|
|
3. **AgentImageAnalyser** : Analyse en profondeur les images pertinentes en tenant compte du contexte
|
|
4. **AgentReportGenerator** : Génère un rapport final consolidant toutes les analyses
|
|
|
|
Cette architecture utilise différents modèles LLM, permettant une flexibilité dans le choix des modèles selon les besoins :
|
|
|
|
- **Modèles textuels** : Mistral, DeepSeek, Qwen2.5
|
|
- **Modèles multimodaux** : Pixtral, Llama Vision
|
|
|
|
## Prérequis
|
|
|
|
- Python 3.8+
|
|
- Pip pour l'installation des dépendances
|
|
|
|
## Installation
|
|
|
|
1. Cloner le dépôt :
|
|
```bash
|
|
git clone <URL_DU_REPO>
|
|
cd <NOM_DU_REPO>
|
|
```
|
|
|
|
2. Installer les dépendances :
|
|
```bash
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
3. Vérifier les clés API dans les fichiers de configuration des modèles LLM (si nécessaire)
|
|
|
|
## Structure du projet
|
|
|
|
```
|
|
.
|
|
├── agents/ # Implémentations des agents LLM
|
|
│ ├── base_agent.py # Classe de base pour tous les agents
|
|
│ ├── mistral_large/ # Agents Mistral
|
|
│ ├── pixtral_large/ # Agents Pixtral
|
|
│ └── utils/ # Utilitaires pour les agents
|
|
├── llm_classes/ # Implémentations des différents LLM
|
|
│ ├── base_llm.py # Classe de base pour tous les LLM
|
|
│ ├── mistral_large.py # Implémentation de Mistral Large
|
|
│ ├── pixtral_large.py # Implémentation de Pixtral Large
|
|
│ └── ... # Autres implémentations LLM
|
|
├── loaders/ # Chargeurs de données
|
|
│ └── ticket_data_loader.py # Chargeur de données de ticket
|
|
├── utils/ # Utilitaires généraux
|
|
│ └── image_dedup.py # Déduplication d'images
|
|
├── agent_factory.py # Factory pour créer et initialiser les agents
|
|
├── orchestrator.py # Orchestrateur du processus d'analyse
|
|
├── main.py # Point d'entrée principal
|
|
└── requirements.txt # Dépendances du projet
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Le système est hautement configurable via :
|
|
|
|
1. **Arguments en ligne de commande** dans `main.py`
|
|
2. **Dictionnaire de configuration** passé à l'orchestrateur
|
|
3. **Classes de factory** pour instancier les agents avec différents modèles LLM
|
|
|
|
## Utilisation
|
|
|
|
### Analyse complète d'un ticket
|
|
|
|
```bash
|
|
python main.py T1234
|
|
```
|
|
|
|
Où `T1234` est l'identifiant du ticket à analyser.
|
|
|
|
### Options avancées
|
|
|
|
```bash
|
|
python main.py T1234 --text-model mistral_large --vision-model pixtral_large --debug --save-results
|
|
```
|
|
|
|
Pour voir toutes les options disponibles :
|
|
```bash
|
|
python main.py --help
|
|
```
|
|
|
|
### Exécution d'étapes spécifiques
|
|
|
|
```bash
|
|
# Analyser uniquement le ticket (sans les images)
|
|
python main.py T1234 --skip-image-sorting --skip-image-analysis --skip-report
|
|
|
|
# Générer uniquement le rapport final (si les analyses précédentes existent)
|
|
python main.py T1234 --skip-ticket-analysis --skip-image-sorting --skip-image-analysis
|
|
```
|
|
|
|
## Personnalisation des modèles LLM
|
|
|
|
Pour utiliser un modèle LLM spécifique :
|
|
|
|
1. Assurez-vous qu'il est implémenté dans le dossier `llm_classes/`
|
|
2. Ajoutez-le au dictionnaire `LLM_CLASSES` dans `agent_factory.py`
|
|
3. Spécifiez-le en argument lors de l'exécution : `--text-model <nom_du_modele>` ou `--vision-model <nom_du_modele>`
|
|
|
|
## Sortie
|
|
|
|
Les résultats des analyses sont sauvegardés dans :
|
|
|
|
- **Analyses brutes** : `reports/<ticket_id>/`
|
|
- **Résultats intermédiaires** : `output/ticket_<ticket_id>/<extraction>/`
|
|
- **Rapport final** : `reports/<ticket_id>/rapport_final_<ticket_id>.txt`
|
|
|
|
## Dépannage
|
|
|
|
Si vous rencontrez des erreurs :
|
|
|
|
1. Vérifiez les journaux dans `main.log` et `orchestrator.log`
|
|
2. Activez le mode debug avec `--debug` pour obtenir plus d'informations
|
|
3. Assurez-vous que les dépendances et les clés API sont correctement configurées
|
|
|
|
## Extension
|
|
|
|
Pour ajouter un nouveau modèle LLM :
|
|
|
|
1. Créez une nouvelle classe dans `llm_classes/` qui hérite de `BaseLLM`
|
|
2. Implémentez les méthodes abstraites requises
|
|
3. Ajoutez le modèle au dictionnaire `LLM_CLASSES` dans `agent_factory.py`
|
|
4. Ajoutez-le à la liste `TEXT_MODELS` ou `VISION_MODELS` selon ses capacités
|
|
|
|
## Licence
|
|
|
|
[Licence à spécifier] |