# LLMSpeedTest **Repository Path**: javaxgb/llm-speed-test ## Basic Information - **Project Name**: LLMSpeedTest - **Description**: 一个用于测试各大厂商 LLM API 响应速度的轻量级工具,无需安装任何依赖。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-01 - **Last Updated**: 2026-04-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LLM API 速度测试工具 一个用于测试各大厂商 LLM API 响应速度的轻量级工具,无需安装任何依赖。 **注意: 手动在 test-llm-simple.js 中填写自己的 API Key,或者 启动后通过 Web 界面的"模型管理"功能在线配置** ![img_1.png](./img_1.png) ## 功能特点 - ✅ **零依赖**:仅使用 Node.js 内置模块(http, https, fs, path) - ✅ **实时流式测试**:支持 SSE 流式响应,精确测量首字延迟(TTFT) - ✅ **多厂商支持**:同时支持字节火山引擎、阿里云百炼等厂商 - ✅ **多模型对比**:可测试 GLM、Qwen、DeepSeek、Kimi 等多个模型 - ✅ **性能指标**:提供 TTFT、总耗时、Tokens 生成速度(t/s)等关键指标 - ✅ **Web 界面**:内置 HTML 测试界面,操作直观 ## 快速启动 ### 1. 默认端口启动 ``` bash node test-llm-simple.js ``` ### 2. 自定义端口启动 ``` bash node test-llm-simple.js 8080 ``` ### 3. 访问测试界面 启动成功后,在浏览器访问: ``` http://localhost:3000 ``` ### 4. 停止服务 按 `Ctrl+C` 即可停止服务器 ## 启动示例输出 ``` ⚡ LLM Speed Test Server (No Dependencies) 🌐 访问地址:http://localhost:3000 已配置的厂商: - 字节火山引擎 (volcengine): 8 个模型 [glm-4.7, glm-4, glm-3-turbo, doubao-seed-2.0-code, doubao-seed-2-0-pro-260215, MiniMax-M2.5, kimi-k2.5, deepseek-v3.2] - 阿里云百炼 (aliyun): 7 个模型 [glm-4.7, MiniMax-M2.5, kimi-k2.5, deepseek-v3.2, qwen-turbo, qwen-plus, qwen-max] 按 Ctrl+C 停止服务 ``` ## 修改厂商配置 ### 位置 配置文件位于 `test-llm-simple.js` 文件的 **第 31-46 行** ### 配置结构 ``` javascript const providers = { volcengine: { name: '字节火山引擎', baseUrl: 'https://ark.cn-beijing.volces.com/api/coding/v3', apiKey: 'YOUR_API_KEY_HERE', enabledModels: ['glm-4.7', 'glm-4', /* ... */], defaultModel: 'glm-4.7' }, aliyun: { name: '阿里云百炼', baseUrl: 'https://dashscope.aliyuncs.com/compatible-mode/v1', apiKey: 'YOUR_API_KEY_HERE', enabledModels: ['glm-4.7', 'qwen-turbo', /* ... */], defaultModel: 'glm-4.7' } }; ``` ### 修改步骤 #### 1. 修改 API Key 找到对应厂商的 `apiKey` 字段,替换为你自己的密钥: ``` javascript // 字节火山引擎 apiKey: 'xxx', // 替换为你的密钥 // 阿里云百炼 apiKey: 'xxxx', // 替换为你的密钥 ``` 或启动后在界面上修改,如下图所示 ![img.png](img.png) #### 2. 启用/禁用模型 通过修改 `enabledModels` 数组来控制哪些模型可用: ``` javascript // 只启用部分模型 enabledModels: ['glm-4.7', 'qwen-max'], // 添加新模型(需先在 modelLibrary 中定义) enabledModels: ['glm-4.7', 'your-new-model'], ``` #### 3. 添加新厂商 按照相同格式添加新的配置对象: ``` javascript const providers = { // ... 现有配置 ... yourprovider: { name: '你的厂商名称', baseUrl: 'https://api.yourprovider.com/v1', apiKey: 'your-api-key', enabledModels: ['model-1', 'model-2'], defaultModel: 'model-1' } }; ``` #### 4. 修改默认模型 更改 `defaultModel` 字段: ``` javascript defaultModel: 'qwen-max' // 改为其他已启用的模型 ``` ## 修改模型库 ### 位置 模型库定义位于 `test-llm-simple.js` 文件的 **第 16-28 行** ### 添加新模型 ``` javascript const modelLibrary = [ // ... 现有模型 ... { id: 'your-model-id', // 唯一标识符 name: 'Your Model Name', // 显示名称 description: '模型描述' // 描述信息 } ]; ``` ### 注意事项 1. 新增模型后,必须在 `providers.enabledModels` 中添加该模型 ID 才能使用 2. `id` 必须与厂商 API 要求的模型名称一致 3. 确保 `id` 在全局唯一 ## API 接口说明 ### GET /api/providers 获取所有厂商配置和模型库信息 **响应示例:** ``` json { "modelLibrary": [...], "providers": [ { "key": "volcengine", "name": "字节火山引擎", "baseUrl": "...", "enabledModels": [...], "defaultModel": "glm-4.7" } ] } ``` ### POST /api/test 测试指定厂商和模型的速度 **请求体:** ``` json { "providerKey": "volcengine", "modelId": "glm-4.7", "prompt": "请用一句话介绍你自己", "maxTokens": 150, "temperature": 0.7 } ``` **响应示例:** ``` json { "success": true, "provider": "字节火山引擎", "model": "glm-4.7", "ttft": 245, // 首字延迟(毫秒) "totalTime": 1523, // 总耗时(毫秒) "tokens": 89, // 生成的 tokens 数 "tps": 70.3, // 生成速度(tokens/秒) "response": "..." // 完整回复内容 } ``` ## 性能指标说明 | 指标 | 说明 | |------|------| | **TTFT** | Time To First Token,从发送请求到收到第一个字的时间 | | **Total Time** | 总耗时,从发送请求到接收完所有内容的总时间 | | **Tokens** | 生成的 token 数量 | | **TPS** | Tokens Per Second,每秒生成的 token 数 | ## 常见问题 ### Q: 为什么某些模型返回错误? A: 检查该模型是否在对应厂商的 `enabledModels` 列表中,以及 API Key 是否正确。 ### Q: 如何测试更多模型? A: 在 `modelLibrary` 中添加模型定义,并在对应厂商的 `enabledModels` 中启用。 ### Q: 可以同时在多个厂商测试同一模型吗? A: 可以,例如 `glm-4.7` 同时在字节火山引擎和阿里云上都有部署,可以对比速度和稳定性。 ## 技术实现 - **HTTP 服务器**:使用 Node.js 原生 `http` 模块 - **HTTPS 请求**:使用 `https` 模块调用各厂商 API - **流式处理**:解析 SSE (Server-Sent Events) 格式的流式响应 - **静态文件**:直接读取并返回 HTML 文件 --- **提示**:本工具中的 API Key 为示例用途,实际使用时请替换为您自己的密钥。 ```