#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Classe de base pour tous les agents LLM """ from typing import List, Dict, Any, Optional class LLMBaseAgent: """ Classe de base pour tous les agents LLM. Fournit des méthodes communes pour interagir avec différents modèles de langage. """ def __init__(self, model_name: str, endpoint: str = "http://217.182.105.173:11434", **config): """ Initialise un agent LLM Args: model_name (str): Nom du modèle à utiliser endpoint (str): URL de l'API Ollama ou autre endpoint **config: Paramètres de configuration supplémentaires - temperature (float): Température pour la génération (défaut: 0.2) - top_p (float): Valeur top_p (défaut: 0.95) - top_k (int): Valeur top_k (défaut: 40) - max_tokens (int): Nombre maximal de tokens à générer (défaut: 1024) - language (str): Langue pour les prompts ("fr" ou "en") """ self.model_name = model_name self.endpoint = endpoint # Paramètres par défaut self.config = { "temperature": 0.2, "top_p": 0.95, "top_k": 40, "max_tokens": 1024, "language": "fr" } # Mise à jour avec les paramètres fournis self.config.update(config) def generate(self, prompt: str, images: Optional[List[bytes]] = None) -> str: """ Génère une réponse à partir d'un prompt et d'images optionnelles Args: prompt (str): Le texte du prompt images (List[bytes], optional): Liste d'images en bytes Returns: str: La réponse générée par le modèle """ raise NotImplementedError("Cette méthode doit être implémentée par les classes dérivées") def get_params(self) -> Dict[str, Any]: """ Renvoie les paramètres actuels de l'agent Returns: Dict[str, Any]: Les paramètres de configuration """ return { "modèle": self.model_name, **self.config } def update_config(self, **kwargs): """ Met à jour la configuration de l'agent Args: **kwargs: Paramètres à mettre à jour """ self.config.update(kwargs)