fix(cli): avoid duplicate ONNX native load in Windows frozen
This commit is contained in:
@@ -80,6 +80,17 @@ _SUPPORTED_EXT = {
|
||||
".jpg", ".jpeg", ".png", ".tif", ".tiff", ".bmp",
|
||||
}
|
||||
|
||||
# Le CLI production n'utilise pas le manager ONNX legacy/Optimum
|
||||
# (NerModelManager). Le désactiver évite un second chargement natif ONNX dans le
|
||||
# même process Windows/PyInstaller avant CamemBERT-bio, qui est le modèle
|
||||
# obligatoire du CLI.
|
||||
os.environ.setdefault("ANON_SKIP_LEGACY_ONNX_MANAGER", "1")
|
||||
|
||||
_n_cpu_threads = str(os.cpu_count() or 4)
|
||||
for _env in ("OMP_NUM_THREADS", "MKL_NUM_THREADS", "OPENBLAS_NUM_THREADS",
|
||||
"NUMEXPR_NUM_THREADS", "VECLIB_MAXIMUM_THREADS"):
|
||||
os.environ.setdefault(_env, _n_cpu_threads)
|
||||
|
||||
|
||||
def _resolve(p: str) -> Path:
|
||||
"""Résout un chemin relatif contre le cwd de lancement (pas _MEIPASS)."""
|
||||
@@ -140,12 +151,6 @@ def main(argv: list[str] | None = None) -> int:
|
||||
log.error("CLI: aucun document supporté trouvé sous %s", inp)
|
||||
return 2
|
||||
|
||||
import anonymizer_core_refactored_onnx as core
|
||||
|
||||
# H1 : aligne les threads torch (idempotent).
|
||||
if hasattr(core, "_configure_torch_threads"):
|
||||
core._configure_torch_threads()
|
||||
|
||||
# --- Modèles ---
|
||||
# OBLIGATOIRE (sauf --no-ner) : CamemBERT-bio ONNX. Fail-closed.
|
||||
eds_mgr = camembert_mgr = gliner_mgr = None
|
||||
@@ -189,6 +194,12 @@ def main(argv: list[str] | None = None) -> int:
|
||||
log.warning("CLI: --no-ner -> MODE REGEX SEUL assumé (aucun modèle NER). "
|
||||
"Qualité réduite : à n'utiliser qu'en connaissance de cause.")
|
||||
|
||||
import anonymizer_core_refactored_onnx as core
|
||||
|
||||
# H1 : aligne les threads torch (idempotent).
|
||||
if hasattr(core, "_configure_torch_threads"):
|
||||
core._configure_torch_threads()
|
||||
|
||||
use_ner = bool(eds_mgr or gliner_mgr or camembert_mgr)
|
||||
log.info("CLI: %d document(s), ner=%s (camembert=%s eds=%s gliner=%s) -> sortie=%s",
|
||||
len(docs), use_ner, bool(camembert_mgr), bool(eds_mgr), bool(gliner_mgr), out_root)
|
||||
|
||||
Reference in New Issue
Block a user