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