
DataInfra-RedactionEverything
本地大模型自动识别并遮盖文档图片里的敏感信息
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-11-07 · 当前星标 ★ 1133
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Windows 下的 WSL 环境(用于创建两个 Python 虚拟环境)
- Python 3(python3 -m venv 可用)
- Docker 与 Docker Compose
- Node.js/npm(用 npm run dev 启动 WSL 内模型服务时需要)
- NVIDIA GPU(运行 --profile gpu 完整模型栈时需要)
安装与启动步骤
-
1获取项目代码
克隆仓库到本地,后续命令中的路径需替换成你自己的实际目录。
git clone https://github.com/ttttccxxui/DataInfra-RedactionEverything.git -
2复制并填写 .env
参照 .env.example 生成 .env,至少填好三个虚拟环境与模型路径相关变量。
cp .env.example .env -
3创建应用与 OCR 环境
第一个虚拟环境运行 PP-StructureV3 / PaddleOCR 封装服务,路径要与 VENV_DIR 一致。
python3 -m venv ~/.cache/datainfra-redaction/.venv ~/.cache/datainfra-redaction/.venv/bin/pip install -r /mnt/d/DataInfra-RedactionEverything/backend/requirements.txt -
4创建 vLLM 环境
vLLM 的 Torch/CUDA 栈与 Paddle/PaddleX 冲突,必须单独建第二个虚拟环境。
python3 -m venv ~/.cache/datainfra-redaction/.venv-vllm ~/.cache/datainfra-redaction/.venv-vllm/bin/pip install vllm -
5启动 CPU 服务栈
只跑 CPU 版 API 和前端,适合先验证界面与流程能否跑通。
docker compose up -d -
6启动 GPU 模型栈
带 gpu profile 会一并启动 ocr、ner、visual-features 三个模型服务。
docker compose --profile gpu up -d -
7配置本地服务地址
不用 Docker 本地开发时,在 .env 里把各模型服务地址指向本机对应端口。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
VENV_DIR | 是 | 应用与 OCR 虚拟环境目录,需与创建命令中的路径一致。 | ~/.cache/datainfra-redaction/.venv |
VLLM_VENV_DIR | 是 | vLLM 独立虚拟环境目录,与上者分开避免依赖冲突。 | ~/.cache/datainfra-redaction/.venv-vllm |
HAS_TEXT_HF_MODEL_PATH | 是 | 指向文本模型权重的本地路径,npm run dev 时使用。 | /your/path/models/has-text-0209 |
JWT_SECRET_KEY | 否 | 登录令牌签名密钥,多租户部署时每个实例必须不同。 | a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 |
AUTH_ENABLED | 否 | 是否开启登录鉴权,处理敏感客户资料时应保持开启。 | true |
TRUSTED_PROXIES | 否 | 反向代理所在网段,不在默认回环与 172.16.0.0/12 内时需显式设置。 | 10.0.0.0/8,192.168.0.0/16 |
如何确认成功
执行 docker compose ps 确认各容器为 running,再用首个账号登录,该用户自动成为 super_admin。
常见问题
Q:为什么必须建两个虚拟环境?
A:vLLM 依赖的 Torch/CUDA 栈与 Paddle/PaddleX 不兼容,混装会互相破坏,README 要求将二者分开。
Q:CPU 模式与 GPU 模式怎么选?
A:docker compose up -d 只启动 API 和前端;加 --profile gpu 才会启动 ocr、ner、visual-features 模型服务。
Q:反向代理部署后登录限流不准?
A:登录限流只信任 TRUSTED_PROXIES 中的对端地址,代理在 10.x 或 192.168.x 网段时需在 .env 里显式配置。
Q:多实例共用一块 GPU 如何限流?
A:用 JOB_CONCURRENCY 控制并发,各实例之和不超过 3;起步可设 BATCH_RECOGNITION_PAGE_CONCURRENCY=1、HAS_NER_MAX_PARALLEL_REQUESTS=1。
Q:可以用于商业项目吗?
A:项目为 Personal Use License,个人非商业免费,公司、团队、托管或生产部署需单独取得商业授权。
注意事项
- 不要把 .env、模型权重、真实样本、上传文件、运行时数据库、日志和导出结果提交进仓库。
- 默认定位是本地或内网使用;对公网暴露前需补齐认证、访问控制、反向代理、TLS、日志与密钥轮换。
- 商用还需自行解决第三方许可:LocateAnything-3B 权重为 NVIDIA 非商业许可,PyMuPDF 为 AGPL-3.0。
- 多租户应按实例隔离:每租户独立 .env、域名、JWT_SECRET_KEY、网络与 Docker 卷,不共用数据目录。
核心亮点
- 全流程本地推理,敏感材料无需上传云端,隐私风险低
- 用 LLM/VLM 替代固定正则,能识别格式多变的人名、地址、证件号等非结构化信息
- 同时覆盖文本与图像内容,可处理扫描件、截图等视觉材料
不足之处
- 依赖本地大模型,对显卡或内存有一定要求,低配设备推理慢
- 识别准确率受所选模型能力影响,仍需人工复核关键结果
- 项目处于成长期,文档与社区生态待观察
适用场景
- 法务或行政人员批量脱敏合同、协议中的当事人信息
- 医疗或人事场景处理病历、简历等含隐私的扫描件
- 个人在分享截图、票据前自动遮盖证件号与联系方式
替代项目
Presidio、PaddleOCR
同类项目推荐
Screenshot
开源
一个软件搞定截图、长截图、录屏、OCR 和翻译
SnapCut(简截)——轻巧但不将就的 Windows 和 macOS 截图工作台:框选截图、长截图、区域···
kition
开源
笔记表格白板加AI,一个桌面全搞定
Kition brings Markdown, DataTable, WhiteBoard, a tool-using AI agent, browser resear···
feishu-md2wechat
开源
飞书文档一键排版,直接粘贴发公众号
飞书 → WeChat | 飞书文档一键排版转换发布到微信公众号,支持多主题
Stirling PDF
开源
本地部署 PDF 工具箱
#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere
mkdocs-llmstxt
开源
给 MkDocs 文档站自动生成面向大模型的 llms.txt 索引
MkDocs plugin to generate an /llms.txt file (https://llmstxt.org/).
meetily
开源
本地实时转录+摘要,4倍速会议记录,隐私零泄露
Privacy-first AI meeting note taker for Windows and macOS. Free, open source (MIT). ···
meetcap
开源
会议录音本地转写,AI 自动出纪要还能对话驱动
Powerful, free, context-aware AI native meeting assistant that transcribes in real-t···
zotero-gpt
开源
在 Zotero 里直接和 AI 聊文献,边读边问边记
GPT Meet Zotero.
Shiyin
开源
Mac 本地录音转写,自动区分发言人并生成带时间戳笔记
Free, open-source meeting notes app for Mac: records Zoom, Meet and Teams without a ···