mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-11 15:46:51 +01:00
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 :
- AgentTicketAnalyser : Analyse le contenu textuel du ticket
- AgentImageSorter : Trie les images pour identifier celles qui sont pertinentes
- AgentImageAnalyser : Analyse en profondeur les images pertinentes en tenant compte du contexte
- 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
- Cloner le dépôt :
git clone <URL_DU_REPO>
cd <NOM_DU_REPO>
- Installer les dépendances :
pip install -r requirements.txt
- 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 :
- Arguments en ligne de commande dans
main.py - Dictionnaire de configuration passé à l'orchestrateur
- Classes de factory pour instancier les agents avec différents modèles LLM
Utilisation
Analyse complète d'un ticket
python main.py T1234
Où T1234 est l'identifiant du ticket à analyser.
Options avancées
python main.py T1234 --text-model mistral_large --vision-model pixtral_large --debug --save-results
Pour voir toutes les options disponibles :
python main.py --help
Exécution d'étapes spécifiques
# 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 :
- Assurez-vous qu'il est implémenté dans le dossier
llm_classes/ - Ajoutez-le au dictionnaire
LLM_CLASSESdansagent_factory.py - 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 :
- Vérifiez les journaux dans
main.logetorchestrator.log - Activez le mode debug avec
--debugpour obtenir plus d'informations - Assurez-vous que les dépendances et les clés API sont correctement configurées
Extension
Pour ajouter un nouveau modèle LLM :
- Créez une nouvelle classe dans
llm_classes/qui hérite deBaseLLM - Implémentez les méthodes abstraites requises
- Ajoutez le modèle au dictionnaire
LLM_CLASSESdansagent_factory.py - Ajoutez-le à la liste
TEXT_MODELSouVISION_MODELSselon ses capacités
Licence
[Licence à spécifier]
Description
Languages
Python
99.8%