@piecemaker-legal/piecemaker 1.0.6 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{abnfDiagram-VCTEODGH-DF7LFtT-.js → abnfDiagram-VCTEODGH-CR3_ADBu.js} +1 -1
- package/dist/assets/{arc-xOmjWeVH.js → arc-b92imMmc.js} +1 -1
- package/dist/assets/{architectureDiagram-5GKGNRK7-CESzNPwa.js → architectureDiagram-5GKGNRK7-Dfm5Epud.js} +1 -1
- package/dist/assets/{blockDiagram-I7D4REHJ-BjdN78Ad.js → blockDiagram-I7D4REHJ-B8kLLyAv.js} +1 -1
- package/dist/assets/{c4Diagram-7LVT6UL2-BcK9EDWT.js → c4Diagram-7LVT6UL2-BWSyAAWX.js} +1 -1
- package/dist/assets/channel-BbcW_Tkh.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-DGUN1JFP.js → chunk-2Q5K7J3B-Ci743mcC.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-BG3BBcFr.js → chunk-5VM5RSS4-SdXpal6h.js} +1 -1
- package/dist/assets/{chunk-F27PBJKO-CLIOfrF5.js → chunk-F27PBJKO-Rof94ueX.js} +1 -1
- package/dist/assets/{chunk-IMKFNOWR-D6lGkqij.js → chunk-IMKFNOWR-B3st6ECc.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-BmF9vLBT.js → chunk-JWPE2WC7-alXmu5xU.js} +1 -1
- package/dist/assets/{chunk-POPQ4Y6H-C_0SR3ak.js → chunk-POPQ4Y6H-dMs1OCce.js} +1 -1
- package/dist/assets/{chunk-SVP7TREG-rT20Wfpp.js → chunk-SVP7TREG-BmM8FsmF.js} +1 -1
- package/dist/assets/{chunk-TICWLB2K-Cn2hkmcf.js → chunk-TICWLB2K-CL1LytYG.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-Dm_eP1_v.js → chunk-XXDRQBXY-7U9iRPT1.js} +1 -1
- package/dist/assets/classDiagram-ZZMXUADV-D9_YRZ7i.js +1 -0
- package/dist/assets/classDiagram-v2-VYDZK3BY-D9_YRZ7i.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-cJeeJsep.js → cose-bilkent-JH36ORCC-DFOMlhj2.js} +1 -1
- package/dist/assets/{cynefin-OW5HDTMX-DX2ePIXe.js → cynefin-OW5HDTMX-CDdJFd9d.js} +1 -1
- package/dist/assets/{cynefinDiagram-5FMLGOSQ-BvWXN-RR.js → cynefinDiagram-5FMLGOSQ-DPyVNrMW.js} +1 -1
- package/dist/assets/{dagre-GXQ25YYZ-CkwPRhGR.js → dagre-GXQ25YYZ-B3bpHa9D.js} +1 -1
- package/dist/assets/{diagram-S7CK7UJ4-CBGNzYyv.js → diagram-S7CK7UJ4-DeFO2rXB.js} +1 -1
- package/dist/assets/{diagram-UQ7AKVKN-CiwCU0SJ.js → diagram-UQ7AKVKN-CbdGTOVf.js} +1 -1
- package/dist/assets/{diagram-VSXAHHWV-Aekg4nTk.js → diagram-VSXAHHWV-DFfNQyMd.js} +1 -1
- package/dist/assets/{diagram-VX7I27RA-DPFP5K7r.js → diagram-VX7I27RA-DbNZ6_X3.js} +1 -1
- package/dist/assets/{diagram-Z3DM3KII-BHJkxoey.js → diagram-Z3DM3KII-B8F-ZkNJ.js} +1 -1
- package/dist/assets/{ebnfDiagram-PWID7BFC-2rV1P32T.js → ebnfDiagram-PWID7BFC-BfCCPPAP.js} +1 -1
- package/dist/assets/{erDiagram-RLTQ6QDP-C4BjyS_H.js → erDiagram-RLTQ6QDP-DcV-3Kzv.js} +1 -1
- package/dist/assets/{flowDiagram-HODETNUW-DL1TBlAG.js → flowDiagram-HODETNUW-BwSkJXCo.js} +1 -1
- package/dist/assets/{ganttDiagram-EL5Y4UJY-MKjvzCWz.js → ganttDiagram-EL5Y4UJY-BffHk77T.js} +1 -1
- package/dist/assets/{gitGraphDiagram-WWUBYQGX-CS_oTGK5.js → gitGraphDiagram-WWUBYQGX-CQ1EWa74.js} +1 -1
- package/dist/assets/{index-XOGQDqU3.js → index-BqK33gaZ.js} +120 -120
- package/dist/assets/index-D_Dc_nQv.css +1 -0
- package/dist/assets/{infoDiagram-27XIBGKW-ihUr2GjN.js → infoDiagram-27XIBGKW-DqIaBXQn.js} +1 -1
- package/dist/assets/{ishikawaDiagram-5VMMS53U-D2YAnuir.js → ishikawaDiagram-5VMMS53U-HlhsaZgv.js} +1 -1
- package/dist/assets/{journeyDiagram-3NMN7TZE-Bc2hSZGD.js → journeyDiagram-3NMN7TZE-BYO8-7rN.js} +1 -1
- package/dist/assets/{kanban-definition-UXKFOSKX-LRMGNonX.js → kanban-definition-UXKFOSKX-DXb8zHGT.js} +1 -1
- package/dist/assets/{layout-CcfWOlPV.js → layout-CREOVuEZ.js} +1 -1
- package/dist/assets/{linear-7JoS2gQO.js → linear-CVCrIRIY.js} +1 -1
- package/dist/assets/{mermaid.core-ijh_SsuN.js → mermaid.core-DFqeWtQR.js} +6 -6
- package/dist/assets/{mindmap-definition-YA3MSWOX-DCE4nzfF.js → mindmap-definition-YA3MSWOX-SUpXz333.js} +1 -1
- package/dist/assets/{pegDiagram-XKGWAZYB-SjaGa7lE.js → pegDiagram-XKGWAZYB-D-yWpve3.js} +1 -1
- package/dist/assets/{pieDiagram-E7YTZNPT-1xcRidSZ.js → pieDiagram-E7YTZNPT-BJX4Zp4Z.js} +1 -1
- package/dist/assets/{quadrantDiagram-AXDQQJYC-obHAHnYV.js → quadrantDiagram-AXDQQJYC-CHajheTu.js} +1 -1
- package/dist/assets/{railroadDiagram-O6MQD6OU-BsCVcRZb.js → railroadDiagram-O6MQD6OU-DHJWzW5A.js} +1 -1
- package/dist/assets/{requirementDiagram-BXWQKSXE-CUNkhvqb.js → requirementDiagram-BXWQKSXE-DigUIdso.js} +1 -1
- package/dist/assets/{sankeyDiagram-P5KCCOFB-DhezXMKm.js → sankeyDiagram-P5KCCOFB-CFUDDbA5.js} +1 -1
- package/dist/assets/{sequenceDiagram-WJ2MYXX4-CL9VswXH.js → sequenceDiagram-WJ2MYXX4-6tSaXfYD.js} +1 -1
- package/dist/assets/{sizeCapture-INFHLROL-t0g9jiEz.js → sizeCapture-INFHLROL-CXASEDKe.js} +1 -1
- package/dist/assets/{stateDiagram-D77RDMKH-BW-g-IOz.js → stateDiagram-D77RDMKH-DWTCAQfZ.js} +1 -1
- package/dist/assets/stateDiagram-v2-MP3YSRHH-HDQF4MGA.js +1 -0
- package/dist/assets/{swimlanes-42K2YHIH-LsuyeBte.js → swimlanes-42K2YHIH-7-oz5r-e.js} +1 -1
- package/dist/assets/swimlanesDiagram-VR7AAH4N-CJbgQFt8.js +8 -0
- package/dist/assets/{timeline-definition-24CTP7MA-B0cFka1R.js → timeline-definition-24CTP7MA-DVH5g4ty.js} +1 -1
- package/dist/assets/{vendor-codemirror-C5qqu4R7.js → vendor-codemirror-CjW0lHR5.js} +5 -5
- package/dist/assets/{vennDiagram-4TSXK5OY-D3HNCDR3.js → vennDiagram-4TSXK5OY-CQvY_ALZ.js} +1 -1
- package/dist/assets/{wardleyDiagram-VM6X3IG4-DJ3Co8nb.js → wardleyDiagram-VM6X3IG4-BdlTJgEc.js} +1 -1
- package/dist/assets/{xychartDiagram-S5SC5T6Z-Cz5E9New.js → xychartDiagram-S5SC5T6Z-CYn2sV77.js} +1 -1
- package/dist/favicon.png +0 -0
- package/dist/favicon.svg +1 -9
- package/dist/generate-icons.js +47 -46
- package/dist/icons/icon-128x128.png +0 -0
- package/dist/icons/icon-128x128.svg +1 -12
- package/dist/icons/icon-144x144.png +0 -0
- package/dist/icons/icon-144x144.svg +1 -12
- package/dist/icons/icon-152x152.png +0 -0
- package/dist/icons/icon-152x152.svg +1 -12
- package/dist/icons/icon-192x192.png +0 -0
- package/dist/icons/icon-192x192.svg +1 -12
- package/dist/icons/icon-384x384.png +0 -0
- package/dist/icons/icon-384x384.svg +1 -12
- package/dist/icons/icon-512x512.png +0 -0
- package/dist/icons/icon-512x512.svg +1 -12
- package/dist/icons/icon-72x72.png +0 -0
- package/dist/icons/icon-72x72.svg +1 -12
- package/dist/icons/icon-96x96.png +0 -0
- package/dist/icons/icon-96x96.svg +1 -12
- package/dist/index.html +3 -3
- package/dist/logo-128.png +0 -0
- package/dist/logo-256.png +0 -0
- package/dist/logo-32.png +0 -0
- package/dist/logo-512.png +0 -0
- package/dist/logo-64.png +0 -0
- package/dist/logo-sources/logo-black.png +0 -0
- package/dist/logo-sources/logo-white.png +0 -0
- package/dist/logo.svg +1 -17
- package/dist/sw.js +1 -1
- package/dist-server/plugins/piecemaker-dossier/src/institutional-terms.js +91 -0
- package/dist-server/plugins/piecemaker-dossier/src/institutional-terms.js.map +1 -0
- package/dist-server/plugins/piecemaker-dossier/src/knowledge.js +112 -10
- package/dist-server/plugins/piecemaker-dossier/src/knowledge.js.map +1 -1
- package/dist-server/plugins/piecemaker-dossier/src/scan-result.js +5 -1
- package/dist-server/plugins/piecemaker-dossier/src/scan-result.js.map +1 -1
- package/dist-server/server/index.js +60 -26
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/modules/database/repositories/projects.db.js +28 -6
- package/dist-server/server/modules/database/repositories/projects.db.js.map +1 -1
- package/dist-server/server/modules/database/tests/projects.db.integration.test.js +58 -1
- package/dist-server/server/modules/database/tests/projects.db.integration.test.js.map +1 -1
- package/dist-server/server/modules/plugins/plugins.routes.js +8 -1
- package/dist-server/server/modules/plugins/plugins.routes.js.map +1 -1
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js +2 -0
- package/dist-server/server/modules/projects/services/projects-with-sessions-fetch.service.js.map +1 -1
- package/dist-server/server/piecemaker/bodacc-search.js +191 -0
- package/dist-server/server/piecemaker/bodacc-search.js.map +1 -0
- package/dist-server/server/piecemaker/company-search.js +145 -0
- package/dist-server/server/piecemaker/company-search.js.map +1 -0
- package/dist-server/server/piecemaker/company-search.test.js +18 -0
- package/dist-server/server/piecemaker/company-search.test.js.map +1 -0
- package/dist-server/server/piecemaker/index.js +6 -2
- package/dist-server/server/piecemaker/index.js.map +1 -1
- package/dist-server/server/piecemaker/knowledge/index.js +9 -4
- package/dist-server/server/piecemaker/knowledge/index.js.map +1 -1
- package/dist-server/server/piecemaker/knowledge/pipeline.js +68 -58
- package/dist-server/server/piecemaker/knowledge/pipeline.js.map +1 -1
- package/dist-server/server/piecemaker/knowledge/routes.js +2 -4
- package/dist-server/server/piecemaker/knowledge/routes.js.map +1 -1
- package/dist-server/server/piecemaker/knowledge/scan-jobs.js +91 -0
- package/dist-server/server/piecemaker/knowledge/scan-jobs.js.map +1 -0
- package/dist-server/server/piecemaker/knowledge/service.js +18 -36
- package/dist-server/server/piecemaker/knowledge/service.js.map +1 -1
- package/dist-server/server/piecemaker/library/connector-installation.js +224 -0
- package/dist-server/server/piecemaker/library/connector-installation.js.map +1 -0
- package/dist-server/server/piecemaker/library/index.js +11 -1
- package/dist-server/server/piecemaker/library/index.js.map +1 -1
- package/dist-server/server/piecemaker/library/marketplace.js +102 -43
- package/dist-server/server/piecemaker/library/marketplace.js.map +1 -1
- package/dist-server/server/piecemaker/library/migrate.js +8 -1
- package/dist-server/server/piecemaker/library/migrate.js.map +1 -1
- package/dist-server/server/piecemaker/library/provider-agents.js +50 -0
- package/dist-server/server/piecemaker/library/provider-agents.js.map +1 -0
- package/dist-server/server/piecemaker/library/provider-connectors.js +80 -0
- package/dist-server/server/piecemaker/library/provider-connectors.js.map +1 -0
- package/dist-server/server/piecemaker/library/provider-skills.js +11 -2
- package/dist-server/server/piecemaker/library/provider-skills.js.map +1 -1
- package/dist-server/server/piecemaker/library/store.js +125 -35
- package/dist-server/server/piecemaker/library/store.js.map +1 -1
- package/dist-server/server/piecemaker/library/workspace-installation.js +53 -29
- package/dist-server/server/piecemaker/library/workspace-installation.js.map +1 -1
- package/dist-server/server/piecemaker/timesheet/service.js +4 -21
- package/dist-server/server/piecemaker/timesheet/service.js.map +1 -1
- package/package.json +3 -2
- package/scripts/piecemaker/cli/install-command.mjs +35 -9
- package/scripts/piecemaker/cli/lib/config.mjs +1 -0
- package/scripts/piecemaker/cli/lib/piecemaker-anonymizer.mjs +78 -0
- package/scripts/piecemaker/cli/lib/plugins.mjs +2 -0
- package/scripts/piecemaker/cli/lib/pwa.mjs +46 -7
- package/scripts/piecemaker/cli/lib/services.mjs +65 -4
- package/scripts/piecemaker/cli/piecemaker-command.test.mjs +25 -0
- package/scripts/piecemaker/cli/piecemaker.mjs +45 -44
- package/scripts/piecemaker/cli/piecemaker.ps1 +8 -0
- package/scripts/piecemaker/cli/piecemaker.sh +6 -1
- package/server/index.ts +52 -23
- package/server/modules/database/repositories/projects.db.ts +28 -6
- package/server/modules/database/tests/projects.db.integration.test.ts +63 -1
- package/server/modules/plugins/plugins.routes.ts +8 -1
- package/server/modules/projects/services/projects-with-sessions-fetch.service.ts +5 -0
- package/server/piecemaker/anonymizer/client-config.cjs +10 -2
- package/server/piecemaker/anonymizer/dictionary.cjs +6 -72
- package/server/piecemaker/bodacc-search.ts +205 -0
- package/server/piecemaker/company-search.test.ts +26 -0
- package/server/piecemaker/company-search.ts +183 -0
- package/server/piecemaker/index.ts +8 -2
- package/server/piecemaker/knowledge/index.ts +9 -4
- package/server/piecemaker/knowledge/pipeline.ts +89 -57
- package/server/piecemaker/knowledge/routes.ts +2 -4
- package/server/piecemaker/knowledge/scan-jobs.ts +111 -0
- package/server/piecemaker/knowledge/service.ts +18 -33
- package/server/piecemaker/library/connector-installation.ts +248 -0
- package/server/piecemaker/library/index.ts +5 -1
- package/server/piecemaker/library/marketplace.ts +104 -39
- package/server/piecemaker/library/migrate.ts +8 -1
- package/server/piecemaker/library/provider-agents.ts +49 -0
- package/server/piecemaker/library/provider-connectors.ts +89 -0
- package/server/piecemaker/library/provider-skills.ts +10 -1
- package/server/piecemaker/library/store.ts +129 -36
- package/server/piecemaker/library/workspace-installation.ts +54 -29
- package/server/piecemaker/router.cjs +2 -1
- package/server/piecemaker/timesheet/service.ts +4 -16
- package/server/piecemaker/vendor/installer/steps/03-python-gliner.mjs +0 -27
- package/server/piecemaker/vendor/installer/steps/14-mxc-sandbox.mjs +1 -1
- package/server/piecemaker/vendor/piecemaker-plugin/scripts/lib/substitution.cjs +2 -3
- package/server/piecemaker/vendor/piecemaker-plugin/skills/conversion-md/SKILL.md +3 -3
- package/server/piecemaker/vendor/websocket-server/admin-routes.cjs +3 -10
- package/server/piecemaker/vendor/websocket-server/originals-pipeline.cjs +135 -4
- package/server/piecemaker/vendor/websocket-server/process-group.cjs +95 -0
- package/server/piecemaker/vendor/websocket-server/scripts/__pycache__/scan_utils.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/convert_and_scan_pipeline.py +280 -149
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/__pycache__/model_config.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/__pycache__/scanner_worker.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/scanner_worker.py +35 -29
- package/server/piecemaker/vendor/websocket-server/scripts/requirements.txt +0 -5
- package/server/shared/types.ts +1 -0
- package/dist/assets/channel-Dz3eE5vU.js +0 -1
- package/dist/assets/classDiagram-ZZMXUADV-BC1eKV2j.js +0 -1
- package/dist/assets/classDiagram-v2-VYDZK3BY-BC1eKV2j.js +0 -1
- package/dist/assets/index-DhwJpHCq.css +0 -1
- package/dist/assets/stateDiagram-v2-MP3YSRHH-BXuT4zDG.js +0 -1
- package/dist/assets/swimlanesDiagram-VR7AAH4N-B0eYrB4U.js +0 -8
- package/server/piecemaker/vendor/websocket-server/case-instructions.cjs +0 -111
- package/server/piecemaker/vendor/websocket-server/scripts/ADDRESS_ANONYMIZATION.md +0 -216
- package/server/piecemaker/vendor/websocket-server/scripts/DEDUPLICATION_CHANGES.md +0 -134
- package/server/piecemaker/vendor/websocket-server/scripts/GLINER2_README.md +0 -138
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/AUDIT_PERF_QUALITE.md +0 -246
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/MODELE_COREML.md +0 -62
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/__pycache__/coreml_runtime.cpython-312.pyc +0 -0
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/build_coreml.py +0 -118
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/coreml_runtime.py +0 -164
- package/server/piecemaker/vendor/websocket-server/scripts/presidio-gliner/presidio-gliner.py +0 -479
|
@@ -23,6 +23,7 @@ import os
|
|
|
23
23
|
import sys
|
|
24
24
|
import warnings
|
|
25
25
|
from collections import defaultdict
|
|
26
|
+
from importlib.metadata import PackageNotFoundError, version as package_version
|
|
26
27
|
from typing import Dict, List, Optional
|
|
27
28
|
|
|
28
29
|
# ---------------------------------------------------------------------------
|
|
@@ -39,13 +40,15 @@ from presidio_analyzer.nlp_engine import NlpArtifacts, NlpEngineProvider
|
|
|
39
40
|
try:
|
|
40
41
|
from gliner2 import AutoExtractor
|
|
41
42
|
GLINER2_AVAILABLE = True
|
|
42
|
-
|
|
43
|
+
GLINER2_IMPORT_ERROR = None
|
|
44
|
+
except ImportError as exc:
|
|
43
45
|
GLINER2_AVAILABLE = False
|
|
46
|
+
GLINER2_IMPORT_ERROR = exc
|
|
44
47
|
|
|
45
48
|
from model_config import PREFERRED_GLINER_MODEL
|
|
46
49
|
|
|
47
50
|
# ---------------------------------------------------------------------------
|
|
48
|
-
# Import scan_utils
|
|
51
|
+
# Import scan_utils from the parent scripts/ directory.
|
|
49
52
|
# ---------------------------------------------------------------------------
|
|
50
53
|
_PARENT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
51
54
|
sys.path.insert(0, _PARENT_DIR)
|
|
@@ -70,29 +73,31 @@ from scan_utils import ( # noqa: E402
|
|
|
70
73
|
|
|
71
74
|
sys.modules.update(_real_presidio_mods)
|
|
72
75
|
|
|
73
|
-
# Lives next to this file, not in the scripts/ directory added above.
|
|
74
|
-
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
75
|
-
import coreml_runtime # noqa: E402
|
|
76
|
-
|
|
77
76
|
# ---------------------------------------------------------------------------
|
|
78
|
-
#
|
|
79
|
-
#
|
|
80
|
-
#
|
|
81
|
-
#
|
|
77
|
+
# Device: official GLiNER2 path — PyTorch CUDA if present, otherwise CPU.
|
|
78
|
+
# MPS was measured slower than CPU on this encoder and is not used.
|
|
79
|
+
# Thread count — measured on Apple M1 (8 cores): 4 threads 23.0 min for a
|
|
80
|
+
# 972-chunk document, 6 threads 18.8 min, 8 threads 23.4 min.
|
|
82
81
|
# ---------------------------------------------------------------------------
|
|
83
82
|
try:
|
|
84
83
|
import torch
|
|
85
84
|
|
|
86
85
|
torch.set_num_threads(int(os.environ.get("PIECEMAKER_TORCH_THREADS", "6")))
|
|
87
86
|
except ImportError: # pragma: no cover - torch ships with gliner2
|
|
88
|
-
|
|
87
|
+
torch = None
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def _gliner_map_location():
|
|
91
|
+
if torch is not None and torch.cuda.is_available():
|
|
92
|
+
return "cuda"
|
|
93
|
+
return "cpu"
|
|
89
94
|
|
|
90
95
|
# Logging every detected entity writes the document's PII in clear text to stderr,
|
|
91
96
|
# which the Electron parent captures (~3 200 lines for a single URD). Off by default.
|
|
92
97
|
DEBUG_ENTITIES = os.environ.get("PIECEMAKER_DEBUG_ENTITIES", "").lower() in ("1", "true", "yes")
|
|
93
98
|
|
|
94
99
|
# ---------------------------------------------------------------------------
|
|
95
|
-
# Constants
|
|
100
|
+
# Constants — unique scanner entry point.
|
|
96
101
|
# ---------------------------------------------------------------------------
|
|
97
102
|
GLINER_MODEL = PREFERRED_GLINER_MODEL
|
|
98
103
|
|
|
@@ -142,8 +147,7 @@ GLINER_THRESHOLD = 0.5
|
|
|
142
147
|
# "Osakeyhtio", "EIRELI" or "No Liability" for French and American companies.
|
|
143
148
|
|
|
144
149
|
# Réglage officiel Fastino pour les documents longs GLiNER2.5 : 384 mots avec
|
|
145
|
-
# 64 mots de recouvrement.
|
|
146
|
-
# presidio-gliner.py, qui est l'autre point d'entrée du scanner.
|
|
150
|
+
# 64 mots de recouvrement.
|
|
147
151
|
CHUNK_SIZE = 384
|
|
148
152
|
CHUNK_OVERLAP = 64
|
|
149
153
|
BATCH_SIZE = 8
|
|
@@ -224,9 +228,9 @@ def extract_document_meta(text: str) -> Dict:
|
|
|
224
228
|
|
|
225
229
|
One classify_text call (single-label nature) and one extract_json call (a
|
|
226
230
|
header record: date + court) on the document header, via the already-loaded
|
|
227
|
-
GLiNER2 model. Never raises: a model without these heads, a
|
|
228
|
-
|
|
229
|
-
|
|
231
|
+
GLiNER2 model. Never raises: a model without these heads, a failed
|
|
232
|
+
classification call, or an empty header all return the neutral shape so
|
|
233
|
+
the scan payload is always well-formed.
|
|
230
234
|
"""
|
|
231
235
|
meta = {
|
|
232
236
|
"nature": None, "nature_confidence": None,
|
|
@@ -276,7 +280,7 @@ def extract_document_meta(text: str) -> Dict:
|
|
|
276
280
|
return meta
|
|
277
281
|
|
|
278
282
|
# ---------------------------------------------------------------------------
|
|
279
|
-
# Chunking
|
|
283
|
+
# Chunking
|
|
280
284
|
# ---------------------------------------------------------------------------
|
|
281
285
|
import re
|
|
282
286
|
|
|
@@ -296,7 +300,7 @@ def chunk_text_by_words(text: str, max_words: int = CHUNK_SIZE, overlap: int = C
|
|
|
296
300
|
return chunks
|
|
297
301
|
|
|
298
302
|
# ---------------------------------------------------------------------------
|
|
299
|
-
# GLiNER2 Recognizer
|
|
303
|
+
# GLiNER2 Recognizer
|
|
300
304
|
# ---------------------------------------------------------------------------
|
|
301
305
|
|
|
302
306
|
class GLiNER2Recognizer(LocalRecognizer):
|
|
@@ -318,16 +322,21 @@ class GLiNER2Recognizer(LocalRecognizer):
|
|
|
318
322
|
|
|
319
323
|
def load(self):
|
|
320
324
|
if not GLINER2_AVAILABLE:
|
|
321
|
-
|
|
325
|
+
try:
|
|
326
|
+
installed_version = package_version("gliner2")
|
|
327
|
+
except PackageNotFoundError:
|
|
328
|
+
installed_version = "non installé"
|
|
329
|
+
raise ImportError(
|
|
330
|
+
f"gliner2 {installed_version} est incompatible : AutoExtractor est absent "
|
|
331
|
+
f"(version requise >= 2.0). Erreur d'import : {GLINER2_IMPORT_ERROR}"
|
|
332
|
+
)
|
|
322
333
|
if self.model is not None:
|
|
323
334
|
return
|
|
324
335
|
self.model = AutoExtractor.from_pretrained(
|
|
325
336
|
self.model_name,
|
|
326
337
|
local_files_only=True,
|
|
338
|
+
map_location=_gliner_map_location(),
|
|
327
339
|
)
|
|
328
|
-
# Reached only when the worker did not pre-load a shared model; accelerate here too
|
|
329
|
-
# so the fast path does not depend on which entry point loaded the model first.
|
|
330
|
-
coreml_runtime.maybe_accelerate(self.model, self.model_name)
|
|
331
340
|
|
|
332
341
|
def analyze(self, text, entities, nlp_artifacts=None):
|
|
333
342
|
if self.model is None:
|
|
@@ -494,16 +503,13 @@ def _ensure_gliner_loaded():
|
|
|
494
503
|
global _gliner_model
|
|
495
504
|
if _gliner_model is None and GLINER2_AVAILABLE:
|
|
496
505
|
_log("Loading GLiNER2 model...")
|
|
506
|
+
device = _gliner_map_location()
|
|
497
507
|
_gliner_model = AutoExtractor.from_pretrained(
|
|
498
508
|
GLINER_MODEL,
|
|
499
509
|
local_files_only=True,
|
|
510
|
+
map_location=device,
|
|
500
511
|
)
|
|
501
|
-
|
|
502
|
-
# The encoder dominates the wall clock. CoreML uses an artifact compiled from
|
|
503
|
-
# this exact GLiNER2.5 checkpoint; otherwise it falls back to torch on its own.
|
|
504
|
-
coreml_runtime.maybe_accelerate(_gliner_model, GLINER_MODEL)
|
|
505
|
-
|
|
506
|
-
_log("GLiNER2 model loaded.")
|
|
512
|
+
_log(f"GLiNER2 model loaded ({device}).")
|
|
507
513
|
|
|
508
514
|
|
|
509
515
|
# ---------------------------------------------------------------------------
|
|
@@ -16,11 +16,6 @@ huggingface-hub>=0.20.0 # Required for model downloading with progress
|
|
|
16
16
|
# Presidio + GLiNER integration
|
|
17
17
|
presidio-analyzer>=2.2.0
|
|
18
18
|
spacy>=3.7.0
|
|
19
|
-
|
|
20
|
-
# Accélération GPU de l'encodeur (macOS) — optionnelle : le runtime retombe sur
|
|
21
|
-
# torch si coremltools ou le .mlmodelc manquent. Sert à build_coreml.py et à
|
|
22
|
-
# presidio-gliner/coreml_runtime.py.
|
|
23
|
-
coremltools>=8.0 ; sys_platform == "darwin"
|
|
24
19
|
#
|
|
25
20
|
# After installing spacy, download language models:
|
|
26
21
|
# python -m spacy download fr_core_news_sm # French (15MB, 88% NER accuracy)
|
package/server/shared/types.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ah as o,ai as n}from"./mermaid.core-ijh_SsuN.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-TICWLB2K-Cn2hkmcf.js";import{_ as i}from"./mermaid.core-ijh_SsuN.js";import"./chunk-5VM5RSS4-BG3BBcFr.js";import"./chunk-XXDRQBXY-Dm_eP1_v.js";import"./chunk-POPQ4Y6H-C_0SR3ak.js";import"./chunk-F27PBJKO-CLIOfrF5.js";import"./index-XOGQDqU3.js";import"./vendor-codemirror-C5qqu4R7.js";import"./vendor-react-D809iwXR.js";import"./vendor-xterm-BWUgpGtR.js";var c={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-TICWLB2K-Cn2hkmcf.js";import{_ as i}from"./mermaid.core-ijh_SsuN.js";import"./chunk-5VM5RSS4-BG3BBcFr.js";import"./chunk-XXDRQBXY-Dm_eP1_v.js";import"./chunk-POPQ4Y6H-C_0SR3ak.js";import"./chunk-F27PBJKO-CLIOfrF5.js";import"./index-XOGQDqU3.js";import"./vendor-codemirror-C5qqu4R7.js";import"./vendor-react-D809iwXR.js";import"./vendor-xterm-BWUgpGtR.js";var c={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
|