mirror of
https://github.com/Ladebeze66/llm_lab_perso.git
synced 2025-12-15 19:16:51 +01:00
92 lines
3.4 KiB
Python
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)
|
|
""" |