É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
Scorerpour comparer le résultat prédit avec la vérité terrain.Collecte tous les résultats et les transmet à
EvaluationMetricspour l’affichage du rapport final.
Module
- class src.smart_watch.evaluate.evaluator.MockLieu(p_url)[source]
Bases :
LieuxClasse 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 :
ResultatsExtractionClasse 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 :
objectOrchestre 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:
- logger
instance de logger.
- Type:
- markdown_cleaner
nettoyeur de contenu markdown.
- Type:
- markdown_processor
processeur de filtrage markdown.
- Type:
- llm_processor
processeur d’extraction LLM.
- Type:
- 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.