Gestionnaire de Statistiques
Le module StatsManager
collecte, analyse et présente les statistiques d’exécution du pipeline de traitement.
Usage
StatsManager
est utilisé à la fin du pipeline pour générer un résumé des performances et des résultats du traitement.
Fonctionnalités
Extrait les indicateurs clés depuis la base de données via des requêtes SQL.
Structure les statistiques par section (URLs, Markdown, LLM, Comparaisons, Global).
Fournit des méthodes pour afficher les statistiques dans les logs ou les formater pour une API.
Calcule des métriques de performance (taux de réussite, temps de traitement, etc.).
Modules
- class src.smart_watch.core.StatsManager.StatItem(value: Any, label: str, unit: str = '', format_str: str = '{}')[source]
Bases :
object
Représente un élément de statistique avec sa valeur, son libellé et son unité.
- __init__(value: Any, label: str, unit: str = '', format_str: str = '{}') None [source]
Initialise un élément de statistique.
- Paramètres:
- value
La valeur brute de la statistique.
- Type:
Any
- formatted_value() str [source]
Retourne la valeur de la statistique formatée pour l’affichage.
La valeur est formatée en utilisant format_str et l’unité est ajoutée si elle est définie. Si la valeur est None, la méthode retourne « N/A ».
- Renvoie:
La valeur formatée, incluant l’unité si disponible.
- Type renvoyé:
- class src.smart_watch.core.StatsManager.StatsSection(title: str, items: Dict[str, StatItem])[source]
Bases :
object
Représente une section de statistiques.
- __init__(title: str, items: Dict[str, StatItem]) None [source]
Initialise une section de statistiques, qui regroupe plusieurs StatItem.
- Paramètres:
- class src.smart_watch.core.StatsManager.StatsManager(config: ConfigManager, logger: SmartWatchLogger)[source]
Bases :
object
Gestionnaire de statistiques basé sur les requêtes SQL.
- __init__(config: ConfigManager, logger: SmartWatchLogger) None [source]
Initialise le gestionnaire de statistiques.
- Paramètres:
config (ConfigManager) – L’instance du gestionnaire de configuration.
logger (SmartWatchLogger) – L’instance du logger pour l’enregistrement des messages.
- config
Le gestionnaire de configuration.
- Type:
- logger
Le logger.
- Type:
- db_manager
Le gestionnaire de base de données pour exécuter les requêtes.
- Type:
- get_pipeline_stats() Dict[str, StatsSection] [source]
Génère un rapport complet des statistiques du pipeline.
Cette méthode agrège les statistiques de chaque étape du pipeline (URLs, Markdown, LLM, etc.) en appelant les méthodes dédiées pour chaque section.
- Renvoie:
- Un dictionnaire où chaque clé est le nom d’une section
et la valeur est un objet StatsSection contenant les statistiques.
- Type renvoyé:
Dict[str, StatsSection]
- _get_header_stats() StatsSection [source]
Crée la section de statistiques pour l’en-tête du rapport.
Cette section contient des informations générales sur l’exécution, comme son ID et l’horodatage.
- Renvoie:
- Un objet StatsSection contenant les statistiques de l’en-tête.
Les clés disponibles sont : - execution_id - timestamp
- Type renvoyé:
- _get_url_stats() StatsSection [source]
Calcule et retourne les statistiques sur le traitement des URLs.
Interroge la base de données pour obtenir des métriques telles que le nombre total d’URLs, les succès, les échecs, le taux de réussite, la taille moyenne du contenu, et les types d’erreurs.
- Renvoie:
- Un objet StatsSection contenant les statistiques des URLs.
Les clés disponibles sont : - total - successful - failed - success_rate - avg_content_length - http_errors - timeout_errors
- Type renvoyé:
- _get_markdown_stats() StatsSection [source]
Calcule et retourne les statistiques sur le traitement des contenus Markdown.
Fournit des informations sur le nombre de documents traités, nettoyés et filtrés, la taille moyenne après filtrage, et le volume de caractères supprimés.
- Renvoie:
- Un objet StatsSection contenant les statistiques Markdown.
Les clés disponibles sont : - processed - cleaned - filtered - avg_filtered_length - chars_cleaned
- Type renvoyé:
- _get_llm_stats() StatsSection [source]
Calcule et retourne les statistiques sur les extractions du LLM.
Analyse les performances du LLM, incluant le nombre d’extractions tentées, réussies (JSON et OSM), et échouées, le taux de réussite, la taille moyenne des extractions et les émissions de CO2.
- Renvoie:
- Un objet StatsSection contenant les statistiques du LLM.
Les clés disponibles sont : - attempted - successful_json - successful_osm - failed - success_rate - avg_schedule_length - total_co2_emissions
- Type renvoyé:
- _get_comparison_stats() StatsSection [source]
Calcule et retourne les statistiques sur la comparaison des horaires.
Évalue la précision des extractions en comparant les horaires générés avec les données de référence, en comptabilisant les correspondances identiques, différentes et les cas non comparés.
- Renvoie:
- Un objet StatsSection contenant les statistiques de comparaison.
Les clés disponibles sont : - total - identical - different - not_compared - accuracy_rate
- Type renvoyé:
- _get_global_stats() StatsSection [source]
Calcule et retourne les statistiques globales de l’exécution.
Récapitule les informations clés de l’ensemble du pipeline, telles que le nombre total d’enregistrements, les erreurs, la date, le modèle LLM utilisé et les émissions de CO2.
- Renvoie:
- Un objet StatsSection contenant les statistiques globales.
Les clés disponibles sont : - execution_id - total_records - records_with_errors - execution_date - llm_model - llm_provider - total_co2_emissions
- Type renvoyé:
- display_stats()[source]
Affiche les statistiques complètes du pipeline dans le logger.
Cette méthode récupère toutes les sections de statistiques et les affiche de manière formatée et lisible dans les logs.
- generate_custom_text(template: str) str [source]
Génère un texte personnalisé à partir d’un template et des statistiques.
Remplace les placeholders dans la chaîne de template (ex: {urls.total}) par les valeurs de statistiques correspondantes.
- get_stats_for_api() Dict[str, Any] [source]
Formate les statistiques pour une utilisation via une API.
Convertit les objets StatsSection et StatItem en un dictionnaire sérialisable (JSON), facilitant ainsi leur exposition via un endpoint d’API.
- Renvoie:
Un dictionnaire contenant toutes les statistiques formatées pour l’API.
- Type renvoyé:
Dict[str, Any]