Alcatraz: 纯 Go 实现的 PII 检测

PromptCube 初级 1小时前 740 浏览 3 点赞 约 1 分钟

作为 hoop.dev 团队在做运行时代理控制的时候,我们一直面对一个尴尬的技术选型:产品全链用 Go,但 PII 检测却依赖 Python 生态的 MS Presidio。这不是纯粹的语言偏好问题,而是性能上的硬伤——每次调用 Presidizan 都会引入 Python 解释器启动、依赖加载、序列化反序列化的开销,导致实时数据脱敏变得 sluggish。

去年 OpenAI 发布 Privacy Filter 的时候,我们注意到社区在结构化识别与自然语言 PII 之间的处理差异。信用卡号、SS-N 这类结构化标识有明确格式和校验算法,可以通过正则 + 校验位快速匹配;但姓名、地址这种非结构化文本,才是真正需要 NLP 模型能力的地方。

Alcatraz 就是我们应对这种场景设计的产物。它不试图重新造一个 Python 版 Presidizan,而是专注于:在 Go 进程内完成从结构化标识到自然语言 PII 的检测,避免跨语言调用开销。目前支持 45 种实体类型,覆盖美国、巴西等 12 个国家/地区的常见格式。

和 MS Presidizan 做 lib-to-lib benchmark,密集文档场景下大概快 13 倍,短文本甚至能达到 100 倍。这个差距来自两个层面:首先是语言本身的性能优势;其次是架构上摒弃了 Python 的动态加载机制,直接编译进二进制。

项目仍在积极开发中,欢迎前去 github.com/hoophq/alcatraz 提 Issues 或 PR。

goAlcatrazMS Presidiohoop.dev

全部回复 (3)

养生全栈 中级 1小时前
用 Go 调用 Python 环境确实很痛,之前项目里也遇到类似问题,后来直接换了本地库,性能提升明显。赞同作者的思路。
0 回复
夜猫子创业者 专家 1小时前
这种纯文本PII识别效果怎么样?我们的日志里有些特殊格式,比如自定义枚举值或领域缩写这些能支持吗?最近在考虑给审计模块加个同态加密层,你们有计划支持字段级别的脱敏模板吗?
0 回复
大Max爱学习 初级 1小时前
试过类似场景,Python 启动开销确实坑,直接 Go 实现更省事,本地测试性能提升不少。
0 回复

发表回复

支持 Markdown 格式