sam0690/evalgate
GitHub: sam0690/evalgate
面向 LLM 应用的 CI 门禁工具,通过 golden-set 回归、成本/延迟漂移检测和 prompt 注入检查在构建阶段拦截质量与安全问题。
Stars: 0 | Forks: 0
# Evalgate
[](https://github.com/sam0690/evalgate/actions/workflows/ci.yml)
面向基于 LLM 应用的 CI 门禁。每次代码变更时,会对您的 pipeline 执行回归测试、成本/延迟漂移以及
prompt 注入检查,并在超出阈值时
以非零状态退出 —— 就像 pytest 一样,但专为 LLM 系统特有的
故障模式而生。
## 问题所在
团队经常修改 prompt、更换模型并修改检索逻辑,却
没有系统性的信号来判断情况是变好还是变坏:
- **隐性回归** —— 调整 prompt 修复了一个案例,却破坏了另外三个。
- **成本/延迟蔓延** —— 一次改动悄悄地使 token 使用量翻倍;没人追踪它。
- **安全漂移** —— 系统提示词的编辑削弱了越狱抵抗力,且未经验证。
- **人工肉眼检查** —— “在 playground 里看起来没问题”是行业默认做法。
## 三大支柱
| 支柱 | 解决的问题 | 状态 |
|---|---|---|
| Golden-set 回归 | 已知的良好案例得分是否仍然高于阈值? | ✅ 阶段 1(精确匹配/正则匹配/语义匹配)+ judge(阶段 2) |
| 成本与延迟漂移 | 与滚动基准线相比,此更改是否改变了 p95 延迟或成本? | ✅ 阶段 3(`evalgate report`,DRIFT 标志) |
| 注入鲁棒性 | 固定的对抗性测试集是否仍会被拒绝? | ✅ 阶段 4(`suites.injection`,相同的 gate) |
还有最棘手的部分:**根据手工标注的 ground truth 进行校准的 LLM-as-judge 评分**,
并附带置信区间报告 —— 而非凭感觉的评分器。
(✅ 阶段 2:使用多数投票的 `method: judge` + 带有
Wilson 置信区间的 `evalgate calibrate`。请参阅 [评分标准](docs/rubric.md) 和 [阶段 2 说明](docs/phase-2.md)。)
## 快速开始
```
pip install -e . # or .[semantic] for embedding-based scoring
python examples/toy_target.py & # demo target app
evalgate run --config examples/evalgate.yaml
```
Evalgate 将您的应用视为通过 HTTP 通信的黑盒:`POST {"input": ...}` →
`{"output": ...}`。适用于任何语言、任何技术栈。
## 文档
- [概念词汇表](docs/CONCEPTS.md) —— 用平实的语言解释每个术语
- [阶段 1 说明](docs/phase-1.md) —— golden-set 运行器
- [阶段 2 说明](docs/phase-2.md) —— LLM-as-judge + 校准
- [阶段 3 说明](docs/phase-3.md) —— 成本/延迟漂移
- [阶段 4 说明](docs/phase-4.md) —— 注入鲁棒性
标签:AI工程, DLL 劫持, Python, 反取证, 大语言模型, 安全评估, 文档结构分析, 无后门, 逆向工具