qiurui cbfe4a23dc feat: info-privacy PII detection service with frame analysis support
- Pipeline: analyze(), redact(), analyze_image() methods
- API: /analyze, /redact, /analyze/frame, /analyze/frame/base64 endpoints
- Detectors: regex, NER, face (RKNN NPU)
- Privacy frame route added for KVM-Privacy Hub integration
2026-02-28 17:33:11 +08:00

Info-Privacy

基于 Rockchip RKNN NPU 的文档隐私安全处理 REST API 服务,支持 RK3588 板端和 x86 双平台。

两阶段工作流:先 analyze(返回 JSON 检测报告)→ 用户决策 → 再 redact(返回处理后文档)。


支持的文档格式

格式 解析方式
PDF(含文字层) pdfminer.six
PDF(扫描件) PaddleOCR RKNN
.docx python-docx
.xlsx openpyxl
JPG / PNG PaddleOCR RKNN

可检测的隐私类型

类型 检测方式 安全等级
id_card Regex high
phone Regex high
bank_card Regex high
face MediaPipe RKNN high
email Regex medium
name 规则词典 NER medium
address 规则词典 NER medium
license_plate Regex medium

快速开始

x86 开发环境

# 初始化虚拟环境
bash setup_venv.sh
source venv/bin/activate

# 启动服务
make server   # http://0.0.0.0:8000

# 端到端验证(需先启动服务)
make verify

RK3588 板端

# 同步代码
rsync -av /data/rockchip/info-privacy/ pi@192.168.0.127:/home/pi/Desktop/info-privacy/

# 板端启动
ssh pi@192.168.0.127 "clashon && clashproxy on && \
  cd /home/pi/Desktop/info-privacy && \
  bash setup_venv.sh && source venv/bin/activate && \
  uvicorn info_privacy.api.main:app --host 0.0.0.0 --port 8000"

API 使用示例

检测隐私信息

curl -X POST http://localhost:8000/api/v1/analyze \
  -F "file=@document.docx"

响应:

{
  "doc_id": "uuid",
  "classification": "normal",
  "blocked": false,
  "warning": null,
  "entities": [
    {"id": "e1", "type": "id_card", "value": "110101199001011234",
     "page": 1, "bbox": [10, 20, 200, 40], "layer": "text", "security_level": "high"}
  ],
  "summary": {"id_card": 1}
}

遮罩指定类型

curl -X POST http://localhost:8000/api/v1/redact \
  -F "file=@document.docx" \
  -F 'config={"redact_types":["id_card","phone"]}' \
  -o redacted.docx

响应 Body 为处理后文档,Header X-Security-Report 包含遮罩统计。

其他端点

GET /api/v1/health   # 健康检查
GET /api/v1/types    # 支持的隐私类型列表

遮罩安全保证

系统根据文档类型自动选择最安全策略,用户无需指定:

文档类型 遮罩方式 安全保证
PDF(文字层)/ Word / Excel 删除文字节点(text_replace 字节级安全
图像 / 扫描 PDF OpenCV 黑色矩形覆盖(image_mask 图像级安全

重要PDF 含文字层时,即使 redact_types 包含 face,也强制使用 text_replace 防止文字层信息泄露。


RKNN 模型路径

模型 路径
PaddleOCR 检测 /data/rockchip/paddle_ocr/models/rknn/PP-OCRv4/det/
PaddleOCR 识别 /data/rockchip/paddle_ocr/models/rknn/PP-OCRv4/rec/
MediaPipe 人脸 /data/rockchip/mediapipe/models/rknn/

详见 DEVELOP.md · RELEASE.md

S
Description
Document PII detection and desensitization service
Readme
107 KiB
Languages
Python 99.2%
Makefile 0.4%
Shell 0.4%