OneAIFW 本地轻量级 LLM 隐私防火墙技术分析

一、项目概述

1. 项目简介

OneAIFW 是一个本地化、轻量级的 AI 防火墙项目,通过在发送到 LLM 之前对敏感数据进行匿名化处理,并在响应返回后恢复原始数据,从而保护用户隐私。

A. 核心功能

OneAIFW 专注于保护三类敏感信息:隐私数据、密钥信息、加密资产

B. 技术特点

  • 本地运行,数据不离境
  • 跨平台支持
  • 轻量级设计
  • 零痕迹架构

2. 项目背景

A. 问题来源

在使用大语言模型时,用户经常需要在提示词中包含敏感信息,如电子邮件、地址、银行账号等。这些数据会被发送到第三方 LLM 服务商,存在隐私泄露风险。

B. 解决方案

OneAIFW 通过拦截请求,识别并掩码敏感信息,将其替换为占位符发送给 LLM,待 LLM 返回结果后再将原始信息恢复,从而实现隐私保护。

二、系统架构

1. 整体架构

OneAIFW 采用分层跨平台架构,核心引擎使用 Zig 和 Rust 实现,支持编译为原生库和 WASM 模块。

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

mermaid

2. 核心组件

A. 核心引擎 (AIFW Core)

  • 实现语言:Zig + Rust
  • 编译目标:原生库 + WASM
  • 职责:掩码/恢复管道、正则/NER 跨度融合

B. 语言绑定

  • aifw-js:JavaScript/TypeScript 绑定
  • aifw-py:Python 绑定

C. 应用层

  • Web 演示应用 (Vite)
  • 浏览器扩展 (Chrome/Edge)
  • Python HTTP 服务

三、核心工作流程

1. 数据掩码流程

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: 返回最终结果

mermaid

2. 掩码机制

OneAIFW 使用占位符替换敏感信息,格式为:__PII_{ENTITY_TYPE}_{SERIAL_ID}__

示例:

四、技术实现

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 部署

# 构建镜像
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)

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 演示

# 构建核心
zig build

# 安装 JS 依赖
pnpm -w install

# 构建 aifw-js
pnpm -w --filter @oneaifw/aifw-js build

# 运行 Web 应用
cd apps/webapp
pnpm dev

3. 浏览器扩展

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. 前置要求

# 验证版本
zig version        # 期望 0.15.2
rustc --version
cargo --version
node -v
pnpm -v
python3 --version

2. 快速开始

# 克隆仓库
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. 测试

# Zig 单元测试
zig build -Doptimize=Debug test

# 集成测试
zig build inttest
zig-out/bin/aifw_core_test

十一、相关资源

1. 项目信息

2. 版本信息

  • 最新版本:v0.5.1 (2024年11月28日)
  • 提交数:157 commits
  • 贡献者:2 人

参考资料

  1. OneAIFW GitHub 仓库
  2. OneAIFW 官方网站
最后修改:2026 年 01 月 21 日
如果觉得我的文章对你有用,请随意赞赏