返回博客

如何用 AI 自动给 PDF 脱敏:免费、本地、不上传

2026年5月29日11 分钟阅读OnePDFs Team

一份 PDF 里散落着十几个人名、几个邮箱、几个手机号、还有家庭住址。法务要明天前全部涂黑。手动做意味着翻遍每页、找出每一处、画矩形覆盖,还要担心漏了一个。

用正则能抓住明显的模式——邮箱、规范格式的电话号码——但碰到人名就抓瞎了("苹果"是水果还是某 CEO 的姓?),国际电话格式也容易漏。最后还是得通读全文校对一遍。

这正是 AI 擅长的活。OnePDFs 的 Smart Redact 工具 把 OpenAI 开源的 privacy-filter 模型直接跑在你的浏览器里。它扫描每一页,识别 8 类隐私信息,让你审核后再应用。PDF 全程不离开你的设备——不上传、不登录、不收费。

这里说的"AI 脱敏"具体是指什么

网上多数所谓"AI 脱敏"的工具,要么把你的文件传到他们服务器(需要保护的恰恰是这种文件),要么背后就是个套了营销页的正则。Smart Redact 都不是。OpenAI 完整的 15 亿参数 NER(命名实体识别)模型在你首次扫描时下载到浏览器,缓存供后续访问使用,本地用 WebGPU 加速跑推理。

一次扫描覆盖的 8 类隐私:

