|
|
2 недель назад | |
|---|---|---|
| .. | ||
| processors | 2 недель назад | |
| README.md | 2 недель назад | |
| __init__.py | 2 недель назад | |
| dict_manager.py | 2 недель назад | |
| engine.py | 2 недель назад | |
| model_client.py | 2 недель назад | |
| remapper.py | 2 недель назад | |
| validator.py | 2 недель назад | |
基于 wlast.md (v2.3) 文档实现的数据脱敏系统。
desensitize/
├── __init__.py # 模块导出
├── engine.py # 脱敏引擎核心
├── validator.py # 黑白名单校验器
├── dict_manager.py # 脱敏字典管理器
├── model_client.py # 本地大模型客户端
├── remapper.py # 审查结果逆向映射器
├── processors/ # 四维度处理器
│ ├── base_processor.py # 处理器基类
│ ├── pii_processor.py # PII脱敏(姓名/手机/身份证)
│ ├── geo_processor.py # 地理坐标脱敏(桩号/地名/高程)
│ ├── biz_processor.py # 商业标识脱敏(企业名/项目名)
│ └── financial_processor.py # 财务数据脱敏(金额/单价)
└── README.md # 本文件
| 维度 | 脱敏对象 | 脱敏策略 | 保留逻辑 |
|---|---|---|---|
| PII | 姓名、电话、身份证、证书编号 | 占位符/掩码替换 | 角色关系与排班逻辑 |
| 地理坐标 | 桩号、地名、高程、桥隧名称 | 相对化处理/序列化 | 相对长度与工程实体序列 |
| 商业标识 | 项目名、企业名、合同编号 | 泛化替换 | 组织角色架构 |
| 财务数据 | 金额、单价、工程量 | 全量掩码 | 表格科目结构 |
DEPLOY_PHASE = testDEPLOY_PHASE = localDESENSITIZE_SCHEME = scheme_a(规则引擎主导 + 轻量本地模型兜底)DESENSITIZE_SCHEME = scheme_b(本地大模型全量语义驱动)| 接口 | 路径 | 功能 |
|---|---|---|
| 文档脱敏 | POST /desensitize/document |
四维度脱敏处理 |
| 脱敏校验 | POST /desensitize/validate |
黑白名单校验 |
| 结果还原 | POST /desensitize/remap |
审查结果逆向映射 |
| 字典查询 | GET /desensitize/dict/{task_id} |
查询字典元信息 |
| 文本脱敏 | POST /desensitize/text |
简化版文本脱敏 |
在 config/config.ini 中添加以下配置:
[desensitize]
DEPLOY_PHASE = test # 部署阶段: test/local
DESENSITIZE_SCHEME = scheme_a # 本地方案: scheme_a/scheme_b
DEFAULT_LEVEL = standard # 默认脱敏级别
DICT_STORAGE_PATH = ./data/desensitize_dicts
ENABLE_VALIDATION = true
VALIDATION_FAILURE_ACTION = block
原始文本:
映雪特大桥(D1K86+279.91~D1K87+279.91)跨越云雾河,全长1000m。
项目经理张三(电话:13812345678)负责现场安全管理,安全费用预算 ¥1,250,000.00 元。
脱敏后:
[1号特大桥](K0+000~K1+000)跨越[1号河流],全长1000m。
[项目经理A](电话:[手机号脱敏])负责现场安全管理,安全费用预算 [金额脱敏] 元。
python test_desensitize.py