llm_lab_perso/examples/agent_demo.py
2025-03-27 18:40:52 +01:00

92 lines
3.4 KiB
Python

"""
Démonstration de l'utilisation des agents spécialisés avec leurs modèles associés
"""
from utils.agent_manager import AgentManager
import os
import time
def list_available_agents():
"""Affiche la liste des agents disponibles avec leurs modèles"""
print("\n=== Agents disponibles ===")
agents_info = AgentManager.list_agents()
for agent_name, info in agents_info.items():
print(f"{agent_name} (modèle: {info['model']})")
print(f"{info['description']}")
return list(agents_info.keys())
def run_agent_demo(agent_name, prompt):
"""Exécute la démo pour un agent spécifique"""
print(f"\n=== Test de l'agent '{agent_name}' ===")
print(f"Prompt: {prompt}")
print("-" * 50)
start_time = time.time()
try:
# Création de l'agent
agent = AgentManager.create(agent_name)
print(f"Agent '{agent_name}' créé avec le modèle '{agent.model}'")
# Génération de la réponse
print("\nGénération en cours...")
response = agent.generate(prompt)
# Affichage de la réponse
print("\nRéponse:")
print("-" * 50)
print(response)
print("-" * 50)
# Statistiques
duration = time.time() - start_time
print(f"\nTemps d'exécution: {duration:.2f} secondes")
print(f"Longueur de la réponse: {len(response)} caractères")
except Exception as e:
print(f"Erreur lors de l'exécution: {str(e)}")
if __name__ == "__main__":
os.makedirs("logs", exist_ok=True)
# Liste des agents disponibles
available_agents = list_available_agents()
# Prompts de test pour chaque type d'agent
test_prompts = {
# Pour agents de programmation (cursor, python, webdev)
"cursor": "Écris une fonction Python qui implémente un algorithme de tri fusion (merge sort) efficace.",
"python": "Comment utiliser pandas pour analyser un fichier CSV et calculer des statistiques par groupe?",
"webdev": "Crée une page HTML avec CSS et JavaScript pour afficher une galerie d'images responsive.",
# Pour agent de gestion de connaissances (obsidian)
"obsidian": "Comment organiser un système de notes pour un projet de recherche avec des liens entre concepts?",
# Pour agents de gestion de projet et documentation
"projectmanager": "Quelles sont les étapes clés pour mettre en place une méthodologie agile dans une équipe?",
"documentaliste": "Comment structurer la documentation d'une API REST?",
# Pour agent de test
"test": "Vérifie que tu peux générer une réponse courte."
}
# Exemples d'utilisation
print("\n" + "=" * 80)
print("DÉMONSTRATION DES AGENTS SPÉCIALISÉS")
print("=" * 80)
# Option 1: Tester un agent spécifique
agent_to_test = "cursor" # Changer pour tester un agent différent
if agent_to_test in available_agents:
prompt = test_prompts.get(agent_to_test, "Présente-toi et explique tes capacités.")
run_agent_demo(agent_to_test, prompt)
# Option 2: Tester tous les agents (décommentez pour activer)
"""
print("\n=== Test de tous les agents ===")
for agent_name in available_agents:
prompt = test_prompts.get(agent_name, "Présente-toi et explique tes capacités.")
run_agent_demo(agent_name, prompt)
print("\n" + "=" * 80)
"""