llm_ticket3/README.md
2025-04-21 16:04:53 +02:00

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
```
`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]