🔒 Local Privacy Inspector Skill
让敏感文件不出电脑:基于 AI PC 的本地隐私数据检查 Skill
触发条件
当用户表达以下意图时,触发此 Skill:
- "帮我检查这个文件有没有敏感信息"
- "这个文件能外发吗?"
- "扫描一下代码里的密钥"
- "简历里有没有隐私泄露风险"
- "会议纪要分享前检查一下"
- "检查 .env 文件是否安全"
- "文件发出去之前帮我审一遍"
- "隐私检查"
- "数据脱敏"
- "敏感数据扫描"
- "检查隐私泄露"
- "文件脱敏处理"
- "检查配置文件中的密码"
- "扫描文档中的个人信息"
核心能力
- 单文件本地扫描 — 只扫描用户指定的单个文件,不上传云端
- 敏感信息识别 — 覆盖个人/企业/开发者三大类 18+ 种敏感类型
- 风险分级 — 高/中/低/提示 四级风险,快速定位问题
- 默认脱敏 — 所有检测结果默认脱敏展示,避免二次泄露
- 报告生成 — 输出 Markdown / JSON 格式本地报告
工作流程
用户指定文件路径
↓
解析文件内容(txt/md/env/json/yaml/csv/docx/pdf/xlsx + 图片 OCR)
↓
规则引擎检测敏感信息
↓
脱敏处理 + 风险分级
↓
生成本地隐私检查报告
↓
返回自然语言总结和处理建议
检测范围
个人敏感信息
- 手机号、身份证号、银行卡号
- 邮箱、固定电话、护照号
企业敏感信息
- 统一社会信用代码、合同金额
- 项目编号、客户名称
开发者密钥(高风险)
- API Key、AccessKey、SecretKey
- Token、Password、JWT、数据库连接串
- SSH 私钥、云厂商密钥、服务器 IP
文件风险特征
.env文件、secrets.json- 包含 password/key/secret 的配置文件
执行步骤
Step 1: 确认扫描目标
询问用户要检查的文件路径,确认文件存在且可访问。
支持的文件类型:
- 文本:
.txt.md.env.json.yaml.yml.csv - 办公文档:
.docx.pdf.xlsx - 图片 (V0.3 OCR):
.png.jpg.jpeg.bmp.tiff.tif.webp
Step 2: 调用检测脚本
执行 scripts/skill.py 进行本地扫描。必须使用绝对路径调用脚本:
赛事基准环境:在 QwenPaw / Trae 中,Agent 大脑(Qwen3.6-35B-A3B 通过 Ollama 本地部署)会自动调用此脚本。详见
references/agent-setup-guide.md。
python /Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/scripts/skill.py <文件路径>
或指定 JSON 输出格式:
python /Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/scripts/skill.py <文件路径> --format json
路径说明:
<文件路径>可以是绝对路径或相对于当前工作目录的路径- 脚本路径必须使用绝对路径:
/Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/scripts/skill.py - 或者使用相对于工作目录的路径:
scripts/skill.py(仅在当前工作目录为技能根目录时有效)
Step 3: 解析结果并生成建议
读取脚本输出的风险报告,用自然语言向用户解释:
- 风险等级 — 文件整体是高/中/低风险
- 发现项 — 具体发现了什么类型的敏感信息(已脱敏)
- 处理建议 — 针对不同场景给出可操作的建议
- 报告位置 — 告知用户本地报告文件路径
Step 4: 场景化处理建议
根据用户的使用场景,给出针对性建议:
| 场景 | 建议重点 | |------|---------| | 外发/分享 | 哪些信息需要脱敏、删除或替换 | | 代码上传 | 密钥是否已暴露、是否需要轮换、.gitignore 配置 | | 简历投递 | 身份证号/住址是否应删除 | | 归档整理 | 风险文件分类、加密建议 |
安全原则
- ✅ 只扫描用户指定的单个文件,不主动扫描其他路径
- ✅ 不上传原始文件,检测过程完全在本地完成
- ✅ 不保存完整敏感字段,检测结果默认脱敏展示
- ✅ 不自动修改或删除原文件
- ❌ 不扫描整台电脑
- ❌ 不后台自动扫描
- ❌ 不读取系统隐私目录
- ❌ 不上传报告到云端
参考文档
references/detection-rules.md— 完整检测规则说明references/usage-guide.md— 使用指南和常见问题references/agent-setup-guide.md— 本地 Agent 环境配置指南(Ollama + Qwen3.6-35B-A3B + QwenPaw/Trae)
示例
示例 1: 检查 .env 文件
用户: "帮我检查一下 demo/.env,看看有没有敏感信息"
执行:
python /Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/scripts/skill.py /Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/demo/.env
输出:
📁 扫描文件: .env
⚠️ 风险等级: 🔴 高风险
📊 发现敏感项: 9 个
🔴 高风险 (8 项):
- API_Key sk-t****cdef
- Password ****
- 数据库连接串 mysql://admin:****@127.0.0.1:3306/demo
- 风险文件名 .env
💡 处理建议:
- 立即删除明文密钥,使用环境变量或密钥管理服务
- 将 .env 加入 .gitignore
- 如密钥已上传公开仓库,请立即轮换
示例 2: 会议纪要外发前检查
用户: "我想把 meeting_notes.md 发给客户,先帮我看看有没有不能外发的内容"
执行:
python /Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/scripts/skill.py /Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/demo/meeting_notes.md
输出:
📁 扫描文件: meeting_notes.md
⚠️ 风险等级: 🟡 中风险
📊 发现敏感项: 4 个
🟡 中风险 (3 项):
- 手机号 138****5678
- 合同金额 ****
- 项目编号 Ed****ha
🟢 低风险 (1 项):
- 邮箱 z****@xinghe-edu.com
💡 处理建议:
- 脱敏手机号:将具体号码替换为"联系人A"
- 模糊化金额:替换为"XX万元"或直接删除
- 隐藏项目编号:替换为通用描述
示例 3: 图片 OCR — 检查身份证/银行卡照片 (V0.3)
用户: "我收到一张员工信息登记表的截图,帮我看看有没有敏感信息"
执行:
python /Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/scripts/skill.py /Users/fanghua/code/ai-pc-skill/skills/local-privacy-inspector/demo/demo_id_card.png
输出:
📁 扫描文件: demo_id_card.png
📂 文件路径: ../demo/demo_id_card.png
📏 文件大小: 57070 字节
🖼️ 文件类型: 图片 (将使用 OCR 提取文字)
🔧 OCR 引擎: rapidocr_onnxruntime
⚡ OpenVINO: 未安装 (当前使用 ONNX Runtime)
提示: 在 Intel AI PC 上安装 OpenVINO 可启用 NPU/GPU 加速
📝 正在提取文件内容...
✓ 成功提取 288 字符
• 引擎: rapidocr_onnxruntime
• 识别行数: 9
• 平均置信度: 0.9804
• 耗时: 498.0ms
🔍 正在检测敏感信息...
============================================================
📊 扫描结果
============================================================
风险等级: 🔴 高风险
发现敏感项: 11 个
🔴 高风险: 6
🟡 中风险: 4
🟢 低风险: 1
发现的敏感信息:
1. 🔴 [身份证号] 310***********1234
2. 🟡 [手机号] 138****5678
3. 🔴 [API_Key] sk-a****ijkl
4. 🔴 [数据库连接串] mysql://admin:****@192.168.1.100:3306
5. 🟡 [合同金额] ¥****
6. 🟡 [服务器IP] 192.168.*.*
...
说明: V0.3 通过本地 OCR 引擎提取图片中的文字,再送入规则引擎检测。身份证照片、银行卡照片、合同扫描件、截图中的密钥等图片敏感信息,现在都能被识别。
故障排查
| 问题 | 原因 | 解决方案 |
|------|------|---------|
| "不支持的文件类型" | 文件格式不在支持列表中 | 检查文件后缀是否在支持列表中(文本/办公文档/图片) |
| "OCR 引擎不可用" | 未安装 rapidocr-onnxruntime | 执行 pip install rapidocr-onnxruntime |
| "OCR 识别失败" | 图片质量差或不含文字 | 检查图片清晰度,或图片确实不含文字 |
| "文件不存在" | 路径错误或文件被删除 | 确认文件路径正确,使用绝对路径或相对于 scripts/ 目录的相对路径 |
| "文件超过 10MB" | 文件太大 | 当前版本限制单文件 10MB,可拆分文件或只检查关键部分 |
| 检测结果为空 | 文件确实不包含已知敏感信息 | 可手动检查是否包含业务特有的敏感字段 |
扩展说明
后续版本规划
- V0.2 ✅: 已支持 docx/pdf/xlsx 解析(需要
python-docx、pypdf、openpyxl) - V0.3 ✅: 已支持图片 OCR 扫描(需要
rapidocr-onnxruntime,OpenVINO 加速预留) - V0.4: 支持多文件/文件夹批量扫描,递归扫描整个目录
- V1.0: 接入本地 LLM(如 Qwen2.5 / Qwen3 系列),通过 OpenVINO 运行,支持自然语言任务输入和场景化建议
依赖说明
| 版本 | 依赖 |
|------|------|
| V0.1 | Python 标准库即可(txt/md/env/json/yaml/csv) |
| V0.2 | 额外需要 python-docx、pypdf、openpyxl(Office/PDF 解析) |
| V0.3 | 额外需要 rapidocr-onnxruntime(图片 OCR,支持 OpenVINO 加速) |
安装依赖:
# 基础 + Office/PDF
pip install python-docx pypdf openpyxl
# V0.3 图片 OCR
pip install rapidocr-onnxruntime
# AI PC 上启用 OpenVINO 加速(可选)
pip install openvino
# 生成 demo PDF 文件(可选开发依赖)
pip install reportlab
与 AI PC 的关系
此 Skill 专为 AI PC 场景设计:
- 本地运行 — 不需要网络连接,文件不出电脑,保护隐私
- AI 工具调用 — V0.3 驱动本地 OCR 模型提取图片文字,符合赛题"驱动本地 AI 工具调用"要求
- OpenVINO 加速预留 — OCR 引擎已预留 OpenVINO 加速接口,在 Intel AI PC 上安装 OpenVINO 后可切换 NPU/GPU 异构推理
- 轻量规则引擎 — 敏感检测基于确定性正则规则,零模型推理开销,CPU 即可流畅运行
- 本地 LLM 扩展预留 — V1.0 可通过 OpenVINO 运行本地大模型,用于意图理解、任务规划和报告生成,检测层仍保持规则引擎以保证速度和确定性
Scan to contact