llm_ticket3/agents/utils/base_agent.py
2025-04-14 14:10:19 +02:00

53 lines
1.6 KiB
Python

from abc import ABC, abstractmethod
from typing import List, Dict, Any, Optional
import logging
class BaseAgent(ABC):
"""
Classe de base pour les agents LLM.
Fournit une structure commune à tous les agents.
"""
def __init__(self, llm: Any):
"""
Initialise un agent avec un modèle LLM.
Args:
llm: Instance du modèle de langage à utiliser
"""
self.llm = llm
self.historique: List[Dict[str, Any]] = []
def ajouter_historique(self, action: str, input_data: Any, output_data: Any):
"""
Ajoute une entrée à l'historique des actions de l'agent.
Args:
action: Nom de l'action effectuée
input_data: Données en entrée
output_data: Données en sortie
"""
# Ajouter les informations sur le modèle et les paramètres utilisés
metadata = {
"model": getattr(self.llm, "modele", str(type(self.llm))),
"model_version": getattr(self.llm, "version", "non spécifiée"),
"duree_traitement": str(getattr(self.llm, "dureeTraitement", "N/A"))
}
self.historique.append({
"action": action,
"input": input_data,
"output": output_data,
"metadata": metadata
})
@abstractmethod
def executer(self, *args, **kwargs) -> Any:
"""
Méthode abstraite à implémenter par chaque agent.
Exécute la fonction principale de l'agent.
Returns:
Any: Résultat de l'exécution
"""
pass