Comparison Processor

Le ComparisonProcessor est la dernière étape du pipeline de traitement. Sa fonction est de valider la qualité de l’extraction LLM en comparant les horaires obtenus avec ceux de la source de données de référence (data.grandlyon.com).

Fonctionnalités

  • Comparaison d’Horaires : Utilise l’utilitaire HorairesComparator pour effectuer une comparaison sémantique entre deux objets JSON représentant des horaires : celui extrait par le LLM et celui provenant de la source de référence.

  • Traitement Global : Récupère tous les enregistrements de la base de données qui ont une extraction LLM valide mais qui n’ont pas encore été comparés, indépendamment de leur exécution d’origine. Cela permet de rattraper les comparaisons qui auraient pu échouer lors d’exécutions précédentes.

  • Gestion des RésultatsMet à jour la base de données avec le résultat de la comparaison :
    • True si les horaires sont identiques.

    • False si des différences sont détectées, avec une description des écarts.

    • None si la comparaison n’a pas pu être effectuée (ex: données de référence manquantes).

Usage

Ce processeur s’exécute à la fin du pipeline. Ses résultats sont essentiels pour le rapport final, car ils permettent de quantifier la fiabilité des extractions et d’identifier les changements d’horaires.

Modules

Processeur pour les comparaisons d’horaires.

class src.smart_watch.processing.comparison_processor.ComparisonProcessor(config: ConfigManager, logger)[source]

Bases : object

Processeur pour les comparaisons d’horaires.

__init__(config: ConfigManager, logger)[source]
_compare_single(comparator, resultat, lieu) Dict[source]

Compare un seul enregistrement et retourne les résultats structurés.

process_comparisons(db_processor: DatabaseProcessor)[source]

Compare les horaires extraits avec les références.

Paramètres:

db_processor (DatabaseProcessor) – Processeur de base de données