类别例子
人名像"张三"、"Tim Apple"——能区分人名语境和同形异义词
地址街道地址、邮编、城市国家行
邮箱标准格式 + 混淆形式(john [at] example.com
电话国际格式、区号、分机号
URLhttp/https/ftp 链接和裸域名
日期出生日期、文档日期,常见格式都识别
账号信用卡片段、银行路由号、IBAN 形式串
密钥不小心粘进文档的 API key、密码、token

这就是正则做不到的部分。上下文很重要:模型知道"Apple Inc. 发布财报"里的 Apple 是公司,"我上周给 Tim Apple 发了邮件"里的 Apple 是人。

三步完成 PDF 脱敏

流程刻意做得简单——上传、扫描、应用。

第一步:打开 Smart Redact 工具

访问 /tools/pdf-smart-redact,把 PDF 拖到上传区。文件留在浏览器里,没有任何东西被发送出去。编辑器打开后,Smart Redact 子工具已经自动激活。

Smart Redact 工具落地页:拖放区和首次需下载约 900 MB 模型的提示

第二步:运行 AI 扫描

扫描。如果是首次访问,privacy-filter 模型(约 900 MB)会下载到浏览器缓存。这一步每个 origin 只发生一次——下次访问,模型从本地缓存秒载,无需重新下载。扫描本身用 WebGPU 并行处理多页;现代机器上一份 20 页的文档约 30 秒内出结果。

扫描过程中,面板按页显示进度。识别到的项目按页分组列在面板里,每条同时在 PDF 上用对应类别的颜色高亮。

中文客户档案 PDF 扫描后的结果:人名、邮箱、+86 手机号、北京地址等 13 处隐私信息被高亮,右侧面板按类别列出实体

第三步:审核并应用

人工介入的环节。面板顶部有三个控件:

  1. 检测类型——8 个复选框,每个对应一类 PII。不想脱敏的类别取消勾选。比如日期是公开信息可以保留,取消"日期",PDF 上对应高亮立刻消失。
  2. 置信度阈值——0.50 到 0.99 的滑块。值越高误报越少但可能漏掉边界情况;值越低识别越多但会标出一些可疑项。默认 0.85 适合大多数文档。
  3. 应用脱敏——最终动作。点击后所有确认的项目都变成永久黑色矩形。底层文字从 PDF 中真实删除,不只是覆盖——选不中、复制不出、OCR 也还原不回来。

如果在列表里看到误判的项目,点旁边的 × 单独移除那一条。如果某个类别整体识别得不好,取消整个类别勾选。在你点击应用前,什么都不会被破坏。

应用脱敏后的中文 PDF:所有姓名、邮箱、电话、地址、银行账号、API 密钥都被替换为不可恢复的黑色矩形

为什么不直接用手动脱敏工具

OnePDFs 已经有 PDF 涂黑PDF 擦除 用于手动脱敏,知道具体要藏什么、藏哪儿时它们很顺手。Smart Redact 在这些场景更优:

  • 文档很长,想确保没漏掉
  • 事先不知道里面会出现哪些人名或邮箱
  • 想脱敏单一类别(比如只去所有电话号码)而不动其他
  • 反复处理同类文档需要稳定的规则

对于真正敏感的资料,正确流程往往是:先 AI 扫描,再人工用手动工具复核一遍。Smart Redact 是放大效率的杠杆,不是判断力的替代品。

隐私保障

这种工具的核心矛盾是:保护数据本身的工具不应该成为数据泄漏的渠道。所以值得明确每一步都发生在哪里:

  • 你的 PDF:留在浏览器。读进内存、由 pdf.js 提取文本,从不发送到网络
  • 模型:900 MB 权重首次从 HuggingFace CDN 下载,存入浏览器 Cache Storage。模型文件不会回传,也不存在任何服务端推理
  • 检测结果:包含位置和置信度的实体列表,仅在浏览器内存里
  • 脱敏后的 PDF:本地用 pdf-lib 生成并提供下载,没有任何日志记录

如果你在严格数据合规的企业环境里工作,这一点很关键。AI 看不到你的文档;它只是在已经加载页面的同一个 JS 运行时里跑。

AI 漏识别的情况

实事求是讲讲局限。privacy-filter 模型很好,但不完美:

  • 没有文字层的扫描件:模型需要可提取的文本。纯图片 PDF(多数扫描件)无法工作——Smart Redact 按钮对这类文件会被禁用。需要先用 扫描工具 做 OCR
  • 特殊语境下的人名:嵌在代码块里的人名,或非英文字符的人名可能被漏掉。降低置信度阈值能多识别一些,再人工复核
  • 形似账号但不是账号的数字:发票号、SKU 编码等会被误判。要么取消"账号"勾选(如果文档里这类很多),要么逐条移除

高敏感度文档的最佳实践:默认设置扫描,带高亮快速通览一遍,确认无误再点应用。

常见问题

收费吗?

不收。无订阅、无按页计费、无上传容量限制。唯一的成本是 900 MB 模型一次性下载——而且这一笔流量是 HuggingFace 的 CDN 出,不是我们站点。

离线能用吗?

模型缓存好之后,检测过程可以离线运行。第一次访问还是需要网络加载页面,但后续扫描新 PDF 不需要联网。

支持非英语 PDF 吗?

privacy-filter 模型主要在英文数据上训练,但实测对中文文档也有相当的覆盖:常见的中文人名、城市级地址("北京市海淀区中关村大街...")、+86 手机号、邮箱、URL、Chinese ID/账号都能识别。中文日期、银行支行名等带中文上下文的数据偶尔会漏,遇到误判可以人工剔除。拉丁语系欧洲语言(西、德、法)的人名识别比中文更稳定。

应用脱敏后原始文字去哪了?

从 PDF 的内容流中永久删除。我们不是把黑色矩形盖在文字上面——而是把底层文字直接抹掉。导出的 PDF 在密码学意义上等同于这些字符从未被键入过;OCR、文本选择、搜索,对脱敏区域都返回空。

能批量处理多个 PDF 吗?

界面上还不支持。模型按浏览器 tab 加载,但扫描流程一次跑一个文档。如果你有稳定的批处理需求,缓存模型 + 我们的 压缩 批量基础设施可以打通——欢迎反馈。

privacy-filter 模型是开源的吗?

是。在 HuggingFace 上以宽松协议发布。我们用的是 Transformers.js 移植版,让模型能在浏览器里推理。

试用

打开 Smart Redact,丢一个含个人信息的 PDF 进去,看 AI 在一分钟内全部找出来。首次扫描会下载模型(慢网络下 5–15 分钟,下完一次永久缓存);之后每次扫描都是秒级。

对于不适合 AI 的脱敏场景——快速定点涂黑、矩形遮挡、纯手动擦除——PDF 涂黑PDF 擦除 是更合适的工具。它们和 Smart Redact 互补,不是替代关系。

整个流程都在你的浏览器里。不上传、不登录、不收费。这就是全部卖点。