feat: configuration externalisée via .env + audit requirements

- Externalise 13 variables de config via python-dotenv (chemins PDF,
  modèles Ollama/embedding/NER, FINESS, seuils) avec défauts identiques
- Centralise EMBEDDING_MODEL dans config.py (était hardcodé en 3 endroits)
- Ajoute .env.example documenté et .env au .gitignore
- Ajoute openpyxl et pandas manquants au requirements.txt
- Ajoute data/referentiels au mkdir de run.sh

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
dom
2026-02-13 19:46:33 +01:00
parent c838d75174
commit aa397d5360
7 changed files with 55 additions and 18 deletions

View File

@@ -8,6 +8,7 @@ from concurrent.futures import ThreadPoolExecutor, as_completed
from ..config import (
ActeCCAM, Diagnostic, DossierMedical, RAGSource,
OLLAMA_CACHE_PATH, OLLAMA_MAX_PARALLEL, OLLAMA_MODEL,
EMBEDDING_MODEL,
)
from .cim10_dict import normalize_code, validate_code as cim10_validate
from .cim10_extractor import BIO_NORMALS
@@ -36,12 +37,12 @@ def _get_embed_model():
_device = "cuda" if torch.cuda.is_available() else "cpu"
try:
logger.info("Chargement du modèle d'embedding (%s)...", _device)
_embed_model = SentenceTransformer("dangvantuan/sentence-camembert-large", device=_device)
_embed_model = SentenceTransformer(EMBEDDING_MODEL, device=_device)
except torch.OutOfMemoryError:
if _device == "cuda":
logger.warning("CUDA OOM pour l'embedding — fallback CPU")
torch.cuda.empty_cache()
_embed_model = SentenceTransformer("dangvantuan/sentence-camembert-large", device="cpu")
_embed_model = SentenceTransformer(EMBEDDING_MODEL, device="cpu")
else:
raise
_embed_model.max_seq_length = 512