Loading... # OneAIFW 本地轻量级 LLM 隐私防火墙技术分析 # 一、项目概述 ## 1. 项目简介 OneAIFW 是一个本地化、轻量级的 AI 防火墙项目,通过在发送到 LLM 之前对敏感数据进行匿名化处理,并在响应返回后恢复原始数据,从而保护用户隐私。 ### A. 核心功能 OneAIFW 专注于保护三类敏感信息:隐私数据、密钥信息、加密资产 ### B. 技术特点 - 本地运行,数据不离境 - 跨平台支持 - 轻量级设计 - 零痕迹架构 ## 2. 项目背景 ### A. 问题来源 在使用大语言模型时,用户经常需要在提示词中包含敏感信息,如电子邮件、地址、银行账号等。这些数据会被发送到第三方 LLM 服务商,存在隐私泄露风险。 ### B. 解决方案 OneAIFW 通过拦截请求,识别并掩码敏感信息,将其替换为占位符发送给 LLM,待 LLM 返回结果后再将原始信息恢复,从而实现隐私保护。 # 二、系统架构 ## 1. 整体架构 OneAIFW 采用分层跨平台架构,核心引擎使用 Zig 和 Rust 实现,支持编译为原生库和 WASM 模块。 ```mermaid graph TB subgraph 应用层 WebApp[Web 应用 apps/webapp] Ext[浏览器扩展 browser_extension] CLI[CLI 工具 cli/python] end subgraph 语言绑定层 AIFWJS[aifw-js 库] AIFWPY[aifw-py 库] end subgraph 核心引擎层 Core[AIFW Core Zig + Rust] end subgraph 识别层 NER[NER 模型] Regex[正则引擎] end subgraph 后端服务 PyOrigin[py-origin FastAPI] end WebApp --> AIFWJS Ext --> AIFWJS CLI --> AIFWPY AIFWJS --> Core AIFWPY --> Core Core --> NER Core --> Regex PyOrigin --> NER ```  ## 2. 核心组件 ### A. 核心引擎 (AIFW Core) - 实现语言:Zig + Rust - 编译目标:原生库 + WASM - 职责:掩码/恢复管道、正则/NER 跨度融合 ### B. 语言绑定 - aifw-js:JavaScript/TypeScript 绑定 - aifw-py:Python 绑定 ### C. 应用层 - Web 演示应用 (Vite) - 浏览器扩展 (Chrome/Edge) - Python HTTP 服务 # 三、核心工作流程 ## 1. 数据掩码流程 ```mermaid sequenceDiagram participant User as 用户 participant AIFW as OneAIFW participant NER as NER 模型 participant Regex as 正则引擎 participant LLM as 大语言模型 User->>AIFW: 输入包含敏感信息的文本 AIFW->>NER: 识别命名实体 AIFW->>Regex: 正则模式匹配 AIFW->>AIFW: 合并跨度去重 AIFW->>AIFW: 生成占位符 AIFW->>LLM: 发送掩码后文本 LLM-->>AIFW: 返回处理结果 AIFW->>AIFW: 恢复原始信息 AIFW-->>User: 返回最终结果 ```  ## 2. 掩码机制 OneAIFW 使用占位符替换敏感信息,格式为:`__PII_{ENTITY_TYPE}_{SERIAL_ID}__` 示例: - 原文:Contact me at john@example.com - 掩码后:Contact me at __PII_EMAIL_ADDRESS_00000001__ - 恢复后:Contact me at john@example.com # 四、技术实现 ## 1. 核心引擎设计 ### A. 管道架构 AIFW 核心库采用双管道设计: - mask 管道:负责敏感信息掩码 - restore 管道:负责原始信息恢复 ### B. PII 识别 PII 检测通过复合识别器实现: - RegexRecognizer:Rust 正则引擎 (regex-automata) - NerRecognizer:外部 NER 模型识别 - SpanMerger:跨度合并、过滤、去重 ### C. 内存优化 - 占位符生成使用栈缓冲区 (无堆分配) - 元数据仅存储 (EntityType, serial_id) - 最小化内存占用,避免指针问题 ## 2. 跨平台编译 ### A. 编译目标 - 原生库:用于 Python 和其他宿主语言 - WASM (wasm32-freestanding):用于浏览器和 JS 环境 ### B. Rust 集成 - 使用 regex-automata 实现正则引擎 - 通过 C ABI 暴露静态库 - 同时构建原生和 WASM 目标 ## 3. 语言绑定 ### A. aifw-js (@oneaifw/aifw-js) - 使用 Transformers.js 运行 NER - 将跨度转换为字节偏移 - 调用 WASM 核心进行掩码/恢复 - 提供批量处理、语言感知掩码等高级 API ### B. aifw-py - 加载原生核心库 - 暴露简单的 Python API - 支持 mask_text、restore_text 及批量变体 # 五、受保护的实体类型 ## 1. 隐私信息 - 物理地址 - 电子邮件地址 - 姓名 - 电话号码 - 银行账号 - 支付信息 ## 2. 密钥信息 - 验证码 - 密码 ## 3. 加密资产 - 种子词 - 私钥 - 地址 # 六、部署方式 ## 1. Docker 部署 ```bash # 构建镜像 cd cli/python docker build -t oneaifw:latest -f Dockerfile . # 运行容器 docker run --rm -p 8844:8844 \ -e AIFW_API_KEY_FILE=/data/aifw/your-key.json \ -v $HOME/.aifw:/data/aifw \ oneaifw:latest ``` ## 2. 本地服务 ### A. Python 服务 (py-origin) ```bash cd py-origin python -m venv .venv source .venv/bin/activate pip install -r services/requirements.txt -r cli/requirements.txt python -m aifw launch ``` ### B. Web 演示 ```bash # 构建核心 zig build # 安装 JS 依赖 pnpm -w install # 构建 aifw-js pnpm -w --filter @oneaifw/aifw-js build # 运行 Web 应用 cd apps/webapp pnpm dev ``` ## 3. 浏览器扩展 ```bash pnpm -w --filter @oneaifw/aifw-js build mkdir -p browser_extension/vendor/aifw-js rsync -a --exclude 'models' libs/aifw-js/dist/* browser_extension/vendor/aifw-js ``` # 七、API 接口 ## 1. HTTP API (py-origin) - /api/call:完整调用流程 - /api/mask_text:文本掩码 - /api/restore_text:文本恢复 - /api/mask_text_batch:批量掩码 - /api/restore_text_batch:批量恢复 ## 2. 认证方式 - 使用标准 Authorization 头 - 通过环境变量 AIFW_HTTP_API_KEY 配置 - 支持命令行选项配置 ## 3. 参数优先级 配置参数解析顺序: 1. 命令行参数 2. 环境变量 3. 配置文件 (aifw.yaml) # 八、技术栈 ## 1. 编程语言分布 - Python:43.9% - Zig:24.0% - JavaScript:22.2% - HTML:6.1% - Dockerfile:1.6% - CSS:1.3% - Rust:0.9% ## 2. 核心依赖 - Zig 0.15.2:核心编译系统 - Rust toolchain:正则引擎 - Node.js 18+ 和 pnpm 9+:JS 生态 - Python 3.10+:后端服务 - Transformers.js:浏览器端 NER ## 3. 模型支持 - 默认 NER 模型:funstory-ai/neurobert-mini - 支持自定义模型配置 - 模型目录环境变量:AIFW_MODELS_DIR # 九、项目特点分析 ## 1. 优势 - 本地化处理,数据不离开用户环境 - 轻量级设计,资源占用低 - 跨平台支持,部署灵活 - 多语言绑定,易于集成 - 开源 MIT 许可证 ## 2. 技术亮点 - Zig + Rust 混合编程,兼顾性能和安全性 - WASM 支持,实现真正的跨平台 - 管道架构设计,职责分离清晰 - 内存优化设计,最小化堆分配 ## 3. 应用场景 - 企业内部 LLM 应用隐私保护 - 个人用户敏感信息防护 - 加密资产交易保护 - 医疗、金融等合规场景 # 十、开发与构建 ## 1. 前置要求 ```bash # 验证版本 zig version # 期望 0.15.2 rustc --version cargo --version node -v pnpm -v python3 --version ``` ## 2. 快速开始 ```bash # 克隆仓库 git clone https://github.com/funstory-ai/aifw.git cd aifw # 构建核心库 zig build # 安装 JS 依赖 pnpm -w install # 构建 aifw-js pnpm -w --filter @oneaifw/aifw-js build # 运行 Web 演示 cd apps/webapp pnpm dev ``` ## 3. 测试 ```bash # Zig 单元测试 zig build -Doptimize=Debug test # 集成测试 zig build inttest zig-out/bin/aifw_core_test ``` # 十一、相关资源 ## 1. 项目信息 - 仓库地址:https://github.com/funstory-ai/aifw - 演示网站:https://oneaifw.com/ - 许可证:MIT - Stars:261 - Forks:22 ## 2. 版本信息 - 最新版本:v0.5.1 (2024年11月28日) - 提交数:157 commits - 贡献者:2 人 *** ## 参考资料 1. [OneAIFW GitHub 仓库](https://github.com/funstory-ai/aifw) 2. [OneAIFW 官方网站](https://oneaifw.com/) 最后修改:2026 年 01 月 21 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