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
HorairesComparatorpour 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 :
Truesi les horaires sont identiques.Falsesi des différences sont détectées, avec une description des écarts.Nonesi 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
- class src.smart_watch.processing.comparison_processor.ComparisonProcessor(config: ConfigManager, logger: SmartWatchLogger)[source]
Bases :
objectProcesseur pour les comparaisons d’horaires.
- __init__(config: ConfigManager, logger: SmartWatchLogger) None[source]
Initialise le processeur de comparaisons.
- Paramètres:
config (ConfigManager) – Le gestionnaire de configuration.
logger (SmartWatchLogger) – L’instance du logger pour la journalisation.
- _compare_single(comparator: HorairesComparator, resultat: ResultatsExtraction, lieu: Lieux) Dict[str, bool | None | str][source]
Compare les horaires d’un lieu à partir de différentes sources.
Cette méthode prend un résultat d’extraction et un lieu, puis compare les horaires obtenus par le LLM avec les horaires de référence (data.grandlyon.com). Elle gère les erreurs de parsing JSON et les cas où les données sont absentes.
- Paramètres:
comparator (HorairesComparator) – L’instance du comparateur d’horaires.
resultat (ResultatsExtraction) – L’objet contenant les horaires extraits par le LLM.
lieu (Lieux) – L’objet représentant le lieu, contenant les horaires de référence.
- Renvoie:
- Un dictionnaire contenant le résultat de la comparaison, avec les clés
»identique » (booléen ou None) et « differences » (chaîne de caractères).
- Type renvoyé:
- process_comparisons(db_processor: DatabaseProcessor) None[source]
Compare les horaires extraits avec les références.
- Paramètres:
db_processor (DatabaseProcessor) – Processeur de base de données