#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Module définissant la classe abstraite de base pour les modèles LLM. """ from abc import ABC, abstractmethod from typing import Dict, Any, Optional class LLM(ABC): """ Classe abstraite définissant l'interface commune pour tous les modèles LLM. """ def __init__(self, api_key: Optional[str] = None): """ Initialise l'instance LLM avec une clé API. Args: api_key: Clé API pour accéder au service LLM """ self.api_key = api_key self.system_prompt = "" @abstractmethod def generate_response(self, prompt: str, **kwargs) -> Dict[str, Any]: """ Génère une réponse à partir d'un prompt. Args: prompt: Texte d'entrée pour la génération **kwargs: Options supplémentaires Returns: Dictionnaire contenant la réponse et les métadonnées """ pass @abstractmethod def analyze_image(self, image_path: str, prompt: str, **kwargs) -> Dict[str, Any]: """ Analyse une image selon un prompt. Args: image_path: Chemin vers l'image à analyser prompt: Instructions pour l'analyse **kwargs: Options supplémentaires Returns: Dictionnaire contenant l'analyse et les métadonnées """ pass