Files
info-privacy/RELEASE.md
T

75 lines
3.4 KiB
Markdown
Raw Normal View History

# 发布记录
## v0.1.1 (2026-02-27)
### Bug 修复
- **Regex 边界修复**`id_card` / `bank_card` 正则将 `\b` 改为 `(?<!\d)` / `(?!\d)`,修复中文字符紧邻数字时 PII 漏检问题(Python 3 `\b` 为 Unicode-aware
- **身份证/银行卡去重**`RegexDetector` 新增去重逻辑,18 位身份证号不再被同时识别为银行卡,消除实体数量虚增导致阈值误判
- **DOCX 表格单元格遮罩**`TextRedactor._redact_docx` 补全表格单元格遍历,修复隐藏在表格中的 PII 无法遮罩的问题
- **DOCX 表格单元格解析**`OfficeParser._parse_docx` 补全表格单元格遍历,修复表格中 PII 漏检问题
### 测试增强(155 passed4 skipped
| 测试文件 | 新增测试 | 覆盖内容 |
|---------|---------|---------|
| `test_detectors.py` | +10 | 银行卡检测、车牌检测、身份证/银行卡去重、末位X、security_level、多实体同块、NER 组合 |
| `test_classifier.py` | +4 | 全部 10 个保密关键词(parametrize)、阈值边界(4/5)、中风险不触发警告 |
| `test_api.py` | +5 | X-Security-Report 头、xlsx 格式、无 PII 返回 normal、summary 一致性、保密文档返回 403 |
| `test_pipeline.py` | +4 | summary 契约验证、无 PII 空实体、多实体触发警告、多类型同时遮罩 |
| `test_redactors.py` | +4 | Excel 遮罩、DOCX 表格单元格遮罩、████遮罩字符验证、text层实体不触发图像遮罩 |
---
## v0.1.0 (2026-02-27)
### 新功能
**API 服务(FastAPI):**
- `POST /api/v1/analyze`:文档隐私检测,返回 JSON 报告(实体列表 + 分类 + 摘要)
- `POST /api/v1/redact`:按指定类型遮罩,返回处理后文档(格式与输入一致)
- `GET /api/v1/health`:服务健康检查
- `GET /api/v1/types`:支持的隐私类型列表
**文档解析(双平台):**
- PDF 文字层解析(pdfminer.six
- Word / Excel 解析(python-docx / openpyxl
- 图像 OCRPaddleOCR RKNNRK3588 硬件)
- Parser Factory 按文件扩展名自动路由
**隐私检测:**
- Regex 检测:身份证、手机号、银行卡、邮箱、车牌(共 5 类)
- 规则词典 NER:中文姓名(姓氏词典 + 上下文)、地址(触发词匹配)
- 人脸检测:MediaPipe RKNNRK3588 硬件,pipeline 延迟加载)
- 文档分类前置拦截:保密文件关键词检测,`classified` 类直接返回 403
**遮罩处理(字节级安全):**
- TextRedactor:删除 docx/xlsx 文字节点,字节级安全
- ImageRedactorOpenCV 黑色矩形覆盖图像层实体
- 策略自动选择:含文字层 PDF 强制 text_replace,防止文字层泄露
**测试覆盖(初始 50 passed4 skipped):**
- 8 个测试文件,覆盖数据模型 / 分类器 / 检测器 / 解析器 / 遮罩器 / 流水线 / API 接口
- `test_simulation.py`15 个 RKNN 仿真测试(mock 替换硬件依赖,x86 全量可运行)
### 支持平台
| 平台 | Python | 测试状态 |
|------|--------|---------|
| x86 / Ubuntu 22.04+ | 3.10 3.12 | 46 passed4 RKNN skip |
| RK3588 / Ubuntu 24.04 | 3.12.3 | 50 passed(含 RKNN|
### 依赖版本
| 依赖 | 版本要求 |
|------|---------|
| fastapi | ≥ 0.110.0 |
| uvicorn | ≥ 0.29.0 |
| pdfminer.six | ≥ 20221105 |
| pypdf | ≥ 4.0.0 |
| python-docx | ≥ 1.1.0 |
| openpyxl | ≥ 3.1.0 |
| opencv-python | ≥ 4.5.5 |
| numpy | ≥ 1.24.0 |
| rknn-toolkit-lite2 | 2.3.2(仅 RK3588|