master
- 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
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
Languages
Python
99.2%
Makefile
0.4%
Shell
0.4%