安装 Anonimal
Anonimal 以本地 / 自托管方式运行:数据绝不离开你的基础设施。镜像发布到 GitHub Container Registry,并在容器内暴露 8000 端口。
选择一个镜像
Section titled “选择一个镜像”有两个镜像。根据覆盖范围与体积权衡选择。
| 镜像 | 标签 | 大小 | 检测内容 | 适用场景 |
|---|---|---|---|---|
| full(ML) | :latest、:<ver> | ~6-7 GB 镜像 + ~3 GB 内存 | 结构化数据 + 姓名 / 地址(OPF) | 最大覆盖范围;替代生态系统的 Anonimal |
| lite(regex) | :lite、:<ver>-lite | 数十 MB | 仅结构化数据(邮箱、电话、卡号、DNI、CUIT、CBU、密钥) | 轻量、无 ML;无法识别自由格式姓名 |
- Docker(唯一的硬性要求)。
- lite: 数十 MB 磁盘空间和极少的内存。瞬时启动。
- full: ~6-7 GB 磁盘空间和约 3 GB 内存用于常驻模型;它受 CPU 约束。为容器分配大约 6 GB 内存。
Docker run
Section titled “Docker run”# 瞬时启动,无模型docker run -d --name anonimal -p 8920:8000 \ ghcr.io/diegoparras/anonimal-svc:lite# 首次启动时将模型加载到内存——请稍候片刻docker run -d --name anonimal -p 8920:8000 \ ghcr.io/diegoparras/anonimal-svc:latest检查健康状态,然后对一个样本进行匿名化。Web UI 在同一地址提供服务。
curl -s localhost:8920/healthcurl -s localhost:8920/anonymize -H "Content-Type: application/json" \ -d '{"text":"email juan@acme.com, CUIT 20-12345678-6","mode":"pseudo"}'在 full 镜像上,/health 会立即返回,而模型在后台加载;一旦检查点预热完成,ml.ready 会翻转为 true。UI 位于 http://localhost:8920。
配置:regex 与 ML 引擎
Section titled “配置:regex 与 ML 引擎”ANONIMAL_ENGINE 变量用于选择检测引擎:
auto(默认)——若 ML 就绪则使用 ML,否则回退到 lite。lite——仅 regex(结构化数据 + 拉美身份标识)。始终可用。ml——强制使用 OpenAI Privacy Filter 引擎(若不可用则返回503,例如在 lite 镜像上)。
OPF_DEVICE(仅限 full 镜像)在 cpu 与 cuda 之间切换 ML 引擎。
| 变量 | 默认值 | 用途 |
|---|---|---|
ANONIMAL_ENGINE | auto | 引擎选择:auto · lite · ml。 |
ANONIMAL_MODE | pseudo | API / UI 的默认替换模式。 |
ANONIMAL_TOKEN | (空) | 服务令牌。若设置,则每个请求都必须携带它(Authorization: Bearer 或 X-Anonimal-Token)。 |
ANON_HASH_KEY | (每个进程随机生成) | hash 模式的密钥;设置它可在重启后获得稳定的假名。 |
ANONIMAL_MAX_CHARS | 500000 | 最大输入长度(超过则返回 413)。 |
ANONIMAL_MAX_PDF_BYTES | 26214400(25 MB) | 用于涂黑的最大 PDF 大小。 |
OPF_DEVICE | cpu | cpu 或 cuda(仅限 full 镜像)。 |
OPF_CHECKPOINT | (默认) | 自定义 OPF 检查点的路径(仅限 full 镜像)。 |
设计为本地运行。如果你将其暴露到网络上:设置 ANONIMAL_TOKEN(每个请求都必须携带),并在前面放置一个 TLS 反向代理。镜像以非 root 用户运行,并强制执行大小上限(ANONIMAL_MAX_CHARS)。在生态系统内部,将 Anonimal 保留在内部网络中,不设公共域名,让 Escriba 通过内部主机名访问它。