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

Gestionnaire de statistiques basé sur les requêtes SQL. Refactorisation avec libellés et unités pour un affichage flexible.

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 = '{}')[source]

Initialise un élément de statistique.

Paramètres:
  • value (Any) – la valeur de la statistique.

  • label (str) – le libellé de la statistique.

  • unit (str) – l’unité de la statistique.

  • format_str (str) – le format de la valeur, par défaut « {} ».

formatted_value() str[source]

Retourne la valeur formatée avec son unité.

Si l’unité est vide, retourne juste la valeur formatée. Si la valeur est None, retourne « N/A ».

Renvoie:

la valeur formatée avec son unité ou juste la valeur.

Type renvoyé:

str

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])[source]

Initialise une section de statistiques. :param title: le titre de la section. :type title: str :param items: les éléments de statistique dans la section. :type items: Dict[str, StatItem]

get_item_value(key: str) Any[source]

Récupère la valeur d’un élément de statistique.

Paramètres:

key (str) – la clé de l’élément de statistique.

Renvoie:

la valeur de l’élément de statistique, ou « N/A »

Type renvoyé:

Any

get_formatted_value(key: str) str[source]

Récupère la valeur formatée d’un élément de statistique.

Paramètres:

key (str) – la clé de l’élément de statistique.

Renvoie:

la valeur formatée de l’élément de statistique, ou « N

Type renvoyé:

str

class src.smart_watch.core.StatsManager.StatsManager(config: ConfigManager, logger)[source]

Bases : object

Gestionnaire de statistiques basé sur les requêtes SQL.

__init__(config: ConfigManager, logger)[source]

Initialise le gestionnaire de statistiques. :param config: instance de gestionnaire de configuration. :type config: ConfigManager :param logger: instance de logger pour les messages.

get_pipeline_stats() Dict[str, StatsSection][source]

Génère les statistiques du pipeline avec libellés et unités.

Renvoie:

dictionnaire des sections de statistiques.

Type renvoyé:

Dict[str, StatsSection]

_get_header_stats() StatsSection[source]

Crée une section de statistiques pour l’en-tête de l’exécution.

Renvoie:

Un objet StatsSection contenant :
  • L’ID d’exécution (“global”).

  • L’horodatage actuel de la génération des statistiques.

Type renvoyé:

StatsSection

_get_url_stats() StatsSection[source]

Calcule et retourne les statistiques sur le traitement des URLs.

Renvoie:

Un objet StatsSection contenant les statistiques suivantes :
  • Le nombre total d’URLs traitées.

  • Le nombre de succès et d’échecs.

  • Le taux de réussite.

  • La taille moyenne du contenu.

  • Le nombre d’erreurs HTTP et de timeouts.

Type renvoyé:

StatsSection

_get_markdown_stats() StatsSection[source]

Calcule et retourne les statistiques sur le traitement des fichiers Markdown.

Renvoie:

Un objet StatsSection contenant les statistiques suivantes :
  • Le nombre de documents traités, nettoyés et filtrés.

  • La taille moyenne du contenu après filtrage.

  • Le nombre total de caractères supprimés pendant le nettoyage.

Type renvoyé:

StatsSection

_get_llm_stats() StatsSection[source]

Calcule et retourne les statistiques sur les extractions faites par le LLM.

Renvoie:

Un objet StatsSection contenant les statistiques suivantes :
  • Le nombre d’extractions tentées, réussies (JSON et OSM), et échouées.

  • Le taux de réussite.

  • La taille moyenne des horaires extraits.

  • Les émissions totales de CO2.

Type renvoyé:

StatsSection

_get_comparison_stats() StatsSection[source]

Calcule et retourne les statistiques sur la comparaison des horaires.

Renvoie:

Un objet StatsSection contenant les statistiques suivantes :
  • Le nombre total de comparaisons.

  • Le nombre d’horaires identiques ou différents.

  • Le nombre de cas non comparés.

  • Le taux de précision global.

Type renvoyé:

StatsSection

_get_global_stats() StatsSection[source]

Calcule et retourne les statistiques globales sur l’ensemble de l’exécution.

Renvoie:

Un objet StatsSection contenant les informations récapitulatives suivantes :
  • L’ID d’exécution.

  • Le nombre total d’enregistrements.

  • Le nombre d’enregistrements avec erreurs.

  • La date d’exécution.

  • Le modèle et le fournisseur LLM utilisés.

  • Les émissions totales de CO2 pour l’ensemble du processus.

Type renvoyé:

StatsSection

display_stats()[source]

Affiche les statistiques de manière formatée en itérant sur les sections.

generate_custom_text(template: str) str[source]

Génère un texte personnalisé en remplaçant les variables dans le template. :param template: le template avec des variables au format {section.item}. :type template: str

Renvoie:

le texte généré avec les variables remplacées par les valeurs des statistiques.

Type renvoyé:

str

get_stats_for_api() Dict[str, Any][source]

Retourne les statistiques dans un format adapté pour une API.

Renvoie:

dictionnaire des statistiques avec les sections et leurs éléments.

Type renvoyé:

Dict[str, Any]