Markdown Filtering Configuration

Le module MarkdownFilteringConfigManager configure le filtrage sémantique des textes Markdown. Son rôle est de paramétrer le processus qui identifie et extrait les sections de texte pertinentes en utilisant des modèles d’embeddings.

Usage

Ce gestionnaire est instancié par le ConfigManager. L’application accède à ses paramètres via ConfigManager.markdown_filtering pour configurer le MarkdownProcessor.

Fonctionnalités

  • Détection du fournisseur d’embeddingscomme pour les LLMs, le fournisseur est détecté automatiquement selon les variables d’environnement, avec la priorité suivante :
    1. OpenAI (ou compatible) si EMBED_API_KEY_OPENAI est définie.

    2. Mistral si EMBED_API_KEY_MISTRAL est définie.

    3. Modèle Local par défaut.

  • Paramètres de filtrage sémantiqueconfigure tous les aspects du filtrage :
    • REFERENCE_PHRASES : une liste de phrases de référence (séparées par ;;) contre lesquelles le contenu sera comparé.

    • SIMILARITY_THRESHOLD : le score de similarité (entre 0.0 et 1.0) requis pour qu’un chunk soit considéré comme pertinent.

    • CHUNK_SIZE et CHUNK_OVERLAP : la taille des segments de texte et leur chevauchement lors de la création des embeddings.

  • Validation : la méthode validate vérifie la cohérence des paramètres (ex: CHUNK_OVERLAP doit être inférieur à CHUNK_SIZE), la validité de leurs valeurs, et la présence des clés d’API pour les fournisseurs distants.

Modules

class src.smart_watch.config.markdown_filtering_config.MarkdownFilteringConfig(config_data: Dict[str, Any])[source]

Bases : object

Encapsule la configuration pour le filtrage de contenu Markdown.

Cette classe stocke les paramètres spécifiques au filtrage sémantique de documents Markdown, y compris la configuration du fournisseur d’embeddings et les seuils de similarité.

embed_fournisseur

le fournisseur d’embeddings à utiliser (« OPENAI », « MISTRAL », ou « LOCAL »).

Type:

str

embed_modele

le modèle d’embedding à utiliser.

Type:

Optional[str]

embed_api_key

la clé API pour le service d’embedding.

Type:

Optional[str]

embed_base_url

l’URL de base pour le service d’embedding (spécifique à OpenAI).

Type:

Optional[str]

similarity_threshold

le seuil de similarité pour filtrer les contenus.

Type:

Optional[float]

chunk_size

la taille des morceaux (chunks) de texte.

Type:

Optional[int]

chunk_overlap

le chevauchement entre les morceaux de texte.

Type:

Optional[int]

min_content_length

la longueur minimale du contenu pour être traité.

Type:

Optional[int]

reference_phrases

les phrases de référence pour la comparaison de similarité.

Type:

Optional[List[str]]

context_window_size

la taille de la fenêtre de contexte pour l’analyse.

Type:

int

__init__(config_data: Dict[str, Any]) None[source]

Initialise l’objet de configuration de filtrage Markdown.

Paramètres:

config_data (Dict[str, Any]) – un dictionnaire contenant les données de configuration, chargées depuis des variables d’environnement.

_determine_embed_provider(config_data: Dict[str, Any]) str[source]

Détermine le fournisseur d’embeddings à partir de la configuration.

La sélection est basée sur la présence de clés API spécifiques dans l’ordre suivant : OpenAI, Mistral, puis Local par défaut.

Paramètres:

config_data (Dict[str, Any]) – le dictionnaire de configuration contenant les clés API.

Renvoie:

le nom du fournisseur d’embeddings (« OPENAI », « MISTRAL », ou « LOCAL »).

Type renvoyé:

str

class src.smart_watch.config.markdown_filtering_config.MarkdownFilteringConfigManager(env_file: Path | None = None)[source]

Bases : BaseConfig

Gère le chargement et la validation de la configuration de filtrage Markdown.

Cette classe hérite de BaseConfig pour charger les variables d’environnement et initialise un objet MarkdownFilteringConfig validé.

config

l’objet de configuration contenant tous les paramètres de filtrage.

Type:

MarkdownFilteringConfig

_load_environment()

Charge les variables d’environnement depuis le fichier .env.

Réinitialise d’abord les variables (sauf en environnement conteneurisé) puis charge celles du fichier .env. Si le fichier n’existe pas, utilise les variables système existantes.

_reset_environment()

Réinitialise les variables d’environnement du fichier .env.

Supprime les variables chargées depuis le fichier .env pour éviter les conflits avec les variables système ou conteneurisées. Ne s’exécute pas dans un environnement conteneurisé.

get_env_var(key: str, default: str | None = None, required: bool = False) str | None

Récupère une variable d’environnement de manière sécurisée.

Paramètres:
  • key (str) – la clé de la variable d’environnement à récupérer.

  • default (Optional[str], optional) – la valeur par défaut si la variable n’est pas trouvée.

  • required (bool) – si True, lèvera une exception si la valeur est manquante.

Renvoie:

la valeur de la variable d’environnement, ou None.

Type renvoyé:

Optional[str]

Lève:

ValueError – si la variable est requise mais non définie.

__init__(env_file: Path | None = None) None[source]

Initialise le gestionnaire de configuration.

Paramètres:

env_file (Optional[Path], optional) – le chemin vers un fichier .env. Par défaut, None.

_init_markdown_filtering_config() MarkdownFilteringConfig[source]

Initialise l’objet de configuration à partir des variables d’environnement.

Renvoie:

un objet de configuration initialisé.

Type renvoyé:

MarkdownFilteringConfig

validate() bool[source]

Valide la configuration chargée.

Vérifie la cohérence des paramètres, comme la présence de clés API pour les fournisseurs distants et la validité des valeurs numériques.

Renvoie:

True si la configuration est valide.

Type renvoyé:

bool

Lève:

ValueError – si une ou plusieurs erreurs de validation sont détectées.