llm_ticket3/llm/llm_base.py
2025-04-02 09:01:55 +02:00

52 lines
1.4 KiB
Python

#!/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