这篇内容是什么
这是一份可直接复制给 AI 的「在线工具生成型」提示词(Prompts)。目标是让 AI 一次性产出一个可运行、可构建、可部署的 PDF 脱敏在线工具:包含完整项目代码、清晰的文件结构、启动命令、部署说明,以及测试用例或 QA checklist。
提示:本文不涉及任何出图/配图/渲染图/海报/插画生成;只做对现有 PDF 文件的识别、遮盖、删除与报告导出。
覆盖场景
适用于把合同、报价单、简历、病例、对账单等 PDF 分享给外部前,需要自动或半自动隐藏敏感信息(如手机号、邮箱、身份证号、银行卡号、地址、姓名、工号、客户编号、订单号等)。工具应支持:单文件与批量;在线使用与离线模式;导出脱敏 PDF 与脱敏报告(JSON/CSV)。
交付物要求(硬约束)
交付物必须包含:1) 完整项目源码;2) 文件树;3) 本地运行命令;4) Docker 部署;5) 生产环境部署说明(Nginx/反代/HTTPS/限流/上传大小);6) 测试用例或 QA checklist;7) 关键安全点说明(不落盘或可配置落盘、临时文件清理、路径穿越防护、文件类型检测)。
Prompt (MVP):PDF 脱敏在线工具(可直接部署)
你是资深全栈工程师与安全工程师。请从零生成一个可部署的「PDF 脱敏在线工具」完整项目,要求:
【功能】
- Web 页面:上传 PDF(单个/批量),选择脱敏模式:自动识别 + 规则匹配 + 手动框选(可选)。
- 自动识别:在 PDF 文本层提取文字;对疑似敏感信息做高亮预览(不生成图片,只对 PDF 页面进行定位标注)。
- 规则匹配:内置并可配置正则(手机号/邮箱/身份证/银行卡/地址关键字/日期/金额等);支持自定义词库与黑名单。
- 脱敏策略:支持「涂黑遮盖」与「替换为 ***」两种策略;对文本层可做替换,对无文本层(扫描件)给出提示并提供 OCR 可选开关(默认关闭)。
- 产出:导出脱敏后的 PDF;同时导出脱敏报告(JSON + CSV),包含:命中的规则、页码、坐标范围(bbox)、原始片段(可配置是否保留)、替换后的片段、时间戳。
- 失败兜底:任何一步失败都要返回可读错误;禁止吞错。
【技术栈】
- 前端:React + Vite + Type 。
- 后端:Node.js + Fastify(或 Express)+ Type 。
- PDF 处理:pdf-lib(用于编辑/遮盖/替换)+ pdfjs-dist(用于解析/预览定位)。
- 不使用数据库(MVP 先内存/临时目录);但要预留接口便于未来接入对象存储。
【项目结构】
- 输出完整文件树(每个文件的用途说明)。
- 输出所有源代码(可以分文件展示)。
【运行与部署】
- 给出本地运行命令:安装依赖、启动前后端、端口说明。
- 给出 Dockerfile + docker-compose.yml:包含反向代理示例(可选 Nginx),并说明如何配置上传大小限制。
- 给出生产部署说明:Nginx 反代、HTTPS、限流、超时、临时文件清理策略。
【测试与 QA】
- 至少提供:单元测试(规则匹配/报告导出)、集成测试(上传->脱敏->下载)、以及 QA checklist(浏览器兼容、极端文件、并发、内存、异常路径)。
【安全】
- 校验文件类型(MIME + magic bytes);限制大小与页数;防止路径穿越;避免将原始文件持久化(或可配置)。
- 对日志做脱敏(不要在日志输出敏感内容)。
请直接开始输出项目。
Prompt (增强):批量队列、可观测与离线模式
在已有 PDF 脱敏工具的基础上,增加以下能力并给出可落地的代码改造方案(完整 diff 或逐文件输出):
- 批量任务队列:支持并发控制、任务进度、取消、失败重试;前端展示任务列表。
- 离线模式:提供 CLI(node 命令)可在服务器本地批量处理目录中的 PDF,输出到指定目录,并生成汇总报告。
- 可观测性:结构化日志、请求追踪 id、关键指标(处理耗时、失败率、命中规则数),并给出 Prometheus 指标端点示例。
- 资源控制:设置每任务最大时间/内存、并在超限时安全终止。
- 文档:更新 README,补充运维手册(限流、上传策略、清理策略、监控告警阈值建议)。
Prompt (合规):可配置保留策略与审计记录
请把工具升级为更偏合规与审计的版本,要求:
- 配置项:是否保留原文片段、保留多久、是否允许下载原文件、是否允许导出包含原文的报告。
- 审计日志:记录谁在何时处理了哪个文件(文件名哈希、大小、页数),使用了哪些规则集合;审计日志不包含敏感原文。
- 权限:增加最小可用的登录鉴权(可选:简单用户名密码 + JWT),并限制下载权限。
- 给出完整配置示例(.env)与安全默认值建议。
如何快速验收(QA checklist 摘要)
1) 上传包含手机号/邮箱/身份证号的 PDF:命中高亮正确,脱敏后不可选中原文;2) 批量 20 个 PDF:进度与取消可用;3) 超大 PDF:被限制并返回可读错误;4) 断网/刷新:任务状态可恢复或明确提示;5) 日志:不出现原始敏感字符串;6) Docker 一键启动:可访问上传页并完成下载;7) 报告导出:JSON/CSV 字段齐全且可追溯页码与坐标。