Skip to content

Commit 5112181

Browse files
committed
fix number of requests and optimize translation
1 parent ba87c2e commit 5112181

File tree

9 files changed

+415
-267
lines changed

9 files changed

+415
-267
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ For custom data, please refer to the [Dataset Usage Guide](docs/DATASET_GUIDE.md
122122
3. **API Testing**: In Test Tasks → Create Task, click the "Test" button in the Basic Information panel to quickly test API connectivity (use a lightweight prompt for faster feedback).
123123
4. **Real-time Monitoring**: Navigate to Test Tasks → Logs/Monitoring Center to view full-chain test logs and troubleshoot exceptions
124124
5. **Result Analysis**: Navigate to Test Tasks → Results to view detailed performance results and export reports
125-
6. **Result Comparison**: Navigate to Model Arena to select multiple models or versions for multi-dimensional performance comparison
126-
7. **AI Analysis**: In Test Tasks → Results/Model Arena, after configuring AI analysis service, support intelligent performance evaluation for single/multiple tasks
125+
6. **Result Comparison**: Navigate to Pref Comparison to select multiple models or versions for multi-dimensional performance comparison
126+
7. **AI Analysis**: In Test Tasks → Results/Pref Comparison, after configuring AI analysis service, support intelligent performance evaluation for single/multiple tasks
127127

128128
## 🔧 Configuration
129129

README_CN.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ curl -fsSL https://raw.githubusercontent.com/MigoXLab/LMeterX/main/quick-start.s
123123
3. **API 测试**: 在 测试任务 → 创建任务,点击基础信息面板的「测试」按钮,快速验证接口连通性(建议使用简短 prompt)
124124
4. **实时监控**: 访问 测试任务 → 日志/监控中心,查看全链路测试日志,快速定位异常
125125
5. **结果分析**: 进入 测试任务 → 结果,查看详细性能指标并导出报告
126-
6. **结果对比**: 在 模型擂台 模块选择多个模型/版本,进行多维度性能对比
127-
7. **AI 分析**: 在 测试任务 → 结果/模型擂台 中配置 AI 分析服务后,可对单个或多任务进行智能评估
126+
6. **性能对比**: 在 性能对比 模块选择多个模型/版本,进行多维度性能对比
127+
7. **AI 分析**: 在 测试任务 → 结果/性能对比 中配置 AI 分析服务后,可对单个或多任务进行智能评估
128128

129129
## 🔧 配置说明
130130

frontend/public/locales/en/translation.json

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"sidebar": {
33
"testTasks": "Test Tasks",
4-
"modelArena": "Model Arena",
4+
"perfCompare": "Perf Insight",
55
"monitorHub": "Monitor Hub",
66
"systemConfig": "System Config"
77
},
@@ -183,7 +183,7 @@
183183
"enterApiKeyWithoutBearer": "Enter your API key without Bearer prefix"
184184
},
185185
"resultComparison": {
186-
"title": "Model Arena",
186+
"title": "Metric Comparison",
187187
"selectModels": "Select Models",
188188
"compare": "Compare",
189189
"addModel": "Add Model",
@@ -193,7 +193,7 @@
193193
"selectTasks": "Select Tasks",
194194
"comparisonChart": "Comparison Chart",
195195
"exportComparison": "Export Comparison",
196-
"description": "Model performance comparison with multi-metric",
196+
"description": "Performance comparison and analysis with multi-metric",
197197
"clearAllTasks": "Clear All Selected Tasks",
198198
"clearAllTasksConfirm": "Are you sure you want to clear all selected tasks?",
199199
"allTasksCleared": "All tasks cleared",
@@ -208,12 +208,13 @@
208208
"downloadFailed": "Download failed: {{error}}",
209209
"modelInfo": "Model Info",
210210
"download": "Download Report",
211-
"selectModel": "Select Model",
211+
"selectTask": "Select Task",
212212
"clearAll": "Clear All",
213-
"pleaseSelectModel": "Please select the model for comparison",
213+
"pleaseSelectTask": "Please select the task for comparison",
214214
"comparisonResults": "Comparison Results",
215+
"noMetricData": "No metric data available to visualize",
215216
"tasksSelected": "{{count}} task(s) selected",
216-
"compareResult": "Compare Result",
217+
"compareResult": "Submit",
217218
"searchTaskOrModel": "Search task name or model name",
218219
"filterModel": "Filter model",
219220
"noAvailableTasks": "No available tasks found",
@@ -222,28 +223,30 @@
222223
"fetchAvailableTasksError": "Failed to fetch available tasks",
223224
"selectAtLeast2Tasks": "Please select at least 2 tasks for comparison",
224225
"max5TasksAllowed": "Maximum 5 tasks can be selected for comparison",
225-
"comparisonCompleted": "Result comparison completed",
226+
"comparisonCompleted": "Comparison completed",
226227
"compareResultFailed": "Failed to compare Result",
227228
"compareResultError": "Failed to compare Result",
228229
"generatingComparisonReport": "Generating comparison report...",
229230
"comparisonComponentsNotLoaded": "Comparison components not fully loaded, please try again later.",
230231
"unableToCaptureComparisonContent": "Unable to capture any comparison content.",
231232
"unableToCreateCanvasContext": "Unable to create Canvas drawing context.",
232-
"selectModelForComparison": "Select Model for Comparison",
233+
"selectModelForTask": "Select Task",
233234
"unknownError": "Unknown error",
234235
"timeToFirstToken": "Time to First Token (TTFT)",
235236
"requestsPerSecond": "Requests Per Second (RPS)",
236237
"totalTokensPerSecond": "Total Tokens Per Second (TPS)",
237238
"completionTokensPerSecond": "Completion Tokens Per Second",
238239
"averageTotalTokensPerRequest": "Average Total Tokens Per Request",
239240
"averageCompletionTokensPerRequest": "Average Completion Tokens Per Request",
241+
"totalTime": "Total Time",
240242
"metricDescriptions": {
241243
"rps": "Number of requests sent per second",
242244
"ttft": "Time to first token (s)",
243245
"totalTps": "Number of input and generated tokens per second",
244246
"completionTps": "Number of generated tokens per second",
245247
"avgTotalTpr": "Average number of input and generated tokens per request",
246-
"avgCompletionTpr": "Average number of generated tokens per request"
248+
"avgCompletionTpr": "Average number of generated tokens per request",
249+
"totalTime": "Average time spent from request start to output completion"
247250
},
248251
"concurrentUsersSuffix": "u",
249252
"chartTitles": {
@@ -252,7 +255,8 @@
252255
"totalTps": "Total TPS",
253256
"completionTps": "Completion TPS",
254257
"avgTotalTpr": "Avg Total TPR",
255-
"avgCompletionTpr": "Avg Completion TPR"
258+
"avgCompletionTpr": "Avg Completion TPR",
259+
"totalTime": "Total Time (s)"
256260
},
257261
"aiAnalysis": "AI Summary",
258262
"aiAnalysisResults": "AI Summary Results",
@@ -400,8 +404,8 @@
400404
"selectJsonlFile": "Select JSONL File",
401405
"selectDatasetFile": "Select Dataset File",
402406
"jsonlFormatDescription": "Required format: .jsonl file with each line containing {\"id\": \"...\", \"prompt\": \"...\"}",
403-
"datasetFileFormatDescription": "Supports JSON (ShareGPT format) and JSONL formats. ShareGPT: [{\"id\": \"...\", \"conversations\": [...]}], JSONL: one JSON object per line {\"id\": \"...\", \"prompt\": \"...\"}",
404-
"datasetImageMountWarning": "⚠️ If the dataset contains images, ensure image files are mounted to the container. See DATASET_GUIDE for details.",
407+
"datasetFileFormatDescription": "Supports JSON (ShareGPT format) and JSONL formats:\n• JSON: [{\"id\": \"...\", \"conversations\": [...]}, ...]\n JSONL: one JSON object per line {\"id\": \"...\", \"prompt\": \"...\"}",
408+
"datasetImageMountWarning": "⚠️ If the dataset contains images paths, ensure image files are mounted to the container before starting the service. See DATASET_GUIDE for details.",
405409
"jsonlData": "JSONL Data",
406410
"jsonlDataTooltip": "Each line must be a valid JSON object with \"id\" and \"prompt\" fields.",
407411
"testDuration": "Test Duration (seconds)",

frontend/public/locales/zh/translation.json

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"sidebar": {
33
"testTasks": "测试任务",
4-
"modelArena": "模型擂台",
4+
"perfCompare": "性能对比",
55
"monitorHub": "监控中心",
66
"systemConfig": "系统配置"
77
},
@@ -183,7 +183,7 @@
183183
"enterApiKeyWithoutBearer": "输入API密钥(不包含Bearer前缀)"
184184
},
185185
"resultComparison": {
186-
"title": "模型擂台",
186+
"title": "指标对比",
187187
"selectModels": "选择模型",
188188
"compare": "对比",
189189
"addModel": "添加模型",
@@ -193,7 +193,7 @@
193193
"selectTasks": "选择任务",
194194
"comparisonChart": "对比图表",
195195
"exportComparison": "导出对比",
196-
"description": "多指标模型性能对比",
196+
"description": "多维度性能对比和分析",
197197
"clearAllTasks": "清除所有选中的任务",
198198
"clearAllTasksConfirm": "确定要清除所有选中的任务吗?",
199199
"allTasksCleared": "所有任务已清除",
@@ -206,14 +206,15 @@
206206
"createdTime": "创建时间",
207207
"downloadSuccessful": "下载成功!",
208208
"downloadFailed": "下载失败:{{error}}",
209-
"modelInfo": "模型信息",
209+
"modelInfo": "任务信息",
210210
"download": "下载报告",
211-
"selectModel": "选择模型",
211+
"selectTask": "选择任务",
212212
"clearAll": "清除全部",
213-
"pleaseSelectModel": "请选择要对比的模型",
214-
"comparisonResults": "对比结果",
213+
"pleaseSelectTask": "请选择要对比的任务",
214+
"comparisonResults": "性能对比",
215+
"noMetricData": "暂无可展示的指标数据",
215216
"tasksSelected": "已选择{{count}}个任务",
216-
"compareResult": "对比结果",
217+
"compareResult": "提交",
217218
"searchTaskOrModel": "搜索任务名称或模型名称",
218219
"filterModel": "筛选模型",
219220
"noAvailableTasks": "未找到可用任务",
@@ -222,28 +223,30 @@
222223
"fetchAvailableTasksError": "获取可用任务失败",
223224
"selectAtLeast2Tasks": "请至少选择2个任务进行对比",
224225
"max5TasksAllowed": "最多只能选择5个任务进行对比",
225-
"comparisonCompleted": "结果对比完成",
226-
"compareResultFailed": "对比结果失败",
227-
"compareResultError": "对比结果失败",
226+
"comparisonCompleted": "对比完成",
227+
"compareResultFailed": "对比失败",
228+
"compareResultError": "对比失败",
228229
"generatingComparisonReport": "生成对比报告中...",
229230
"comparisonComponentsNotLoaded": "对比组件未完全加载,请稍后重试。",
230231
"unableToCaptureComparisonContent": "无法捕获对比内容。",
231232
"unableToCreateCanvasContext": "无法创建Canvas绘图上下文。",
232-
"selectModelForComparison": "选择模型",
233+
"selectModelForTask": "选择任务",
233234
"unknownError": "未知错误",
234235
"timeToFirstToken": "首Token时延 (秒)",
235236
"requestsPerSecond": "RPS (请求/秒)",
236237
"totalTokensPerSecond": "Total Tokens 吞吐量 (Tokens/秒)",
237238
"completionTokensPerSecond": "Completion Tokens 吞吐量(Tokens/秒)",
238239
"averageTotalTokensPerRequest": "平均每请求总Token数量",
239240
"averageCompletionTokensPerRequest": "平均每请求输出Token数量",
241+
"totalTime": "总耗时 (秒)",
240242
"metricDescriptions": {
241243
"rps": "每秒发送的请求数",
242244
"ttft": "首Token时延(秒)",
243245
"totalTps": "Total Tokens 吞吐量(Tokens/秒)",
244246
"completionTps": "Completion Tokens 吞吐量(Tokens/秒)",
245247
"avgTotalTpr": "平均每请求总Token数量",
246-
"avgCompletionTpr": "平均每请求输出Token数量"
248+
"avgCompletionTpr": "平均每请求输出Token数量",
249+
"totalTime": "从请求开始到输出完成所耗费的平均时间"
247250
},
248251
"concurrentUsersSuffix": "u",
249252
"chartTitles": {
@@ -252,7 +255,8 @@
252255
"totalTps": "Total Tokens 吞吐量 (Tokens/秒)",
253256
"completionTps": "Completion Tokens 吞吐量(Tokens/秒)",
254257
"avgTotalTpr": "平均每请求总Token数量",
255-
"avgCompletionTpr": "平均每请求输出Token数量"
258+
"avgCompletionTpr": "平均每请求输出Token数量",
259+
"totalTime": "总耗时 (秒)"
256260
},
257261
"aiAnalysis": "AI总结",
258262
"aiAnalysisResults": "AI分析结果",
@@ -400,8 +404,8 @@
400404
"selectJsonlFile": "选择JSONL文件",
401405
"selectDatasetFile": "选择数据集文件",
402406
"jsonlFormatDescription": "必需格式:.jsonl文件,每行包含{\"id\": \"...\", \"prompt\": \"...\"}",
403-
"datasetFileFormatDescription": "支持 JSON (ShareGPT格式) 和 JSONL 格式。ShareGPT格式: [{\"id\": \"...\", \"conversations\": [...]}],JSONL格式: 每行一个JSON对象 {\"id\": \"...\", \"prompt\": \"...\"}",
404-
"datasetImageMountWarning": "⚠️ 若数据集包含图片,请确保图片文件已挂载到容器对应目录下,详见 DATASET_GUIDE。",
407+
"datasetFileFormatDescription": "支持 JSON (ShareGPT 格式) 和 JSONL 格式\n• JSON: [{\"id\": \"...\", \"conversations\": [...]}, ...]\n• JSONL: 每行一个 JSON 对象 {\"id\": \"...\", \"prompt\": \"...\"}",
408+
"datasetImageMountWarning": "⚠️ 若上传数据集包含图片路径,请确保启动服务前图片已挂载到容器对应目录下,详见 DATASET_GUIDE。",
405409
"jsonlData": "JSONL数据",
406410
"jsonlDataTooltip": "每行必须是具有id和prompt字段的有效JSON对象。",
407411
"testDuration": "测试持续时间(秒)",

frontend/src/components/CreateJobForm.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1882,17 +1882,23 @@ const CreateJobFormContent: React.FC<CreateJobFormProps> = ({
18821882
<Text strong style={{ fontSize: 16 }}>
18831883
{t('components.createJobForm.selectDatasetFile')}
18841884
</Text>
1885-
<p
1885+
<div
18861886
style={{
18871887
marginTop: 12,
18881888
color: token.colorTextSecondary,
18891889
fontSize: 12,
1890+
display: 'flex',
1891+
flexDirection: 'column',
1892+
gap: 4,
18901893
}}
18911894
>
1892-
{t('components.createJobForm.datasetFileFormatDescription')}
1893-
<br />
1894-
{t('components.createJobForm.datasetImageMountWarning')}
1895-
</p>
1895+
<span style={{ whiteSpace: 'pre-line' }}>
1896+
{t('components.createJobForm.datasetFileFormatDescription')}
1897+
</span>
1898+
<span>
1899+
{t('components.createJobForm.datasetImageMountWarning')}
1900+
</span>
1901+
</div>
18961902
</Upload.Dragger>
18971903
</Form.Item>
18981904
);

frontend/src/components/Sidebar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const Sidebar: React.FC = () => {
3535
key: '/result-comparison',
3636
icon: <BarChartOutlined style={{ color: '#52c41a' }} />,
3737
label: (
38-
<span className='text-bold text-xl'>{t('sidebar.modelArena')}</span>
38+
<span className='text-bold text-xl'>{t('sidebar.perfCompare')}</span>
3939
),
4040
},
4141
{

0 commit comments

Comments
 (0)