diff --git a/README.md b/README.md index 186a91f..f641ed8 100644 --- a/README.md +++ b/README.md @@ -1,115 +1,165 @@ # LLM 性能测试工具 -一个用于测试本地和云端大模型性能的网页应用,兼容 OpenAI API 格式。 +一个用于本地和云端大模型性能测试的网页应用,兼容 OpenAI API 格式。 ## 功能特性 -- 🔧 **API 配置管理**:支持配置多个 LLM API 端点 -- 🤖 **模型配置**:管理不同模型的参数设置 -- 📝 **测试用例管理**:创建、编辑、导入/导出测试用例 -- ⚙️ **测试配置**:自定义并发数、请求次数等参数 -- 📊 **可视化图表**:实时显示 TTFT、TPS、延迟等指标 -- 📈 **历史记录**:保存和对比多次测试结果 -- 🌐 **OpenAI API 兼容**:支持任何兼容 OpenAI API 的模型服务 - -## 性能指标 - -- **TTFT (Time To First Token)**:首 token 响应时间 -- **TPS (Tokens Per Second)**:每秒生成 token 数 -- **总延迟**:完整响应时间 -- **吞吐量**:每分钟请求数 +- **API 配置管理**: 支持配置多个 LLM API 端点(如 Ollama、OpenAI、Azure 等) +- **模型配置**: 设置模型名称、温度、最大 token 数等参数 +- **测试用例管理**: 创建、编辑、删除自定义测试用例 +- **性能测试**: + - 支持串行和并发测试 + - 可配置迭代次数 + - 支持流式和非流式模式 +- **性能指标**: + - **TTFT** (Time To First Token): 首 token 响应时间(毫秒) + - **TPS** (Tokens Per Second): 每秒生成 token 数 + - 总响应时间 + - 输入/输出 token 数量 +- **可视化图表**: 使用 Chart.js 生成直观的性能对比图表 +- **历史记录**: 保存测试结果,支持查看和对比 ## 快速开始 -### 1. 安装依赖 +### 1. 克隆仓库 ```bash +git clone http://47.253.94.217:3000/zxu/llm_perf_test.git +cd llm_perf_test +``` + +### 2. 安装依赖 + +```bash +# Python 3.7+ pip install -r requirements.txt + +# Python 3.6 +pip install flask==1.1.4 requests==2.27.1 ``` -### 2. 启动应用 +### 3. 运行应用 ```bash -python app.py +python3 app.py ``` -或部署到生产环境: +应用将在 http://localhost:8001 启动 + +### 4. 一键部署 ```bash +chmod +x deploy.sh ./deploy.sh ``` -### 3. 访问应用 +部署脚本会: +- 安装依赖 +- 创建 systemd 服务 +- 启动并启用服务 +- 部署到 8001 端口 -打开浏览器访问 http://localhost:8001 - -## 使用说明 +## 使用方法 ### 配置 API -1. 点击"API 配置"标签 -2. 添加新的 API 配置: - - 名称:自定义标识 - - Base URL:API 端点地址(如 http://localhost:11434/v1) - - API Key:认证密钥 - -### 配置模型 - -1. 点击"模型配置"标签 -2. 添加模型配置: - - 选择对应的 API 配置 - - 输入模型名称 - - 设置温度、最大 token 数等参数 +1. 打开网页界面 http://localhost:8001 +2. 在"API 配置"标签页中设置: + - API Base URL: 如 `http://localhost:11434/v1` (Ollama) + - API Key: 如果需要身份验证 + - 模型名称: 如 `qwen2.5:latest` +3. 点击"验证连接"测试配置是否正确 ### 管理测试用例 -1. 点击"测试用例"标签 -2. 添加测试提示词 -3. 支持批量导入/导出 JSON 格式 +在"测试用例"标签页中: +- 添加新的测试用例(名称、提示词、期望长度) +- 编辑现有测试用例 +- 删除不需要的测试用例 +- 选择要运行的测试用例 ### 运行测试 -1. 点击"性能测试"标签 -2. 选择要测试的模型 -3. 选择测试用例 -4. 设置并发数和请求次数 -5. 点击"开始测试" +在"性能测试"标签页中: +1. 选择测试用例 +2. 配置测试参数: + - 迭代次数:每个测试用例运行多少次 + - 并发数:同时运行的请求数 + - 流式模式:是否使用流式 API 调用 +3. 点击"开始测试" +4. 等待测试完成,查看结果 ### 查看结果 - 实时查看 TTFT、TPS 等指标 -- 查看详细的响应数据 -- 导出结果为 JSON 格式 +- 查看成功率统计 +- 导出详细的测试报告 +- 在历史记录中对比不同测试结果 ## API 兼容性 -本工具兼容任何实现 OpenAI API 格式的服务: +本工具兼容以下 LLM API 格式: -- OpenAI GPT 系列 -- Ollama (本地模型) -- vLLM -- text-generation-inference -- 其他兼容服务 +- **Ollama**: `http://localhost:11434/v1` +- **OpenAI**: `https://api.openai.com/v1` +- **Azure OpenAI**: `https://{resource}.openai.azure.com/openai/deployments/{deployment}` +- **其他兼容 OpenAI API 的服务** -## 项目结构 +## 性能指标说明 + +| 指标 | 说明 | 单位 | +|------|------|------| +| TTFT | Time To First Token,从发送请求到收到第一个 token 的时间 | 毫秒 (ms) | +| TPS | Tokens Per Second,模型生成 token 的速度 | tokens/秒 | +| Total Time | 完整请求的响应时间 | 秒 (s) | +| Success Rate | 成功请求的比例 | % | + +## 文件结构 ``` llm_perf_test/ -├── app.py # Flask 主应用 +├── app.py # Flask 应用主程序 +├── deploy.sh # 部署脚本 ├── requirements.txt # Python 依赖 -├── deploy.sh # 部署脚本 ├── README.md # 使用说明 -└── templates/ - └── index.html # 前端页面 +├── templates/ +│ └── index.html # 前端页面 +└── data/ # 数据存储目录 + ├── config.json # API 配置 + ├── test_cases.json # 测试用例 + └── results.json # 测试结果 ``` -## 技术栈 +## 系统要求 -- **后端**: Python + Flask -- **前端**: HTML + JavaScript + Chart.js -- **UI**: Tailwind CSS -- **数据存储**: SQLite (JSON 文件) +- Python 3.6+ +- 内存: 至少 512MB +- 磁盘: 至少 100MB 可用空间 -## License +## 服务管理 + +```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 +``` + +## 访问地址 + +- 本地: http://localhost:8001 +- 局域网: http://<服务器IP>:8001 + +## 许可证 MIT License diff --git a/deploy.sh b/deploy.sh old mode 100644 new mode 100755