mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-15 21:16:52 +01:00
82 lines
3.0 KiB
Python
82 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Script pour tester le workflow d'analyse d'images avec contexte.
|
|
Utilise la structure modulaire créée dans le répertoire tests/.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import argparse
|
|
import logging
|
|
|
|
# Import du workflow
|
|
from tests.workflows.image_analyser_workflow import execute_workflow
|
|
|
|
def main():
|
|
# Configuration de l'analyseur d'arguments
|
|
parser = argparse.ArgumentParser(description="Tester le workflow d'analyse d'images avec contexte")
|
|
parser.add_argument("ticket_id", help="ID du ticket à analyser (ex: T1234)")
|
|
parser.add_argument("--output_dir", default="output", help="Répertoire de sortie contenant les tickets")
|
|
parser.add_argument("--text_model", default="mistral_large", help="Modèle LLM à utiliser pour l'analyse de texte")
|
|
parser.add_argument("--vision_model", default="pixtral_large", help="Modèle LLM à utiliser pour l'analyse d'image")
|
|
parser.add_argument("--verbose", "-v", action="store_true", help="Afficher plus d'informations")
|
|
|
|
# Analyser les arguments
|
|
args = parser.parse_args()
|
|
|
|
# Configurer le logging
|
|
log_level = logging.DEBUG if args.verbose else logging.INFO
|
|
logging.basicConfig(
|
|
level=log_level,
|
|
format='%(asctime)s - %(levelname)s - %(name)s - %(message)s',
|
|
handlers=[
|
|
logging.FileHandler(f"image_analyse_workflow_{args.ticket_id}.log"),
|
|
logging.StreamHandler()
|
|
]
|
|
)
|
|
|
|
# Vérifier que le ticket existe
|
|
ticket_path = os.path.join(args.output_dir, f"ticket_{args.ticket_id}")
|
|
if not os.path.exists(ticket_path):
|
|
print(f"ERREUR: Le ticket {args.ticket_id} n'existe pas dans {args.output_dir}")
|
|
return 1
|
|
|
|
# Afficher les informations de début
|
|
print("="*80)
|
|
print(f"TEST DU WORKFLOW D'ANALYSE D'IMAGES AVEC CONTEXTE")
|
|
print(f"Ticket: {args.ticket_id}")
|
|
print(f"Modèle texte: {args.text_model}")
|
|
print(f"Modèle vision: {args.vision_model}")
|
|
print("="*80)
|
|
print()
|
|
|
|
# Exécuter le workflow
|
|
results = execute_workflow(
|
|
ticket_id=args.ticket_id,
|
|
output_dir=args.output_dir,
|
|
text_model=args.text_model,
|
|
vision_model=args.vision_model
|
|
)
|
|
|
|
# Afficher un résumé des résultats
|
|
if "error" in results:
|
|
print(f"\nErreur lors de l'exécution du workflow: {results['error']}")
|
|
print(f"Étape en échec: {results.get('stage', 'inconnue')}")
|
|
return 1
|
|
|
|
print("\n" + "="*80)
|
|
print("RÉSUMÉ DU WORKFLOW")
|
|
print("="*80)
|
|
print(f"Ticket: {results['ticket_id']}")
|
|
print(f"Analyse du ticket: {len(results['ticket_analysis']) if results['ticket_analysis'] else 0} caractères")
|
|
print(f"Images totales: {results['images_count']}")
|
|
print(f"Images pertinentes: {len(results['relevant_images'])}")
|
|
print(f"Images analysées: {len(results['analysis_results'])}")
|
|
print(f"Temps d'exécution: {results['execution_time']:.2f} secondes")
|
|
|
|
print("\nWorkflow exécuté avec succès!")
|
|
return 0
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main()) |