Évaluateur du Pipeline

Le module evaluator orchestre le processus d’évaluation complet.

Rôle

La classe Evaluator est le chef d’orchestre du module d’évaluation. Elle simule le pipeline de traitement de SmartWatch sur un jeu de données fourni (un fichier CSV) et utilise les autres composants (Scorer, Metrics) pour calculer et afficher les résultats.

Fonctionnalités

  • Charge un jeu de données d’évaluation depuis un fichier CSV (séparateur = ;)

  • Pour chaque item, exécute les étapes clés du pipeline : récupération de l’URL, nettoyage et filtrage du Markdown, et extraction par le LLM.

  • Fait appel au Scorer pour comparer le résultat prédit avec la vérité terrain.

  • Collecte tous les résultats et les transmet à EvaluationMetrics pour l’affichage du rapport final.

Module

class src.smart_watch.evaluate.evaluator.MockLieu(p_url)[source]

Bases : Lieux

Classe mock pour Lieux.

__init__(p_url)

Initialise MockLieu.

identifiant
nom
url
type_lieu
_sa_class_manager = {'horaires_data_gl': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'horaires_data_gl_json': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'identifiant': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'nom': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'resultats': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'type_lieu': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'url': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
_sa_registry = <sqlalchemy.orm.decl_api.registry object>
horaires_data_gl
horaires_data_gl_json
metadata: MetaData = MetaData()
registry: RegistryType = <sqlalchemy.orm.decl_api.registry object>
resultats
class src.smart_watch.evaluate.evaluator.MockResultForLLM(p_md_filtre, p_md_nettoye, p_md_brut)[source]

Bases : ResultatsExtraction

Classe mock pour ResultatsExtraction.

__init__(p_md_filtre, p_md_nettoye, p_md_brut)

Initialise MockResultForLLM.

markdown_filtre
markdown_nettoye
markdown_brut
_sa_class_manager = {'code_http': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'differences_horaires': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'erreurs_pipeline': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'execution': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'horaires_identiques': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id_execution': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'id_resultats_extraction': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'lieu': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'lieu_id': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'llm_consommation_requete': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'llm_horaires_json': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'llm_horaires_osm': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'markdown_brut': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'markdown_filtre': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'markdown_nettoye': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'message_url': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'prompt_message': <sqlalchemy.orm.attributes.InstrumentedAttribute object>, 'statut_url': <sqlalchemy.orm.attributes.InstrumentedAttribute object>}
_sa_registry = <sqlalchemy.orm.decl_api.registry object>
code_http
differences_horaires
erreurs_pipeline
execution
horaires_identiques
id_execution
id_resultats_extraction
lieu
lieu_id
llm_consommation_requete
llm_horaires_json
llm_horaires_osm
message_url
metadata: MetaData = MetaData()
prompt_message
registry: RegistryType = <sqlalchemy.orm.decl_api.registry object>
statut_url
class src.smart_watch.evaluate.evaluator.Evaluator(config: ConfigManager, logger: SmartWatchLogger)[source]

Bases : object

Orchestre l’évaluation du pipeline sur un jeu de données.

__init__(config: ConfigManager, logger: SmartWatchLogger) None[source]

Initialise l’évaluateur avec la configuration et le logger.

Cette méthode configure tous les composants nécessaires pour effectuer l’évaluation du pipeline : nettoyeur de markdown, processeur de markdown, processeur LLM et scoreur.

Paramètres:
  • config (ConfigManager) – gestionnaire de configuration du système.

  • logger (SmartWatchLogger) – instance de logger pour la journalisation des événements.

config

gestionnaire de configuration.

Type:

ConfigManager

logger

instance de logger.

Type:

SmartWatchLogger

markdown_cleaner

nettoyeur de contenu markdown.

Type:

MarkdownCleaner

markdown_processor

processeur de filtrage markdown.

Type:

MarkdownProcessor

llm_processor

processeur d’extraction LLM.

Type:

LLMProcessor

scorer

scoreur pour comparer les résultats.

Type:

Scorer

results

liste des résultats de scoring.

Type:

List[ScoreResult]

_process_single_item(url: str, ground_truth_osm: str) ScoreResult[source]

Exécute le pipeline complet pour une seule URL et la score.

run(evaluation_file: str) None[source]

Lance l’évaluation sur l’ensemble du fichier.