2026-03-02 23:57:09 +08:00
|
|
|
|
# LLM 性能测试工具
|
2026-03-02 23:51:44 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
一个用于本地和云端大模型性能测试的网页应用,兼容 OpenAI API 格式。
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
## 功能特性
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
- **API 配置管理**: 支持配置多个 LLM API 端点(如 Ollama、OpenAI、Azure 等)
|
|
|
|
|
|
- **模型配置**: 设置模型名称、温度、最大 token 数等参数
|
|
|
|
|
|
- **测试用例管理**: 创建、编辑、删除自定义测试用例
|
|
|
|
|
|
- **性能测试**:
|
|
|
|
|
|
- 支持串行和并发测试
|
|
|
|
|
|
- 可配置迭代次数
|
|
|
|
|
|
- 支持流式和非流式模式
|
|
|
|
|
|
- **性能指标**:
|
|
|
|
|
|
- **TTFT** (Time To First Token): 首 token 响应时间(毫秒)
|
|
|
|
|
|
- **TPS** (Tokens Per Second): 每秒生成 token 数
|
|
|
|
|
|
- 总响应时间
|
|
|
|
|
|
- 输入/输出 token 数量
|
|
|
|
|
|
- **可视化图表**: 使用 Chart.js 生成直观的性能对比图表
|
|
|
|
|
|
- **历史记录**: 保存测试结果,支持查看和对比
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
## 快速开始
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
### 1. 克隆仓库
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
```bash
|
|
|
|
|
|
git clone http://47.253.94.217:3000/zxu/llm_perf_test.git
|
|
|
|
|
|
cd llm_perf_test
|
|
|
|
|
|
```
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
### 2. 安装依赖
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-03-03 00:23:10 +08:00
|
|
|
|
# Python 3.7+
|
2026-03-02 23:57:09 +08:00
|
|
|
|
pip install -r requirements.txt
|
2026-03-03 00:23:10 +08:00
|
|
|
|
|
|
|
|
|
|
# Python 3.6
|
|
|
|
|
|
pip install flask==1.1.4 requests==2.27.1
|
2026-03-02 23:57:09 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
### 3. 运行应用
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-03-03 00:23:10 +08:00
|
|
|
|
python3 app.py
|
2026-03-02 23:57:09 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
应用将在 http://localhost:8001 启动
|
|
|
|
|
|
|
|
|
|
|
|
### 4. 一键部署
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-03-03 00:23:10 +08:00
|
|
|
|
chmod +x deploy.sh
|
2026-03-02 23:57:09 +08:00
|
|
|
|
./deploy.sh
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
部署脚本会:
|
|
|
|
|
|
- 安装依赖
|
|
|
|
|
|
- 创建 systemd 服务
|
|
|
|
|
|
- 启动并启用服务
|
|
|
|
|
|
- 部署到 8001 端口
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
## 使用方法
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
### 配置 API
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
1. 打开网页界面 http://localhost:8001
|
|
|
|
|
|
2. 在"API 配置"标签页中设置:
|
|
|
|
|
|
- API Base URL: 如 `http://localhost:11434/v1` (Ollama)
|
|
|
|
|
|
- API Key: 如果需要身份验证
|
|
|
|
|
|
- 模型名称: 如 `qwen2.5:latest`
|
|
|
|
|
|
3. 点击"验证连接"测试配置是否正确
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
### 管理测试用例
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
在"测试用例"标签页中:
|
|
|
|
|
|
- 添加新的测试用例(名称、提示词、期望长度)
|
|
|
|
|
|
- 编辑现有测试用例
|
|
|
|
|
|
- 删除不需要的测试用例
|
|
|
|
|
|
- 选择要运行的测试用例
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
### 运行测试
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
在"性能测试"标签页中:
|
|
|
|
|
|
1. 选择测试用例
|
|
|
|
|
|
2. 配置测试参数:
|
|
|
|
|
|
- 迭代次数:每个测试用例运行多少次
|
|
|
|
|
|
- 并发数:同时运行的请求数
|
|
|
|
|
|
- 流式模式:是否使用流式 API 调用
|
|
|
|
|
|
3. 点击"开始测试"
|
|
|
|
|
|
4. 等待测试完成,查看结果
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
### 查看结果
|
|
|
|
|
|
|
|
|
|
|
|
- 实时查看 TTFT、TPS 等指标
|
2026-03-03 00:23:10 +08:00
|
|
|
|
- 查看成功率统计
|
|
|
|
|
|
- 导出详细的测试报告
|
|
|
|
|
|
- 在历史记录中对比不同测试结果
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
## API 兼容性
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
本工具兼容以下 LLM API 格式:
|
|
|
|
|
|
|
|
|
|
|
|
- **Ollama**: `http://localhost:11434/v1`
|
|
|
|
|
|
- **OpenAI**: `https://api.openai.com/v1`
|
|
|
|
|
|
- **Azure OpenAI**: `https://{resource}.openai.azure.com/openai/deployments/{deployment}`
|
|
|
|
|
|
- **其他兼容 OpenAI API 的服务**
|
|
|
|
|
|
|
|
|
|
|
|
## 性能指标说明
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
| 指标 | 说明 | 单位 |
|
|
|
|
|
|
|------|------|------|
|
|
|
|
|
|
| TTFT | Time To First Token,从发送请求到收到第一个 token 的时间 | 毫秒 (ms) |
|
|
|
|
|
|
| TPS | Tokens Per Second,模型生成 token 的速度 | tokens/秒 |
|
|
|
|
|
|
| Total Time | 完整请求的响应时间 | 秒 (s) |
|
|
|
|
|
|
| Success Rate | 成功请求的比例 | % |
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
## 文件结构
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
llm_perf_test/
|
2026-03-03 00:23:10 +08:00
|
|
|
|
├── app.py # Flask 应用主程序
|
|
|
|
|
|
├── deploy.sh # 部署脚本
|
2026-03-02 23:57:09 +08:00
|
|
|
|
├── requirements.txt # Python 依赖
|
|
|
|
|
|
├── README.md # 使用说明
|
2026-03-03 00:23:10 +08:00
|
|
|
|
├── templates/
|
|
|
|
|
|
│ └── index.html # 前端页面
|
|
|
|
|
|
└── data/ # 数据存储目录
|
|
|
|
|
|
├── config.json # API 配置
|
|
|
|
|
|
├── test_cases.json # 测试用例
|
|
|
|
|
|
└── results.json # 测试结果
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## 系统要求
|
|
|
|
|
|
|
|
|
|
|
|
- Python 3.6+
|
|
|
|
|
|
- 内存: 至少 512MB
|
|
|
|
|
|
- 磁盘: 至少 100MB 可用空间
|
|
|
|
|
|
|
|
|
|
|
|
## 服务管理
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 查看状态
|
|
|
|
|
|
sudo systemctl status llm_perf_test
|
|
|
|
|
|
|
|
|
|
|
|
# 查看日志
|
|
|
|
|
|
sudo journalctl -u llm_perf_test -f
|
|
|
|
|
|
|
|
|
|
|
|
# 停止服务
|
|
|
|
|
|
sudo systemctl stop llm_perf_test
|
|
|
|
|
|
|
|
|
|
|
|
# 重启服务
|
|
|
|
|
|
sudo systemctl restart llm_perf_test
|
|
|
|
|
|
|
|
|
|
|
|
# 禁用开机启动
|
|
|
|
|
|
sudo systemctl disable llm_perf_test
|
2026-03-02 23:57:09 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
## 访问地址
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
- 本地: http://localhost:8001
|
|
|
|
|
|
- 局域网: http://<服务器IP>:8001
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
2026-03-03 00:23:10 +08:00
|
|
|
|
## 许可证
|
2026-03-02 23:57:09 +08:00
|
|
|
|
|
|
|
|
|
|
MIT License
|