suhua31 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад
..
processors 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад
README.md 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад
__init__.py 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад
dict_manager.py 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад
engine.py 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад
model_client.py 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад
remapper.py 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад
validator.py 6d28c66915 feat(sgsc-文档脱敏模块-xth): 新增文档脱敏功能 2 недель назад

README.md

施工方案数据脱敏模块

基于 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 = test
  • 使用外部大模型 API 测试验证
  • 仅用于测试数据集,严禁生产文档

阶段二(生产)

  • 配置:DEPLOY_PHASE = local
  • 方案A:DESENSITIZE_SCHEME = scheme_a(规则引擎主导 + 轻量本地模型兜底)
  • 方案B:DESENSITIZE_SCHEME = scheme_b(本地大模型全量语义驱动)

API 接口

接口 路径 功能
文档脱敏 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

安全约束

  1. 外部调用前置脱敏原则:脱敏是调用任何外部大模型 API 的强制前提
  2. 本地化优先原则:所有脱敏动作在企业内部本地服务器完成
  3. 可逆映射原则:本地保留脱敏字典,支持结果还原
  4. 纵深防御原则:规则引擎 + 本地 AI 模型 + 黑白名单校验三层防护

示例

原始文本

映雪特大桥(D1K86+279.91~D1K87+279.91)跨越云雾河,全长1000m。
项目经理张三(电话:13812345678)负责现场安全管理,安全费用预算 ¥1,250,000.00 元。

脱敏后

[1号特大桥](K0+000~K1+000)跨越[1号河流],全长1000m。
[项目经理A](电话:[手机号脱敏])负责现场安全管理,安全费用预算 [金额脱敏] 元。

运行测试

python test_desensitize.py