mirror of
https://github.com/Ladebeze66/llm_ticket3.git
synced 2025-12-17 07:07:46 +01:00
53 lines
1.6 KiB
Python
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
|