WordPress/wp-bench
GitHub: WordPress/wp-bench
WordPress官方AI基准测试,用于评估语言模型在WordPress开发中的知识掌握和代码生成能力。
Stars: 57 | Forks: 6
# WP-Bench 测试基准
WordPress 官方 AI 基准测试。评估语言模型对 WordPress 开发的掌握程度——从核心 API 和编码标准,到插件架构和安全最佳实践。
## 概述
WP-Bench 从两个维度衡量 AI 模型的能力:
- **知识** —— 测试 WordPress 概念、API 和最佳实践的选择题与简答题
- **执行** —— 由实际的 WordPress 运行时评判其正确性和质量的代码生成任务
该基准测试使用 WordPress 本身作为评判工具,在沙箱环境中运行生成的代码,并结合静态分析和运行时断言进行检查。
## 快速开始
### 1. 安装
```
python3 -m venv .venv && source .venv/bin/activate
pip install -e ./python
```
### 2. 配置 API 密钥
创建一个 `.env` 文件,填入你的模型提供商 API 密钥:
```
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GOOGLE_API_KEY=...
```
### 3. 启动 WordPress 运行时
```
cd runtime
npm install
npm start
```
### 4. 运行基准测试
```
cd ..
wp-bench run --config wp-bench.example.yaml
```
结果将写入 `output/results.json`,每个测试的日志保存在 `output/results.jsonl` 中。
## 多模型基准测试
通过在配置中列出多个模型,可以在单次运行中比较它们:
```
models:
- name: gpt-4o
- name: gpt-4o-mini
- name: claude-sonnet-4-20250514
- name: claude-opus-4-5-20251101
- name: gemini/gemini-2.5-pro
- name: gemini/gemini-2.5-flash
```
测试工具会依次运行每个模型,并输出一个比较表格。模型名称遵循 [LiteLLM 规范](https://docs.litellm.ai/docs/providers)。
## 配置
复制 `wp-bench.example.yaml` 并自定义:
```
dataset:
source: local # 'local' or 'huggingface'
name: wp-core-v1 # suite name
models:
- name: gpt-4o
grader:
kind: docker
wp_env_dir: ./runtime # path to wp-env project
run:
suite: wp-core-v1
limit: 10 # limit tests (null = all)
concurrency: 4
output:
path: output/results.json
jsonl_path: output/results.jsonl
```
### CLI 选项
```
# 项目根目录运行
wp-bench run --config wp-bench.yaml # run with config file
wp-bench run --model-name gpt-4o --limit 5 # quick single-model test
wp-bench run --test-type knowledge # run only knowledge tests (no WordPress env needed)
wp-bench run --test-type execution # run only execution tests
wp-bench dry-run --config wp-bench.yaml # validate config without calling models
```
## 仓库结构
```
.
├── python/ # Benchmark harness (pip installable)
├── runtime/ # WordPress grader plugin + wp-env config
├── datasets/ # Test suites (local JSON + Hugging Face builder)
├── notebooks/ # Results visualization and reporting
└── output/ # Benchmark results (gitignored)
```
## 测试套件
测试套件位于 `datasets/suites/<套件名称>/` 目录下,每个套件包含两个子目录:
- `execution/` —— 带有断言的代码生成任务(每个类别一个 JSON 文件)
- `knowledge/` —— 多选题和简答形式的知识问题(每个类别一个 JSON 文件)
默认套件 `wp-core-v1` 涵盖了 WordPress 核心 API、钩子、数据库操作和安全模式。
### 从 Hugging Face 加载
```
dataset:
source: huggingface
name: WordPress/wp-bench-v1
```
## 结果与报告
运行基准测试后,可使用附带的 Jupyter notebook 可视化结果:
```
pip install jupyter pandas plotly
jupyter notebook notebooks/results_report.ipynb
```
该 notebook 会生成:
- 总体得分柱状图
- 知识 vs 正确性对比图
- 针对顶级模型的雷达图
- 可导出的 HTML 报告
## 评分机制
1. 测试工具向模型发送请求 WordPress 代码的提示。
2. 生成的代码通过 WP-CLI 发送到 WordPress 运行时。
3. 运行时执行静态分析(语法、编码标准、安全性)。
4. 代码在沙箱中执行,并通过测试断言进行验证。
5. 结果以 JSON 格式返回,包含得分和详细反馈。
```
# 手动评分示例(从 runtime/ 目录运行)
npm run wp-bench -- verify --payload=$(echo '{"code":"
标签:AI基准, API集成, CMS安全, Docker, GNU通用公共许可证, IaC 扫描, JavaScript, MITM代理, Node.js, Python, Syscall, Web开发, WordPress, WordPress开发, 云安全监控, 人工智能, 代码生成, 代码质量测试, 可观测性, 多模型比较, 安全性测试, 安全最佳实践, 安全防御评估, 性能评估, 插件架构, 文件完整性监控, 无后门, 核心API, 模型评估, 沙箱环境, 渗透测试工具, 用户模式Hook绕过, 编码标准, 语言模型评估, 请求拦截, 逆向工具, 静态分析