乐于分享
好东西不私藏

app隐私合规AI+实践

app隐私合规AI+实践

当前的一份合规的APP隐私政策,需要同时满足《个人信息保护法》、《App违法违规收集使用个人信息行为认定方法》、GB/T 35273《个人信息安全规范》以及各应用商店的审核等细则。仅“收集个人信息的最小必要”一条原则,就会衍生出多种常见违规情形。2023年工信部通报的侵权APP中,超过60%涉及“未公开收集使用规则”或“未明示收集目的”。

那么如何通过AI来实现,如果直接将这些法律法规给大模型,让它根据自己的理解实现,看起来好像是最优解。但是实际使用之后就会发现各种问题,比如误报或者漏报的出现,比如各个法律法规之间的冲突等等。

所以最先要做的就是理清检测的思路

本文从隐私合规的检测方向出发,来实现一个AI agent 自动化的检测app 隐私政策。

实现流程
首先我们要将所有的评估点流程化,变成AI可读懂的内容比如
将所有的需要评估的点全部流程化上面的这样格式
但是不同的大模型可能语义的理解上有偏差,所以我们可以加一些门禁系统。比如在每一个评估点的检测之前,加上示例如下:
最后检测结果的二次校验同样重要,为了防止误报,我们可以在测试结束之后加上不合规的二次校验。比如:
这样就得到一个AI驱动的隐私纯文本的合规检测agent。
我们的实现架构大概是这样:
分层架构:4 层职责分离
┌─────────────────────────────────────────────────────┐│                     Web 层 (main.py)                  ││              Flask Web 服务 (端口 8901)                ││       GET  /   → 首页(上传文件/URL 输入界面)          ││       POST /evaluate  → 执行检测并返回 JSON            │├─────────────────────────────────────────────────────┤│               核心逻辑层 (agent.py)                    ││  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ ││  │评估点发现 │ │Prompt构建 │ │LLM 调用  │ │结果验证 │ ││  │扫描文件系 │ │批量/单点  │ │OpenAI兼  │ │二次审核 │ ││  │统自发现   │ │两套模板   │ │容接口    │ │防误报   │ ││  └──────────┘ └──────────┘ └──────────┘ └─────────┘ ││  ┌──────────┐ ┌──────────┐ ┌──────────┐              ││  │URL 抓取  │ │多格式解析│ │子页面发现│              ││  │反爬检测  │ │txt/docx  │ │收集清单  │              ││  │HTML清洗  │ │doc/pdf   │ │SDK清单   │              ││  └──────────┘ └──────────┘ └──────────┘              │├─────────────────────────────────────────────────────┤│               数据层 (目录文件系统)                     ││  privacy_test/  ← 评估点文件 (28个)                    ││  examples/      ← 参考示例 (28个, 一一对应)            ││  validations/   ← 验证规则 (28个, 二次校验用)           ││  fetched_docs/  ← 保存抓取的隐私政策原文               │├─────────────────────────────────────────────────────┤│               前端展示层 (templates/ + static/)         ││      单页 HTML + CSS + JS 全功能展示                   ││      合规/不合规筛选, 多文档 Tab 切换                   │└─────────────────────────────────────────────────────┘
核心评估流程
输入(文件/URL)  │  ├─ URL模式 → fetch_url() 抓取主页面  │             ├─ extract_list_links() 发现子页面  │             │   ├─ "个人信息收集清单" 子页面  │             │   └─ "第三方SDK共享清单" 子页面  │             └─ save_privacy_doc() 保存原文  │  └─ 进入评估管线:      ① _scan_eval_point_ids()  → 自动发现全部评估点 (28 个)      ② load_evaluation_points() → 加载评估点内容 + 对应示例      ③ _build_batch_prompt()    → 构建批量 Prompt (一次 API 调用)      ④ call_llm()               → 大模型评估      ⑤ _parse_batch_response()  → 解析 JSON, 多层容错      ⑥ 缺失补评 _evaluate_single() → 批量漏掉的点逐条补齐      ⑦ 二次验证 _validate_result()  → 加载验证规则审核结果      ⑧ 返回 { compliant, non_compliant, 统计 }
使用说明
pip install -r requirements.txt# 依赖: flask>=3.0, openai>=1.0, requests>=2.0, beautifulsoup4>=4.0, python-docx>=1.0# PDF 可选: pip install PyPDF2 pdfplumber# .doc 可选: 安装 antiword (需系统支持)
配置
# 环境变量设置(建议)set LLM_API_KEY=sk-your-api-key    # Windowsexport LLM_API_KEY=sk-your-api-key  # Linux/Mac# 可选配置项(有默认值)LLM_BASE_URL  # 默认 https://api.deepseek.comLLM_MODEL     # 默认 deepseek-v4-flashLLM_MAX_TOKENS # 默认 8192LLM_TEMPERATURE # 默认 0.1SERVER_HOST   # 默认 0.0.0.0SERVER_PORT   # 默认 8901
启动服务
python main.py访问 http://localhost:8901
自定义扩展检测点
新增评估点: 在 privacy_test/ 下创建 评估点29.md,重启服务即可自动发现新增参考示例: 在 examples/ 下创建 示例29.md(可选)新增验证规则: 在 validations/ 下创建 验证29.md(可选)子页面检测范围: 修改 agent.py:LIST_CHECK_POINT_IDS 默认 {7,8,9,10} 即可调整切换模型: 修改 config.py 中 LLM_MODEL 和 LLM_BASE_URL 即可
源码地址:

https://github.com/AnotherN/privacy-text-te/tree/main/test

相关学习资料