llm_lab_perso/utils/agent_manager.py
2025-03-27 18:40:52 +01:00

59 lines
1.8 KiB
Python

"""
Gestionnaire d'agents permettant la création d'agents spécifiques avec leurs modèles associés
"""
from core.factory import LLMFactory
from agents.roles import AGENTS
class AgentManager:
"""
Classe utilitaire pour créer et configurer des agents avec leurs modèles associés
"""
@staticmethod
def create(agent_name):
"""
Crée et configure un agent avec le modèle approprié
Args:
agent_name (str): Nom de l'agent à créer
Returns:
BaseLLM: Instance du modèle configurée avec le rôle de l'agent
Raises:
ValueError: Si l'agent n'existe pas
"""
if agent_name not in AGENTS:
raise ValueError(f"Agent inconnu: {agent_name}")
agent_config = AGENTS[agent_name]
# Sélectionner le modèle spécifié pour l'agent ou utiliser mistral7b par défaut
model_name = agent_config.get("model", "mistral7b")
# Créer le modèle
model = LLMFactory.create(model_name)
# Appliquer la configuration de l'agent
model.set_role(agent_name, agent_config)
return model
@staticmethod
def list_agents():
"""
Liste tous les agents disponibles avec leurs modèles associés
Returns:
dict: Dictionnaire des agents et leurs modèles associés
"""
agents_info = {}
for agent_name, config in AGENTS.items():
model = config.get("model", "mistral7b")
agents_info[agent_name] = {
"model": model,
"description": config.get("system_prompt", "")[:50] + "..." if len(config.get("system_prompt", "")) > 50 else config.get("system_prompt", "")
}
return agents_info