mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-15 19:06:50 +01:00
188 lines
6.8 KiB
Python
188 lines
6.8 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Script de test pour l'agent de génération de rapport.
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import json
|
|
import argparse
|
|
from datetime import datetime
|
|
|
|
# Ajouter le répertoire parent au path pour pouvoir importer les modules
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
from agents.agent_report_generator import AgentReportGenerator
|
|
from llm_interface.llm_mock import LLMMock
|
|
|
|
def charger_donnees_test(ticket_id: str) -> dict:
|
|
"""
|
|
Charge des données de test pour un ticket spécifique.
|
|
|
|
Args:
|
|
ticket_id: Identifiant du ticket
|
|
|
|
Returns:
|
|
Dictionnaire contenant les données simulées pour le test
|
|
"""
|
|
# Simuler l'analyse du ticket
|
|
ticket_analyse = (
|
|
f"# Analyse du ticket {ticket_id}\n\n"
|
|
"## Problème initial\n"
|
|
"Le client signale que l'application BRG-Lab ne parvient pas à accéder aux essais sur échantillons.\n\n"
|
|
"## Informations techniques\n"
|
|
"- Application: BRG-Lab\n"
|
|
"- Module: Essais sur échantillons\n\n"
|
|
"## Chronologie des échanges\n"
|
|
"1. CLIENT (04/05/2020) - Le client indique qu'il ne peut pas accéder aux essais sur échantillons\n"
|
|
"2. SUPPORT (04/05/2020) - Demande d'identifiants TeamViewer\n"
|
|
"3. CLIENT (04/05/2020) - Fournit une capture d'écran des identifiants\n"
|
|
"4. SUPPORT (04/05/2020) - Instructions pour lancer BRG-Lab et effectuer les mises à jour\n"
|
|
)
|
|
|
|
# Simuler les analyses d'images
|
|
analyses_images = {
|
|
f"sample_images/{ticket_id}_image1.png": {
|
|
"sorting": {
|
|
"is_relevant": True,
|
|
"reason": "Capture d'écran de l'erreur BRG-Lab"
|
|
},
|
|
"analysis": {
|
|
"analyse": (
|
|
"La capture d'écran montre une fenêtre d'erreur de l'application BRG-Lab. "
|
|
"Le message indique 'Impossible d'accéder au module Essais sur échantillons'. "
|
|
"Code d'erreur visible: ERR-2345."
|
|
)
|
|
}
|
|
},
|
|
f"sample_images/{ticket_id}_image2.png": {
|
|
"sorting": {
|
|
"is_relevant": True,
|
|
"reason": "Capture d'écran des identifiants TeamViewer"
|
|
},
|
|
"analysis": {
|
|
"analyse": (
|
|
"La capture montre une fenêtre TeamViewer avec les identifiants de connexion. "
|
|
"ID: 123 456 789\n"
|
|
"Mot de passe: abcdef"
|
|
)
|
|
}
|
|
},
|
|
f"sample_images/{ticket_id}_image3.png": {
|
|
"sorting": {
|
|
"is_relevant": False,
|
|
"reason": "Image non pertinente"
|
|
}
|
|
}
|
|
}
|
|
|
|
# Construire le dictionnaire de données simulées
|
|
return {
|
|
"ticket_id": ticket_id,
|
|
"ticket_data": {
|
|
"code": ticket_id,
|
|
"name": "Problème d'accès aux essais sur échantillons",
|
|
"description": "Impossible d'accéder aux essais sur échantillons dans BRG-Lab"
|
|
},
|
|
"ticket_analyse": ticket_analyse,
|
|
"analyse_images": analyses_images
|
|
}
|
|
|
|
def generer_reponse_llm(prompt: str) -> str:
|
|
"""
|
|
Génère une réponse simulée pour le test.
|
|
|
|
Args:
|
|
prompt: Prompt envoyé au LLM
|
|
|
|
Returns:
|
|
Réponse simulée
|
|
"""
|
|
rapport_json = {
|
|
"chronologie_echanges": [
|
|
{
|
|
"date": "04/05/2020",
|
|
"emetteur": "CLIENT",
|
|
"type": "Question",
|
|
"contenu": "Je n'arrive pas à accéder aux essais sur échantillons sur BRG-Lab"
|
|
},
|
|
{
|
|
"date": "04/05/2020",
|
|
"emetteur": "SUPPORT",
|
|
"type": "Question",
|
|
"contenu": "Pouvez-vous m'envoyer les identifiants TeamViewer?"
|
|
},
|
|
{
|
|
"date": "04/05/2020",
|
|
"emetteur": "CLIENT",
|
|
"type": "Réponse",
|
|
"contenu": "Voici les identifiants TeamViewer: ID 123 456 789, mot de passe abcdef"
|
|
},
|
|
{
|
|
"date": "04/05/2020",
|
|
"emetteur": "SUPPORT",
|
|
"type": "Réponse",
|
|
"contenu": "Veuillez lancer BRG-Lab et effectuer les mises à jour nécessaires."
|
|
}
|
|
]
|
|
}
|
|
|
|
reponse = f"""
|
|
Le client rencontre un problème d'accès au module "Essais sur échantillons" dans l'application BRG-Lab. Le système affiche un message d'erreur avec le code ERR-2345.
|
|
|
|
```json
|
|
{json.dumps(rapport_json, indent=2)}
|
|
```
|
|
|
|
L'analyse des captures d'écran fournies montre que l'erreur se produit spécifiquement lors de l'accès au module "Essais sur échantillons". La première image montre clairement le message d'erreur avec le code ERR-2345. La deuxième image contient les identifiants TeamViewer utilisés pour la session de support à distance.
|
|
|
|
## Diagnostic technique
|
|
|
|
Le problème semble être lié à une mise à jour manquante de l'application BRG-Lab. Le support a recommandé de lancer l'application et d'effectuer toutes les mises à jour nécessaires, ce qui suggère que le module "Essais sur échantillons" nécessite une version plus récente pour fonctionner correctement.
|
|
"""
|
|
return reponse
|
|
|
|
def main():
|
|
"""Fonction principale du script de test"""
|
|
parser = argparse.ArgumentParser(description='Test de l\'agent de génération de rapport')
|
|
parser.add_argument('--ticket', '-t', default='T0123', help='ID du ticket à traiter')
|
|
parser.add_argument('--output', '-o', default='./output_test', help='Répertoire de sortie')
|
|
args = parser.parse_args()
|
|
|
|
# Créer le répertoire de sortie s'il n'existe pas
|
|
os.makedirs(args.output, exist_ok=True)
|
|
|
|
# Créer un LLM simulé
|
|
llm_mock = LLMMock(generer_reponse_llm)
|
|
|
|
# Initialiser l'agent de génération de rapport
|
|
agent = AgentReportGenerator(llm_mock)
|
|
|
|
print(f"Test de l'agent de génération de rapport pour le ticket {args.ticket}")
|
|
|
|
# Charger les données de test
|
|
rapport_data = charger_donnees_test(args.ticket)
|
|
|
|
# Répertoire de sortie spécifique pour ce test
|
|
rapport_dir = os.path.join(args.output, f"{args.ticket}_{datetime.now().strftime('%Y%m%d_%H%M%S')}")
|
|
os.makedirs(rapport_dir, exist_ok=True)
|
|
|
|
# Exécuter l'agent
|
|
print("Génération du rapport...")
|
|
json_path, md_path = agent.executer(rapport_data, rapport_dir)
|
|
|
|
# Afficher les résultats
|
|
if json_path and os.path.exists(json_path):
|
|
print(f"Rapport JSON généré: {json_path}")
|
|
else:
|
|
print("Échec de la génération du rapport JSON")
|
|
|
|
if md_path and os.path.exists(md_path):
|
|
print(f"Rapport Markdown généré: {md_path}")
|
|
else:
|
|
print("Échec de la génération du rapport Markdown")
|
|
|
|
print("Test terminé")
|
|
|
|
if __name__ == "__main__":
|
|
main() |