llm_ticket3/test_agents_with_models.py
2025-04-08 14:40:14 +02:00

84 lines
2.8 KiB
Python

#!/usr/bin/env python3
import json
import os
from agents.agent_ticket_analyser import AgentTicketAnalyser
from agents.agent_image_sorter import AgentImageSorter
from agents.agent_image_analyser import AgentImageAnalyser
from agents.agent_report_generator import AgentReportGenerator
# Importer les classes LLM
from llm_classes.mistral_large import MistralLarge
from llm_classes.pixtral_12b import Pixtral12b
from llm_classes.ollama import Ollama
def test_different_models():
"""
Tester les performances de différents modèles LLM avec le même agent.
"""
# Données de test pour le JSON
test_json = {
"id": "123456",
"title": "Problème de connexion au serveur",
"description": "Depuis ce matin, impossible de se connecter au serveur principal. Erreur 500.",
"priority": "high",
"tags": ["connexion", "serveur", "erreur"],
"history": [
{"date": "2023-04-01", "action": "Création du ticket"},
{"date": "2023-04-02", "action": "Première tentative de résolution"}
]
}
# Répertoire pour les rapports
os.makedirs("reports/json_reports", exist_ok=True)
os.makedirs("reports/markdown_reports", exist_ok=True)
# Liste des modèles à tester
models = {
"mistral": MistralLarge(),
"pixtral": Pixtral12b(),
"ollama": Ollama("llama2") # Spécifier le modèle pour Ollama
}
# Test de chaque modèle pour l'analyse JSON
results = {}
for model_name, model in models.items():
print(f"Test avec le modèle {model_name}...")
# Créer l'agent avec ce modèle
json_agent = AgentTicketAnalyser(model)
# Afficher les paramètres de l'agent
print(f" Température: {json_agent.temperature}")
print(f" Prompt système: {json_agent.system_prompt[:50]}...")
# Exécuter le test
try:
result = json_agent.executer(test_json)
success = True
except Exception as e:
result = str(e)
success = False
# Enregistrer le résultat
results[model_name] = {
"result": result,
"success": success,
"metadata": json_agent.historique[-1]["metadata"] if json_agent.historique and json_agent.historique else {}
}
print(f" Succès: {success}")
print()
# Générer un rapport comparatif
print("Génération du rapport comparatif...")
report_generator = AgentReportGenerator(MistralLarge())
json_path = report_generator.executer(
{"resultats_comparatifs": results},
"comparaison_modeles"
)
print(f"Rapport généré avec succès!")
print(f"JSON: {json_path}")
if __name__ == "__main__":
test_different_models()