mirror of
https://github.com/Ladebeze66/llm_lab.git
synced 2025-12-13 10:46:50 +01:00
50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
from datetime import datetime
|
|
from typing import Dict, List, Any, Optional
|
|
|
|
class Agent:
|
|
"""Classe de base pour tous les agents d'analyse"""
|
|
|
|
def __init__(self, nom: str = "Agent"):
|
|
"""
|
|
Initialisation d'un agent
|
|
|
|
Args:
|
|
nom: Nom de l'agent
|
|
"""
|
|
self.nom: str = nom
|
|
self.historique: List[Dict[str, Any]] = []
|
|
|
|
def ajouter_historique(self, action: str, input_data: Any, output_data: Any) -> None:
|
|
"""
|
|
Ajoute une entrée dans l'historique de l'agent
|
|
|
|
Args:
|
|
action: Type d'action effectuée
|
|
input_data: Données d'entrée de l'action
|
|
output_data: Résultat de l'action
|
|
"""
|
|
self.historique.append({
|
|
"timestamp": datetime.now().isoformat(),
|
|
"action": action,
|
|
"input": str(input_data)[:500], # Limite pour éviter des historiques trop grands
|
|
"output": str(output_data)[:500] # Limite pour éviter des historiques trop grands
|
|
})
|
|
|
|
def obtenir_historique(self) -> List[Dict[str, Any]]:
|
|
"""
|
|
Retourne l'historique complet de l'agent
|
|
|
|
Returns:
|
|
Liste des actions effectuées par l'agent
|
|
"""
|
|
return self.historique
|
|
|
|
def executer(self, *args, **kwargs) -> Any:
|
|
"""
|
|
Méthode abstraite à implémenter dans les classes dérivées
|
|
C'est la méthode principale qui exécute la tâche spécifique de l'agent
|
|
|
|
Returns:
|
|
Résultat de l'exécution, dépend de l'implémentation de chaque agent
|
|
"""
|
|
raise NotImplementedError("Chaque agent doit implémenter sa propre méthode executer()") |