Configuration
La configuration de SmartWatch s’effectue via un fichier .env
situé à la racine du projet. Ce fichier centralise toutes les variables nécessaires au bon fonctionnement de l’application.
Création du fichier .env
La méthode recommandée est de copier le modèle fourni :
cp .env.model .env
Ensuite, ouvrez le fichier .env
dans un éditeur de texte et modifiez les valeurs selon vos besoins.
Détail des variables
Les variables sont regroupées par fonctionnalité.
Fichiers CSV
Ces URLs pointent vers les fichiers de données utilisés par l’application.
CSV_URL_HORAIRES
: (Requis) URL du fichier CSV principal listant les établissements à vérifier. Format attendu :type_lieu;identifiant;nom;url
.CSV_URL_PISCINES
,CSV_URL_MAIRIES
,CSV_URL_MEDIATHEQUES
: (Requis) URLs vers les fichiers de référence de data.grandlyon.com pour la comparaison des données.
Paramètres de traitement
NB_THREADS_URL
: Nombre de threads pour télécharger le contenu des URLs en parallèle. (Défaut: 20)LOG_LEVEL
: Niveau de verbosité des logs (DEBUG, INFO, WARNING, ERROR). (Défaut: DEBUG)
Filtrage sémantique du Markdown
Ces paramètres contrôlent la manière dont le contenu HTML (converti en Markdown) est filtré par embeddings pour n’en garder que les parties pertinentes.
SIMILARITY_THRESHOLD
: Seuil de similarité (entre 0.0 et 1.0) pour qu’une phrase soit considérée comme pertinente. (Défaut: 0.5)CHUNK_SIZE
: Taille des chunks de texte pour le découpage du Markdown. (Défaut: 100)CHUNK_OVERLAP
: Nombre de phrases qui se chevauchent entre les chunks. Cela permet de conserver le contexte entre les phrases. (Défaut: 15)CONTEXT_WINDOW_SIZE
: Nombre de chunks de contexte à inclure avant et après une phrase pertinente. Cela permet de conserver le contexte autour des phrases extraites. (Défaut: 1)MIN_CONTENT_LENGTH
: Longueur minimale (en caractères) du Markdown pour que le filtrage soit appliqué. Cela permet d’éviter de traiter des contenus déjà suffisamment courts. (Défaut: 1000)REFERENCE_PHRASES
: Phrases de référence (séparées par;;
) utilisées pour identifier les sections pertinentes du Markdown. Ces phrases servent de guide pour le filtrage sémantique.
Configuration des modèles d’embeddings
Configurez ici le modèle à utiliser pour le filtrage sémantique du contenu. Vous pouvez utiliser soit une API compatible OpenAI, soit l’API Mistral, indépendamment du LLM principal.
Pour embeddings via API compatible OpenAI :
EMBED_API_KEY_OPENAI
: Votre clé d’API pour les embeddings.EMBED_BASE_URL_OPENAI
: L’URL de base de l’API (ex:http://localhost:1234/v1
).EMBED_MODELE_OPENAI
: Le nom/identifiant du modèle à utiliser (ex:nomic-embed-text
).
Pour embeddings via API Mistral :
EMBED_API_KEY_MISTRAL
: Votre clé d’API Mistral pour les embeddings.EMBED_MODELE_MISTRAL
: Le nom du modèle (ex:nomic-embed-text
).
Pour embeddings locaux avec sentence-transformers :
EMBED_MODELE_LOCAL
: Le nom du modèle à utiliser (ex:paraphrase-multilingual-MiniLM-L12-v2
).
Configuration du LLM
Configurez ici le modèle de langage qui extraira les horaires.
LLM_TIMEOUT
: Temps maximum d’attente (en secondes) pour une réponse du LLM. (Défaut: 600)
Pour un LLM compatible OpenAI (LM Studio, etc.) :
LLM_API_KEY_OPENAI
: Votre clé d’API.LLM_BASE_URL_OPENAI
: L’URL de base de l’API (ex:http://localhost:1234/v1
).LLM_MODELE_OPENAI
: Le nom/identifiant du modèle à utiliser.
Pour Mistral AI :
LLM_API_KEY_MISTRAL
: Votre clé d’API Mistral.LLM_MODELE_MISTRAL
: Le nom du modèle (ex:mistral-large-latest
).
Note
Vous devez définir la clé API pour un seul fournisseur LLM. Si les deux sont définies, la configuration OpenAI sera prioritaire (cf. smart_watch.processing.markdown_processor.MarkdownProcessor._init_embedding_client()
)
Envoi de rapport par email
Pour permettre l’envoi du rapport par email, complétez ces variables.
MAIL_EMETTEUR
: Adresse email de l’expéditeur.MAIL_RECEPTEUR
: Adresse(s) email du ou des destinataires (séparées par une virgule si plusieurs).SMTP_SERVER
: Adresse du serveur SMTP.SMTP_PORT
: Port du serveur SMTP (ex: 465 pour SSL, 587 pour TLS).SMTP_LOGIN
: Votre nom d’utilisateur SMTP.SMTP_PASSWORD
: Votre mot de passe SMTP.