nlink-jp/mail-analyzer-local
GitHub: nlink-jp/mail-analyzer-local
基于本地大模型的可疑邮件离线分析工具,融合规则检测与 LLM 判断,无需云端 API 即可完成钓鱼邮件识别。
Stars: 0 | Forks: 0
# mail-analyzer-local
[mail-analyzer](https://github.com/nlink-jp/mail-analyzer) 的本地 LLM 版本 — 使用兼容 OpenAI 的 API(LM Studio, Ollama 等)进行可疑电子邮件分析。
同样的基于规则的指标加上 LLM 判断,但完全通过本地模型离线运行。无需 GCP/Vertex AI。
## 环境要求
- 运行兼容 OpenAI API 的本地 LLM 服务器(例如 [LM Studio](https://lmstudio.ai/))
- 已加载的模型(已使用 google/gemma-4-26b-a4b 和 qwen/qwen3.5-9b 进行过测试)
## 安装
从 [Releases](https://github.com/nlink-jp/mail-analyzer-local/releases) 下载,或从源码构建:
```
make build # → dist/mail-analyzer-local
```
## 配置
```
export MAIL_ANALYZER_LOCAL_ENDPOINT="http://localhost:1234/v1"
export MAIL_ANALYZER_LOCAL_MODEL="google/gemma-4-26b-a4b"
# export MAIL_ANALYZER_LOCAL_API_KEY="your-key" # 可选
# export MAIL_ANALYZER_LOCAL_LANG="Japanese" # 可选
```
## 用法
```
mail-analyzer-local suspicious.eml
mail-analyzer-local --offline suspicious.eml # rule-based only, no LLM
mail-analyzer-local --version
```
输出为标准输出的 JSON 格式(与 mail-analyzer 的 schema 相同)。
## 推荐模型
**google/gemma-4-26b-a4b 且关闭 Think 模式** — 在包含 12 封电子邮件的评估数据集(5 封安全,7 封不安全)上达到了 100% 的准确率。
| 模型 | 大小 | Think | 准确率 |
|-------|------|-------|----------|
| **google/gemma-4-26b-a4b** | 26B | **OFF** | **100%** |
| qwen/qwen3.5-35b-a3b | 35B | OFF | 90% |
| qwen/qwen3.5-9b | 9B | OFF | 90% |
**重要提示:在进行电子邮件分析时请禁用思考模式。** 思考模式会由于对正常指标的过度推理,持续降低网络钓鱼检测的准确率。
有关完整结果和分析,请参阅 [模型评估指南](docs/en/model-evaluation.md)。
## 使用 nlk 构建
使用 [nlk](https://github.com/nlink-jp/nlk) 库处理 LLM 相关的周边工具:
- `guard` — 提示注入防御(128位随机数标记的 XML)
- `strip` — 思考/推理标签移除(支持 Gemma 4, Qwen, DeepSeek)
- `jsonfix` — 从 LLM 输出中提取和修复 JSON
- `backoff` — API 重试的指数退避
- `validate` — 基于规则的输出验证
## 许可证
MIT
标签:AI风险缓解, API安全, EVTX分析, Gemma, Golang, JSON输出, LLM, LLM评估, LM Studio, meg, Ollama, OpenAI兼容API, Qwen, SEO, TCP/UDP协议, Unmanaged PE, 云计算, 信息安全, 可疑邮件, 安全编程, 恶意邮件检测, 提示注入防御, 日志审计, 本地大模型, 本地部署, 源代码安全, 离线分析, 网络安全, 规则引擎, 邮件分析, 钓鱼检测, 隐私保护