@@ -2,7 +2,7 @@ class LeaderboardTable {
2
2
constructor ( ) {
3
3
this . data = null ;
4
4
this . currentSet = 'eval_set' ;
5
- this . sortColumn = 'success_rate' ;
5
+ this . sortColumn = 'partial_completion' ; // 改为默认按 partial_completion 排序
6
6
this . sortDirection = 'desc' ;
7
7
this . init ( ) ;
8
8
}
@@ -116,6 +116,7 @@ class LeaderboardTable {
116
116
sortedData . forEach ( ( model , index ) => {
117
117
const info = model . info ;
118
118
const results = model [ this . currentSet ] ;
119
+ const isHuman = info . name === 'Human' ; // 检查是否是 Human 行
119
120
120
121
let agentNameHtml ;
121
122
if ( info . url && info . url . trim ( ) !== "" ) {
@@ -128,17 +129,22 @@ class LeaderboardTable {
128
129
agentNameHtml = `${ info . name } ` ;
129
130
}
130
131
132
+ // 为 Human 行添加特殊的 class 和样式
133
+ const rowClass = isHuman ? 'model-row human-row' : 'model-row' ;
134
+ const rankDisplay = isHuman ? '<span class="human-reference-badge">Reference</span>' : `${ index + 1 } ` ;
135
+
131
136
tableHtml += `
132
- <tr class="model-row " data-rank="${ index + 1 } ">
137
+ <tr class="${ rowClass } " data-rank="${ index + 1 } ">
133
138
<td class="model-name-cell">
134
139
<div class="model-info">
135
140
${ agentNameHtml }
141
+ ${ isHuman ? ' <span class="human-indicator"><i class="fas fa-user"></i></span>' : '' }
136
142
</div>
137
143
</td>
138
144
<td class="has-text-centered">${ info . date } </td>
139
- <td class="has-text-centered metric-cell">${ this . formatMetric ( results . partial_completion , maxValues . partial_completion ) } </td>
140
- <td class="has-text-centered metric-cell">${ this . formatMetric ( results . success_rate , maxValues . success_rate ) } </td>
141
- <td class="has-text-centered metric-cell">${ this . formatMetric ( results . pass3 , maxValues . pass3 ) } </td>
145
+ <td class="has-text-centered metric-cell">${ this . formatMetric ( results . partial_completion , isHuman ? null : maxValues . partial_completion ) } </td>
146
+ <td class="has-text-centered metric-cell">${ this . formatMetric ( results . success_rate , isHuman ? null : maxValues . success_rate ) } </td>
147
+ <td class="has-text-centered metric-cell">${ this . formatMetric ( results . pass3 , isHuman ? null : maxValues . pass3 ) } </td>
142
148
<td class="has-text-centered metric-cell">${ this . formatMetric ( results . time ) } </td>
143
149
<td class="has-text-centered metric-cell">${ this . formatMetric ( results . answer_length ) } </td>
144
150
</tr>
@@ -190,6 +196,11 @@ class LeaderboardTable {
190
196
} ;
191
197
192
198
data . forEach ( model => {
199
+ // 跳过 Human 数据
200
+ if ( model . info ?. name === 'Human' ) {
201
+ return ;
202
+ }
203
+
193
204
const results = model [ this . currentSet ] ;
194
205
195
206
// Check each metric
@@ -249,9 +260,12 @@ class LeaderboardTable {
249
260
return [ ] ;
250
261
}
251
262
252
- let sortedData = [ ...this . data ] ;
263
+ // 先分离出 Human 和其他条目
264
+ const humanData = this . data . filter ( item => item . info ?. name === 'Human' ) ;
265
+ const otherData = this . data . filter ( item => item . info ?. name !== 'Human' ) ;
253
266
254
- return sortedData . sort ( ( a , b ) => {
267
+ // 对非 Human 条目进行排序
268
+ const sortedOtherData = otherData . sort ( ( a , b ) => {
255
269
let aValue , bValue ;
256
270
257
271
if ( this . sortColumn === 'date' ) {
@@ -278,6 +292,9 @@ class LeaderboardTable {
278
292
return aValue > bValue ? - 1 : aValue < bValue ? 1 : 0 ;
279
293
}
280
294
} ) ;
295
+
296
+ // Human 总是在最前面
297
+ return [ ...humanData , ...sortedOtherData ] ;
281
298
}
282
299
283
300
setupSorting ( ) {
0 commit comments