Béranger Thomas
PythonLLMWeb ScrapingEmbeddingsNLP

SmartWatch

SmartWatch

Pipeline de scraping des horaires d'établissements publics lyonnais. Exploite embeddings et LLM pour produire une sortie structurée et univoque, comparée à data.grandlyon.com.

Contexte

Développé lors de mon stage à la Métropole de Lyon, SmartWatch automatise la mise à jour des horaires d’ouverture des établissements publics sur le portail data.grandlyon.com. Jusqu’alors, plusieurs techniciens du service Données Métropolitaines effectuaient cette vérification manuellement pour près de 200 sites (mairies, piscines, médiathèques).

Architecture

Le pipeline combine plusieurs technologies :

  1. Web scraping avec Playwright pour récupérer le contenu des pages web des établissements
  2. Conversion en Markdown avec nettoyage des caractères superflus
  3. Filtrage sémantique par embeddings pour identifier les sections pertinentes
  4. Extraction structurée via LLM (devstral) avec sortie JSON contrainte
  5. Comparaison avec les horaires existants dans data.grandlyon.com (format OSM)
  6. Reporting : rapport HTML autonome envoyé par email

Résultats & Impact

Défis relevés

Voir la démo → GitHub ↗