=============== Stack technique =============== Voici un aperçu des technologies employées. Langage du projet ================= `Python `__ Langage unique du projet. Framework et bibliothèques principales ====================================== Traitement de données --------------------- `Polars `__ Pour le chargement et la manipulation de données tabulaires. `SQLAlchemy `__ Pour la gestion de la base de données SQLite. `SQLite `__ Pour stocker les résultats d'extraction et les métadonnées. Web scraping et traitement HTML ------------------------------- `BeautifulSoup4 `__ Parseur HTML/XML pour extraire le contenu des pages web de manière robuste. `Requests `__ Bibliothèque HTTP pour récupérer le contenu des pages web. `html2text `__ Conversion du HTML en Markdown pour faciliter le traitement par les modèles de langage. Intelligence artificielle ------------------------- `OpenAI API `__ Interface standardisée pour communiquer avec les modèles de langage. `Mistral AI `__ Proposé en tant qu'alternative aux interfaces compatibles OpenAI. Utilise la librairie `mistralai` native. `Embeddings `__ Utilisés pour filtrer le contenu Markdown. Fonctionne avec un modèle accessible via la même API compatible OpenAI que le LLM. Configuration et environnement ------------------------------ `python-dotenv `__ Gestion des variables d'environnement via fichiers ``.env`` pour une configuration flexible. `Pydantic `__ `Dataclasses `__ Validation et typage des données. Parallélisme et performance --------------------------- `ThreadPoolExecutor `__ Traitement parallèle des URLs pour accélérer la récupération du contenu web. Logging et monitoring --------------------- `Logging standard Python `__ Système de journalisation centralisé avec rotation automatique des fichiers. Gestion d'erreurs centralisée Capture et traitement uniforme des exceptions avec contexte détaillé. `CodeCarbon `__ Mesure les émissions de CO2 des appels aux modèles de langage pour un suivi de l'impact environnemental. Communication ------------- `SMTP (smtplib) `__ Envoi automatique des rapports par email avec support SSL/TLS. `Jinja2 `__ Moteur de templates pour la génération de rapports HTML personnalisés. Déploiement =========== `Docker `__ Conteneurisation pour un déploiement simplifié et reproductible. `GitHub Actions `__ CI/CD pour le déploiement Docker et de la documentation. `Sphinx `__ `Read the Docs Theme `__ Génération automatique de documentation technique à partir du code. Formats de données ================== `CSV `__ Format d'entrée pour les listes d'établissements et données de référence. `JSON `__ Format intermédiaire pour les horaires extraits par les LLMs. `OSM (OpenStreetMap) `__ Format de sortie standardisé pour les horaires d'ouverture. `HTML `__ Format de rapport final avec visualisations interactives.