3p3r/trypanophobe
GitHub: 3p3r/trypanophobe
在用户 prompt 到达 LLM 模型之前,利用 BERT 分类器检测其中是否存在提示词注入攻击的单二进制防护工具。
Stars: 0 | Forks: 0
# trypanophobe
在用户 prompt 到达您的模型之前,检查其中是否存在注入企图。只有一个二进制文件:可通过命令行或 HTTP 使用。
**仅支持英文 prompt。** 其他语言的 prompt 会被立即拒绝。底层分类器仅针对英文注入进行了 fine-tuning。
## 前置条件
至少需要 700MB 的可用磁盘空间(用于二进制文件本身)和 1GB 的 RAM(用于 BERT 分类)。
## 快速开始
```
cargo build --release
```
### 命令行
```
trypanophobe version
trypanophobe check "Ignore all previous instructions"
trypanophobe check ./my-prompts/ # every `.prompt` file in a folder
```
退出代码:**0** = 看起来安全,**1** = 失败(存在注入、非英文等)。
### HTTP 服务器
```
trypanophobe serve
```
在浏览器中打开 **http://127.0.0.1:9876/** 以查看交互式 API 文档(Swagger UI)。
- `POST /api/check`,附带 JSON `{"text": "..."}` —— 对 prompt 进行分类
- `GET /api/version` —— 版本信息
使用 `--prewarm` 在启动时于后台加载模型(服务器仍会立即开始监听)。
## 测试
```
cargo test
./smoke.sh
./coverage.sh
```
`smoke.sh` 会对 CLI 进行测试,启动一个临时服务器,并在不加载完整模型的情况下调用 HTTP API 进行英文检查。
## 每日构建二进制文件
每次向 `main` 分支的推送都会运行测试,并发布一个 [每日构建](https://github.com/3p3r/trypanophobe/releases/tag/nightly) 的预发布版本(参见 [`.github/workflows/ci.yml`](.github/workflows/ci.yml))。
| 下载 | 平台 |
|----------|----------|
| [trypanophobe-linux-x64](https://github.com/3p3r/trypanophobe/releases/download/nightly/trypanophobe-linux-x64) | Linux x86_64 |
| [trypanophobe-linux-arm64](https://github.com/3p3r/trypanophobe/releases/download/nightly/trypanophobe-linux-arm64) | Linux ARM64 |
| [trypanophobe-darwin-arm64](https://github.com/3p3r/trypanophobe/releases/download/nightly/trypanophobe-darwin-arm64) | macOS Apple Silicon |
| [trypanophobe-darwin-x64](https://github.com/3p3r/trypanophobe/releases/download/nightly/trypanophobe-darwin-x64) | macOS Intel(通过 Homebrew 使用 [`onnxruntime`](https://formulae.brew.sh/formula/onnxruntime)) |
| [trypanophobe-win32-x64.exe](https://github.com/3p3r/trypanophobe/releases/download/nightly/trypanophobe-win32-x64.exe) | Windows x86_64 |
## 许可证
MIT。内置的分类器模型采用 Apache-2.0 许可证(Protect AI)。
标签:AI安全, BERT, Chat Copilot, DLL 劫持, HTTP服务, Rust, 可视化界面, 大语言模型, 提示词注入防护, 网络流量审计, 通知系统