# Tests modulaires pour l'analyse de tickets Ce répertoire contient une architecture de tests modulaire pour l'analyse de tickets avec différents modèles LLM. ## Structure - `common/` : Utilitaires communs et factories - `ticket_utils.py` : Fonctions pour manipuler les tickets et leurs ressources - `llm_factory.py` : Factory pour initialiser les modèles LLM - `agent_factory.py` : Factory pour initialiser les agents - `workflows/` : Workflows de test complets - `ticket_analyser_workflow.py` : Workflow pour l'analyse de tickets - `image_analyser_workflow.py` : Workflow pour l'analyse d'images - `complete_analysis_workflow.py` : Workflow complet avec génération de rapport - `compare_models.py` : Script pour comparer plusieurs modèles sur le même ticket ## Utilisation ### Test d'analyse de ticket Pour tester l'analyse d'un ticket avec un modèle spécifique : ```bash python -m tests.workflows.ticket_analyser_workflow T1234 --model mistral_large --save ``` Options : - `--model` : Modèle LLM à utiliser (défaut: mistral_large) - `--output_dir` : Répertoire des tickets (défaut: output) - `--verbose` : Mode verbeux - `--save` : Sauvegarder les résultats dans un fichier JSON ### Test d'analyse d'images Pour tester l'analyse d'images avec un modèle spécifique : ```bash python -m tests.workflows.image_analyser_workflow T1234 output mistral_large pixtral_large ``` Arguments : 1. `ticket_id` : ID du ticket à analyser 2. `output_dir` : Répertoire des tickets (optionnel) 3. `text_model` : Modèle pour l'analyse de ticket (optionnel) 4. `vision_model` : Modèle pour l'analyse d'images (optionnel) ### Workflow complet avec génération de rapport Pour exécuter le workflow complet (analyse de ticket, tri d'images, analyse d'images et génération de rapport) : ```bash python -m tests.workflows.complete_analysis_workflow T1234 --text_model mistral_large --vision_model pixtral_large ``` Options : - `--text_model` : Modèle LLM à utiliser pour l'analyse de ticket et la génération de rapport (défaut: mistral_large) - `--vision_model` : Modèle LLM à utiliser pour l'analyse d'images (défaut: pixtral_large) - `--output_dir` : Répertoire des tickets (défaut: output) - `--no-report` : Ne pas générer de rapport final - `--no-save` : Ne pas sauvegarder les résultats intermédiaires - `--verbose` : Mode verbeux ### Comparaison de modèles Pour comparer plusieurs modèles sur le même ticket : ```bash python -m tests.compare_models T1234 --type both --save ``` Options : - `--type` : Type de modèles à comparer (text, vision ou both) - `--text-models` : Liste des modèles texte à comparer - `--vision-models` : Liste des modèles vision à comparer - `--text-model` : Modèle texte à utiliser pour les tests vision - `--output-dir` : Répertoire des tickets - `--save` : Sauvegarder les résultats - `--verbose` : Mode verbeux Exemple pour comparer des modèles spécifiques : ```bash python -m tests.compare_models T1234 --type both --text-models mistral_large mistral_medium --vision-models pixtral_large llama_vision --save ``` ## Ajout d'un nouveau modèle LLM 1. Créez une classe pour le nouveau modèle dans `llm_classes/` 2. Ajoutez le modèle à `LLM_CLASSES` dans `tests/common/llm_factory.py` 3. Ajoutez le modèle à `TEXT_MODELS` ou `VISION_MODELS` selon ses capacités ## Ajout d'un nouveau workflow de test 1. Créez un nouveau fichier dans `tests/workflows/` 2. Implémentez une fonction `execute_workflow()` qui prend en charge le workflow 3. Exportez la fonction dans `tests/workflows/__init__.py`