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 (Any) – La valeur de la statistique.

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

  • unit (str, optionnel) – L’unité de mesure de la statistique. Par défaut « « .

  • format_str (str, optionnel) – La chaîne de formatage pour la valeur. Par défaut « {} ».

value

La valeur brute de la statistique.

Type:

Any

label

Le libellé de la statistique.

Type:

str

unit

L’unité de la statistique.

Type:

str

format_str

La chaîne de formatage pour l’affichage.

Type:

str

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é:

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

Initialise une section de statistiques, qui regroupe plusieurs StatItem.

Paramètres:
  • title (str) – Le titre de la section (ex: « URLs », « LLM »).

  • items (Dict[str, StatItem]) – Un dictionnaire d’éléments de statistique.

title

Le titre de la section.

Type:

str

items

Les éléments de statistique de la section.

Type:

Dict[str, StatItem]

get_item_value(key: str) Any[source]

Récupère la valeur brute d’un élément de statistique par sa clé.

Paramètres:

key (str) – La clé de l’élément de statistique à récupérer.

Renvoie:

La valeur brute de l’élément, ou « N/A » si la clé n’existe pas.

Type renvoyé:

Any

get_formatted_value(key: str) str[source]

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

Paramètres:

key (str) – La clé de l’élément de statistique à récupérer.

Renvoie:

La valeur formatée de l’élément, ou « N/A » si la clé n’existe pas.

Type renvoyé:

str

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:

ConfigManager

logger

Le logger.

Type:

SmartWatchLogger

db_manager

Le gestionnaire de base de données pour exécuter les requêtes.

Type:

DatabaseManager

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é:

StatsSection

_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é:

StatsSection

_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é:

StatsSection

_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é:

StatsSection

_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é:

StatsSection

_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é:

StatsSection

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.

Paramètres:

template (str) – La chaîne de template contenant des placeholders.

Renvoie:

Le texte généré avec les valeurs des statistiques insérées.

Type renvoyé:

str

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]