/ postprocessors / __init__.py
__init__.py
1 """ 2 Module de post-processeurs pour l'API Cerastes 3 --------------------------------------------- 4 Ce module fournit différents post-processeurs pour améliorer et transformer 5 les résultats des inférences et des analyses. 6 7 Classes exportées: 8 - JSONSimplifier: Convertit les réponses JSON complexes en texte explicatif clair 9 """ 10 11 import logging 12 from typing import Dict, Any, List, Optional, Type 13 14 # Import des post-processeurs disponibles 15 from .json_simplifier import JSONSimplifier 16 17 # Configuration du logging 18 logger = logging.getLogger("postprocessors") 19 20 # Dictionnaire des post-processeurs disponibles 21 available_postprocessors = { 22 "json_simplifier": JSONSimplifier 23 } 24 25 def get_postprocessor(name: str, config: Dict[str, Any]) -> Optional[Any]: 26 """ 27 Récupère une instance d'un post-processeur par son nom. 28 29 Args: 30 name: Nom du post-processeur à instancier 31 config: Configuration à utiliser pour l'initialisation 32 33 Returns: 34 Instance du post-processeur ou None si non trouvé 35 """ 36 if name not in available_postprocessors: 37 logger.warning(f"Post-processeur '{name}' non trouvé") 38 return None 39 40 try: 41 processor_class = available_postprocessors[name] 42 return processor_class(config) 43 except Exception as e: 44 logger.error(f"Erreur lors de l'initialisation du post-processeur '{name}': {str(e)}") 45 return None 46 47 def list_postprocessors() -> List[str]: 48 """ 49 Liste tous les post-processeurs disponibles. 50 51 Returns: 52 Liste des noms des post-processeurs disponibles 53 """ 54 return list(available_postprocessors.keys()) 55 56 __all__ = [ 57 'JSONSimplifier', 58 'get_postprocessor', 59 'list_postprocessors', 60 'available_postprocessors' 61 ]