openfree commited on
Commit
1e04b1b
ยท
verified ยท
1 Parent(s): 57be21f

Create index.html

Browse files
Files changed (1) hide show
  1. index.html +784 -19
index.html CHANGED
@@ -1,19 +1,784 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>LLM Creativity Battle Arena</title>
7
+ <style>
8
+ * {
9
+ margin: 0;
10
+ padding: 0;
11
+ box-sizing: border-box;
12
+ }
13
+
14
+ body {
15
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
16
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
17
+ min-height: 100vh;
18
+ padding: 20px;
19
+ }
20
+
21
+ .container {
22
+ max-width: 1400px;
23
+ margin: 0 auto;
24
+ }
25
+
26
+ .header {
27
+ background: white;
28
+ border-radius: 20px;
29
+ padding: 30px;
30
+ margin-bottom: 30px;
31
+ box-shadow: 0 10px 30px rgba(0,0,0,0.1);
32
+ text-align: center;
33
+ }
34
+
35
+ .header h1 {
36
+ color: #333;
37
+ font-size: 2.5em;
38
+ margin-bottom: 10px;
39
+ }
40
+
41
+ .header p {
42
+ color: #666;
43
+ font-size: 1.1em;
44
+ }
45
+
46
+ .main-content {
47
+ display: grid;
48
+ grid-template-columns: 1fr 1fr;
49
+ gap: 30px;
50
+ margin-bottom: 30px;
51
+ }
52
+
53
+ .battle-arena {
54
+ grid-column: 1 / -1;
55
+ background: white;
56
+ border-radius: 20px;
57
+ padding: 30px;
58
+ box-shadow: 0 10px 30px rgba(0,0,0,0.1);
59
+ }
60
+
61
+ .prompt-section {
62
+ background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
63
+ border-radius: 15px;
64
+ padding: 25px;
65
+ margin-bottom: 30px;
66
+ color: white;
67
+ }
68
+
69
+ .prompt-category {
70
+ display: inline-block;
71
+ background: rgba(255,255,255,0.3);
72
+ padding: 5px 15px;
73
+ border-radius: 20px;
74
+ margin-bottom: 15px;
75
+ font-size: 0.9em;
76
+ }
77
+
78
+ .prompt-text {
79
+ font-size: 1.3em;
80
+ font-weight: bold;
81
+ line-height: 1.5;
82
+ }
83
+
84
+ .responses-container {
85
+ display: grid;
86
+ grid-template-columns: 1fr 1fr;
87
+ gap: 30px;
88
+ margin-bottom: 30px;
89
+ }
90
+
91
+ .response-box {
92
+ background: #f8f9fa;
93
+ border-radius: 15px;
94
+ padding: 25px;
95
+ position: relative;
96
+ min-height: 300px;
97
+ transition: all 0.3s ease;
98
+ }
99
+
100
+ .response-box:hover {
101
+ transform: translateY(-5px);
102
+ box-shadow: 0 15px 40px rgba(0,0,0,0.1);
103
+ }
104
+
105
+ .response-label {
106
+ position: absolute;
107
+ top: -15px;
108
+ left: 20px;
109
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
110
+ color: white;
111
+ padding: 8px 20px;
112
+ border-radius: 20px;
113
+ font-weight: bold;
114
+ font-size: 1.2em;
115
+ }
116
+
117
+ .response-content {
118
+ margin-top: 20px;
119
+ line-height: 1.6;
120
+ color: #333;
121
+ max-height: 400px;
122
+ overflow-y: auto;
123
+ }
124
+
125
+ .model-reveal {
126
+ display: none;
127
+ margin-top: 20px;
128
+ padding: 15px;
129
+ background: linear-gradient(135deg, #e0f7fa 0%, #b2ebf2 100%);
130
+ border-radius: 10px;
131
+ text-align: center;
132
+ }
133
+
134
+ .model-reveal.show {
135
+ display: block;
136
+ animation: fadeIn 0.5s ease;
137
+ }
138
+
139
+ .model-name {
140
+ font-size: 1.3em;
141
+ font-weight: bold;
142
+ color: #00796b;
143
+ }
144
+
145
+ .vote-section {
146
+ text-align: center;
147
+ margin: 30px 0;
148
+ }
149
+
150
+ .vote-buttons {
151
+ display: flex;
152
+ justify-content: center;
153
+ gap: 30px;
154
+ margin-bottom: 20px;
155
+ }
156
+
157
+ .vote-btn {
158
+ padding: 15px 50px;
159
+ font-size: 1.2em;
160
+ font-weight: bold;
161
+ border: none;
162
+ border-radius: 30px;
163
+ cursor: pointer;
164
+ transition: all 0.3s ease;
165
+ color: white;
166
+ }
167
+
168
+ .vote-btn-a {
169
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
170
+ }
171
+
172
+ .vote-btn-b {
173
+ background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
174
+ }
175
+
176
+ .vote-btn:hover {
177
+ transform: scale(1.05);
178
+ box-shadow: 0 10px 25px rgba(0,0,0,0.2);
179
+ }
180
+
181
+ .vote-btn:disabled {
182
+ opacity: 0.5;
183
+ cursor: not-allowed;
184
+ }
185
+
186
+ .leaderboard {
187
+ background: white;
188
+ border-radius: 20px;
189
+ padding: 30px;
190
+ box-shadow: 0 10px 30px rgba(0,0,0,0.1);
191
+ }
192
+
193
+ .leaderboard h2 {
194
+ color: #333;
195
+ margin-bottom: 25px;
196
+ font-size: 2em;
197
+ text-align: center;
198
+ }
199
+
200
+ .leaderboard-table {
201
+ width: 100%;
202
+ border-collapse: collapse;
203
+ }
204
+
205
+ .leaderboard-table th {
206
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
207
+ color: white;
208
+ padding: 15px 10px;
209
+ text-align: left;
210
+ font-size: 0.9em;
211
+ }
212
+
213
+ .leaderboard-table td {
214
+ padding: 12px 10px;
215
+ border-bottom: 1px solid #e0e0e0;
216
+ font-size: 0.95em;
217
+ }
218
+
219
+ .leaderboard-table tr:hover {
220
+ background: #f5f5f5;
221
+ }
222
+
223
+ .rank-medal {
224
+ display: inline-block;
225
+ width: 30px;
226
+ text-align: center;
227
+ }
228
+
229
+ .rank-1 { color: #ffd700; font-size: 1.5em; }
230
+ .rank-2 { color: #c0c0c0; font-size: 1.4em; }
231
+ .rank-3 { color: #cd7f32; font-size: 1.3em; }
232
+
233
+ .score-cell {
234
+ font-weight: bold;
235
+ text-align: center;
236
+ }
237
+
238
+ .score-high { color: #4caf50; }
239
+ .score-medium { color: #ff9800; }
240
+ .score-low { color: #f44336; }
241
+
242
+ .category-tabs {
243
+ display: flex;
244
+ gap: 10px;
245
+ margin-bottom: 25px;
246
+ flex-wrap: wrap;
247
+ }
248
+
249
+ .category-tab {
250
+ padding: 10px 20px;
251
+ background: #f0f0f0;
252
+ border: none;
253
+ border-radius: 20px;
254
+ cursor: pointer;
255
+ transition: all 0.3s ease;
256
+ font-weight: 500;
257
+ }
258
+
259
+ .category-tab.active {
260
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
261
+ color: white;
262
+ }
263
+
264
+ .new-battle-btn {
265
+ display: block;
266
+ margin: 30px auto;
267
+ padding: 15px 40px;
268
+ font-size: 1.1em;
269
+ font-weight: bold;
270
+ background: linear-gradient(135deg, #4caf50 0%, #8bc34a 100%);
271
+ color: white;
272
+ border: none;
273
+ border-radius: 30px;
274
+ cursor: pointer;
275
+ transition: all 0.3s ease;
276
+ }
277
+
278
+ .new-battle-btn:hover {
279
+ transform: scale(1.05);
280
+ box-shadow: 0 10px 25px rgba(76,175,80,0.3);
281
+ }
282
+
283
+ .stats-grid {
284
+ display: grid;
285
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
286
+ gap: 20px;
287
+ margin-top: 30px;
288
+ }
289
+
290
+ .stat-card {
291
+ background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
292
+ border-radius: 15px;
293
+ padding: 20px;
294
+ text-align: center;
295
+ }
296
+
297
+ .stat-value {
298
+ font-size: 2em;
299
+ font-weight: bold;
300
+ color: #667eea;
301
+ }
302
+
303
+ .stat-label {
304
+ color: #666;
305
+ margin-top: 5px;
306
+ }
307
+
308
+ @keyframes fadeIn {
309
+ from { opacity: 0; transform: translateY(10px); }
310
+ to { opacity: 1; transform: translateY(0); }
311
+ }
312
+
313
+ .loading {
314
+ display: inline-block;
315
+ width: 20px;
316
+ height: 20px;
317
+ border: 3px solid rgba(0,0,0,.1);
318
+ border-radius: 50%;
319
+ border-top-color: #667eea;
320
+ animation: spin 1s ease-in-out infinite;
321
+ }
322
+
323
+ @keyframes spin {
324
+ to { transform: rotate(360deg); }
325
+ }
326
+
327
+ .elo-badge {
328
+ display: inline-block;
329
+ background: #ff6b6b;
330
+ color: white;
331
+ padding: 3px 8px;
332
+ border-radius: 10px;
333
+ font-size: 0.85em;
334
+ margin-left: 5px;
335
+ }
336
+
337
+ .win-rate {
338
+ display: inline-block;
339
+ padding: 3px 8px;
340
+ border-radius: 10px;
341
+ font-size: 0.85em;
342
+ }
343
+
344
+ .win-rate-high { background: #c8e6c9; color: #2e7d32; }
345
+ .win-rate-medium { background: #fff3e0; color: #e65100; }
346
+ .win-rate-low { background: #ffebee; color: #c62828; }
347
+ </style>
348
+ </head>
349
+ <body>
350
+ <div class="container">
351
+ <div class="header">
352
+ <h1>๐ŸŽจ LLM ์ฐฝ์˜์„ฑ ๋ฐฐํ‹€ ์•„๋ ˆ๋‚˜</h1>
353
+ <p>AI๋“ค์˜ ์ฐฝ์˜์  ๋Šฅ๋ ฅ์„ ๊ฒจ๋ฃจ๋Š” ์‹ค์‹œ๊ฐ„ ๋Œ€๊ฒฐ ์‹œ์Šคํ…œ</p>
354
+ </div>
355
+
356
+ <div class="battle-arena">
357
+ <div class="prompt-section">
358
+ <div class="prompt-category" id="promptCategory">๐Ÿ’ก ํ˜์‹ /๋ฐœ๋ช…</div>
359
+ <div class="prompt-text" id="promptText">
360
+ 2050๋…„ ์ธ๋ฅ˜๊ฐ€ ํ™”์„ฑ์— ์ •์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™”์„ฑ์—์„œ ๊ฐ€์žฅ ๋จผ์ € ํ•„์š”ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค 3๊ฐ€์ง€๋ฅผ ์ œ์•ˆํ•˜๊ณ , ๊ฐ๊ฐ์˜ ์ˆ˜์ต ๋ชจ๋ธ์„ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
361
+ </div>
362
+ </div>
363
+
364
+ <div class="responses-container">
365
+ <div class="response-box">
366
+ <div class="response-label">๋ชจ๋ธ A</div>
367
+ <div class="response-content" id="responseA">
368
+ <div class="loading"></div> ์‘๋‹ต ์ƒ์„ฑ ์ค‘...
369
+ </div>
370
+ <div class="model-reveal" id="modelA">
371
+ <div class="model-name">GPT-4</div>
372
+ </div>
373
+ </div>
374
+
375
+ <div class="response-box">
376
+ <div class="response-label">๋ชจ๋ธ B</div>
377
+ <div class="response-content" id="responseB">
378
+ <div class="loading"></div> ์‘๋‹ต ์ƒ์„ฑ ์ค‘...
379
+ </div>
380
+ <div class="model-reveal" id="modelB">
381
+ <div class="model-name">Claude 3</div>
382
+ </div>
383
+ </div>
384
+ </div>
385
+
386
+ <div class="vote-section">
387
+ <div class="vote-buttons">
388
+ <button class="vote-btn vote-btn-a" onclick="vote('A')">๐Ÿ…ฐ๏ธ ๋ชจ๋ธ A ์„ ํƒ</button>
389
+ <button class="vote-btn vote-btn-b" onclick="vote('B')">๐Ÿ…ฑ๏ธ ๋ชจ๋ธ B ์„ ํƒ</button>
390
+ </div>
391
+ <button class="new-battle-btn" onclick="newBattle()">๐Ÿ”„ ์ƒˆ๋กœ์šด ๋Œ€๊ฒฐ ์‹œ์ž‘</button>
392
+ </div>
393
+ </div>
394
+
395
+ <div class="leaderboard">
396
+ <h2>๐Ÿ† ์ฐฝ์˜์„ฑ ๋ฆฌ๋”๋ณด๋“œ</h2>
397
+
398
+ <div class="category-tabs">
399
+ <button class="category-tab active" onclick="filterLeaderboard('overall')">์ข…ํ•ฉ</button>
400
+ <button class="category-tab" onclick="filterLeaderboard('storytelling')">์Šคํ† ๋ฆฌํ…”๋ง</button>
401
+ <button class="category-tab" onclick="filterLeaderboard('innovation')">๋ฐœ๋ช…/ํ˜์‹ </button>
402
+ <button class="category-tab" onclick="filterLeaderboard('business')">๋น„์ฆˆ๋‹ˆ์Šค</button>
403
+ <button class="category-tab" onclick="filterLeaderboard('artistic')">์˜ˆ์ˆ ์„ฑ</button>
404
+ <button class="category-tab" onclick="filterLeaderboard('problem')">๋ฌธ์ œํ•ด๊ฒฐ</button>
405
+ </div>
406
+
407
+ <table class="leaderboard-table">
408
+ <thead>
409
+ <tr>
410
+ <th>์ˆœ์œ„</th>
411
+ <th>LLM ๋ชจ๋ธ</th>
412
+ <th>์ข…ํ•ฉ์ ์ˆ˜</th>
413
+ <th>์Šคํ† ๋ฆฌ</th>
414
+ <th>ํ˜์‹ </th>
415
+ <th>๋น„์ฆˆ๋‹ˆ์Šค</th>
416
+ <th>์˜ˆ์ˆ </th>
417
+ <th>๋ฌธ์ œํ•ด๊ฒฐ</th>
418
+ <th>๋Œ€๊ฒฐ์ˆ˜</th>
419
+ <th>์Šน๋ฅ </th>
420
+ <th>ELO</th>
421
+ </tr>
422
+ </thead>
423
+ <tbody id="leaderboardBody">
424
+ <!-- ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋จ -->
425
+ </tbody>
426
+ </table>
427
+
428
+ <div class="stats-grid">
429
+ <div class="stat-card">
430
+ <div class="stat-value">1,234</div>
431
+ <div class="stat-label">์ด ๋Œ€๊ฒฐ ์ˆ˜</div>
432
+ </div>
433
+ <div class="stat-card">
434
+ <div class="stat-value">56</div>
435
+ <div class="stat-label">์ฐธ์—ฌ ๋ชจ๋ธ ์ˆ˜</div>
436
+ </div>
437
+ <div class="stat-card">
438
+ <div class="stat-value">8.7</div>
439
+ <div class="stat-label">ํ‰๊ท  ์ฐฝ์˜์„ฑ ์ ์ˆ˜</div>
440
+ </div>
441
+ <div class="stat-card">
442
+ <div class="stat-value">92%</div>
443
+ <div class="stat-label">์‚ฌ์šฉ์ž ๋งŒ์กฑ๋„</div>
444
+ </div>
445
+ </div>
446
+ </div>
447
+ </div>
448
+
449
+ <script>
450
+ // ํ”„๋กฌํ”„ํŠธ ์นดํ…Œ๊ณ ๋ฆฌ ๋ฐ ์˜ˆ์‹œ
451
+ const PROMPT_CATEGORIES = {
452
+ storytelling: {
453
+ name: "๐Ÿ“š ์Šคํ† ๋ฆฌํ…”๋ง",
454
+ prompts: [
455
+ "2050๋…„ ์„œ์šธ์˜ ํ•˜๋ฃจ๋ฅผ ๋ฌ˜์‚ฌํ•ด์ฃผ์„ธ์š”",
456
+ "๊ฐœ๋ฏธ๊ฐ€ ์ฃผ์ธ๊ณต์ธ SF ์†Œ์„ค์˜ ์ฒซ ์žฅ์„ ์จ์ฃผ์„ธ์š”",
457
+ "๋ฐฑ์„ค๊ณต์ฃผ๋ฅผ ์‚ฌ์ด๋ฒ„ํŽ‘ํฌ ๋ฒ„์ „์œผ๋กœ ์žฌํ•ด์„ํ•ด์ฃผ์„ธ์š”"
458
+ ]
459
+ },
460
+ innovation: {
461
+ name: "๐Ÿ’ก ๋ฐœ๋ช…/ํ˜์‹ ",
462
+ prompts: [
463
+ "ํ”Œ๋ผ์Šคํ‹ฑ ์“ฐ๋ ˆ๊ธฐ๋ฅผ ํ•ด๊ฒฐํ•  ํ˜์‹ ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•˜์„ธ์š”",
464
+ "๋ฏธ๋ž˜์˜ ๊ตํ†ต์ˆ˜๋‹จ์„ ๋””์ž์ธํ•ด์ฃผ์„ธ์š”",
465
+ "๋…ธ์ธ๋“ค์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด SNS ์„œ๋น„์Šค๋ฅผ ๊ธฐํšํ•˜์„ธ์š”"
466
+ ]
467
+ },
468
+ business: {
469
+ name: "๐Ÿ’ผ ๋น„์ฆˆ๋‹ˆ์Šค",
470
+ prompts: [
471
+ "ํ™”์„ฑ์— ์ฒซ ๋ฒˆ์งธ๋กœ ์„ธ์šธ ๋น„์ฆˆ๋‹ˆ์Šค๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?",
472
+ "Z์„ธ๋Œ€๋ฅผ ์œ„ํ•œ ์ƒˆ๋กœ์šด ๊ธˆ์œต ์„œ๋น„์Šค๋ฅผ ์ œ์•ˆํ•˜์„ธ์š”",
473
+ "์ „ํ†ต ์‹œ์žฅ์„ ํ™œ์„ฑํ™”ํ•  ๋””์ง€ํ„ธ ์ „๋žต์„ ์ˆ˜๋ฆฝํ•˜์„ธ์š”"
474
+ ]
475
+ },
476
+ artistic: {
477
+ name: "๐ŸŽญ ์˜ˆ์ˆ ์  ์ฐฝ์˜์„ฑ",
478
+ prompts: [
479
+ "AI์™€ ์ธ๊ฐ„์˜ ์‚ฌ๋ž‘์„ ์ฃผ์ œ๋กœ ํ•œ ์‹œ๋ฅผ ์จ์ฃผ์„ธ์š”",
480
+ "์šฐ์ฃผ๋ฅผ ๋ฐฐ๊ฒฝ์œผ๋กœ ํ•œ ๋ฎค์ง€์ปฌ์˜ ์ค„๊ฑฐ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”",
481
+ "์‹œ๊ฐ„ ์—ฌํ–‰ ๊ฒŒ์ž„์˜ ์Šคํ† ๋ฆฌ๋ผ์ธ์„ ์ž‘์„ฑํ•˜์„ธ์š”"
482
+ ]
483
+ },
484
+ problem: {
485
+ name: "๐Ÿงฉ ๋ฌธ์ œ ํ•ด๊ฒฐ",
486
+ prompts: [
487
+ "๋ฌด์ธ๋„์—์„œ ์Šค๋งˆํŠธํฐ ํ•˜๋‚˜๋กœ ์ƒ์กดํ•˜๋Š” ๋ฐฉ๋ฒ•",
488
+ "์™ธ๊ณ„์ธ๊ณผ์˜ ์ฒซ ๋งŒ๋‚จ์„ ์ค€๋น„ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ",
489
+ "100๋…„ ํ›„ ์ธ๋ฅ˜์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•"
490
+ ]
491
+ }
492
+ };
493
+
494
+ // ์ƒ˜ํ”Œ LLM ๋ชจ๋ธ ๋ชฉ๋ก
495
+ const LLM_MODELS = [
496
+ "GPT-4", "Claude 3", "Gemini Pro", "LLaMA 3", "Mistral Large",
497
+ "PaLM 2", "Qwen 2", "Yi-34B", "Falcon 180B", "MPT-30B"
498
+ ];
499
+
500
+ // ์ƒ˜ํ”Œ ๋ฆฌ๋”๋ณด๋“œ ๋ฐ์ดํ„ฐ
501
+ const leaderboardData = [
502
+ {
503
+ model: "GPT-4",
504
+ overall: 9.2,
505
+ storytelling: 9.5,
506
+ innovation: 9.0,
507
+ business: 9.3,
508
+ artistic: 9.1,
509
+ problem: 9.0,
510
+ battles: 523,
511
+ winRate: 78.5,
512
+ elo: 2150
513
+ },
514
+ {
515
+ model: "Claude 3",
516
+ overall: 9.0,
517
+ storytelling: 9.2,
518
+ innovation: 8.8,
519
+ business: 9.1,
520
+ artistic: 9.0,
521
+ problem: 8.9,
522
+ battles: 487,
523
+ winRate: 75.2,
524
+ elo: 2120
525
+ },
526
+ {
527
+ model: "Gemini Pro",
528
+ overall: 8.8,
529
+ storytelling: 8.7,
530
+ innovation: 8.9,
531
+ business: 8.8,
532
+ artistic: 8.6,
533
+ problem: 9.0,
534
+ battles: 412,
535
+ winRate: 71.8,
536
+ elo: 2080
537
+ },
538
+ {
539
+ model: "LLaMA 3",
540
+ overall: 8.5,
541
+ storytelling: 8.4,
542
+ innovation: 8.6,
543
+ business: 8.3,
544
+ artistic: 8.5,
545
+ problem: 8.7,
546
+ battles: 356,
547
+ winRate: 68.4,
548
+ elo: 2040
549
+ },
550
+ {
551
+ model: "Mistral Large",
552
+ overall: 8.3,
553
+ storytelling: 8.2,
554
+ innovation: 8.4,
555
+ business: 8.1,
556
+ artistic: 8.3,
557
+ problem: 8.5,
558
+ battles: 298,
559
+ winRate: 64.7,
560
+ elo: 2000
561
+ }
562
+ ];
563
+
564
+ let currentModels = [];
565
+ let hasVoted = false;
566
+
567
+ // ๋ฆฌ๋”๋ณด๋“œ ๋ Œ๋”๋ง
568
+ function renderLeaderboard(category = 'overall') {
569
+ const tbody = document.getElementById('leaderboardBody');
570
+ tbody.innerHTML = '';
571
+
572
+ // ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ •๋ ฌ
573
+ let sortedData = [...leaderboardData];
574
+ if (category !== 'overall') {
575
+ sortedData.sort((a, b) => b[category] - a[category]);
576
+ } else {
577
+ sortedData.sort((a, b) => b.overall - a.overall);
578
+ }
579
+
580
+ sortedData.forEach((item, index) => {
581
+ const row = tbody.insertRow();
582
+
583
+ // ์ˆœ์œ„
584
+ const rankCell = row.insertCell();
585
+ if (index === 0) rankCell.innerHTML = '<span class="rank-medal rank-1">๐Ÿฅ‡</span>';
586
+ else if (index === 1) rankCell.innerHTML = '<span class="rank-medal rank-2">๐Ÿฅˆ</span>';
587
+ else if (index === 2) rankCell.innerHTML = '<span class="rank-medal rank-3">๐Ÿฅ‰</span>';
588
+ else rankCell.textContent = index + 1;
589
+
590
+ // ๋ชจ๋ธ๋ช…
591
+ row.insertCell().textContent = item.model;
592
+
593
+ // ์ ์ˆ˜๋“ค
594
+ const scoreClasses = (score) => {
595
+ if (score >= 9) return 'score-high';
596
+ if (score >= 8) return 'score-medium';
597
+ return 'score-low';
598
+ };
599
+
600
+ const overallCell = row.insertCell();
601
+ overallCell.className = 'score-cell ' + scoreClasses(item.overall);
602
+ overallCell.textContent = item.overall.toFixed(1);
603
+
604
+ const storyCell = row.insertCell();
605
+ storyCell.className = 'score-cell ' + scoreClasses(item.storytelling);
606
+ storyCell.textContent = item.storytelling.toFixed(1);
607
+
608
+ const innovationCell = row.insertCell();
609
+ innovationCell.className = 'score-cell ' + scoreClasses(item.innovation);
610
+ innovationCell.textContent = item.innovation.toFixed(1);
611
+
612
+ const businessCell = row.insertCell();
613
+ businessCell.className = 'score-cell ' + scoreClasses(item.business);
614
+ businessCell.textContent = item.business.toFixed(1);
615
+
616
+ const artisticCell = row.insertCell();
617
+ artisticCell.className = 'score-cell ' + scoreClasses(item.artistic);
618
+ artisticCell.textContent = item.artistic.toFixed(1);
619
+
620
+ const problemCell = row.insertCell();
621
+ problemCell.className = 'score-cell ' + scoreClasses(item.problem);
622
+ problemCell.textContent = item.problem.toFixed(1);
623
+
624
+ // ๋Œ€๊ฒฐ ์ˆ˜
625
+ row.insertCell().textContent = item.battles;
626
+
627
+ // ์Šน๋ฅ 
628
+ const winRateCell = row.insertCell();
629
+ const winRateClass = item.winRate >= 70 ? 'win-rate-high' :
630
+ item.winRate >= 50 ? 'win-rate-medium' : 'win-rate-low';
631
+ winRateCell.innerHTML = `<span class="win-rate ${winRateClass}">${item.winRate}%</span>`;
632
+
633
+ // ELO
634
+ const eloCell = row.insertCell();
635
+ eloCell.innerHTML = `${item.elo}<span class="elo-badge">ELO</span>`;
636
+ });
637
+ }
638
+
639
+ // ์นดํ…Œ๊ณ ๋ฆฌ ํ•„ํ„ฐ
640
+ function filterLeaderboard(category) {
641
+ // ํƒญ ํ™œ์„ฑํ™” ์ƒํƒœ ๋ณ€๊ฒฝ
642
+ document.querySelectorAll('.category-tab').forEach(tab => {
643
+ tab.classList.remove('active');
644
+ });
645
+ event.target.classList.add('active');
646
+
647
+ // ๋ฆฌ๋”๋ณด๋“œ ์žฌ๋ Œ๋”๋ง
648
+ renderLeaderboard(category);
649
+ }
650
+
651
+ // ์ƒˆ๋กœ์šด ๋ฐฐํ‹€ ์‹œ์ž‘
652
+ function newBattle() {
653
+ hasVoted = false;
654
+
655
+ // ๋ฒ„ํŠผ ํ™œ์„ฑํ™”
656
+ document.querySelectorAll('.vote-btn').forEach(btn => {
657
+ btn.disabled = false;
658
+ });
659
+
660
+ // ๋ชจ๋ธ ์ •๋ณด ์ˆจ๊ธฐ๊ธฐ
661
+ document.querySelectorAll('.model-reveal').forEach(el => {
662
+ el.classList.remove('show');
663
+ });
664
+
665
+ // ๋žœ๋ค ์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ
666
+ const categories = Object.keys(PROMPT_CATEGORIES);
667
+ const randomCategory = categories[Math.floor(Math.random() * categories.length)];
668
+ const category = PROMPT_CATEGORIES[randomCategory];
669
+
670
+ // ๋žœ๋ค ํ”„๋กฌํ”„ํŠธ ์„ ํƒ
671
+ const randomPrompt = category.prompts[Math.floor(Math.random() * category.prompts.length)];
672
+
673
+ // ํ”„๋กฌํ”„ํŠธ ํ‘œ์‹œ
674
+ document.getElementById('promptCategory').textContent = category.name;
675
+ document.getElementById('promptText').textContent = randomPrompt;
676
+
677
+ // ๋žœ๋ค์œผ๋กœ 2๊ฐœ ๋ชจ๋ธ ์„ ํƒ
678
+ const shuffled = [...LLM_MODELS].sort(() => 0.5 - Math.random());
679
+ currentModels = shuffled.slice(0, 2);
680
+
681
+ // ์‘๋‹ต ๋กœ๋”ฉ ์‹œ๋ฎฌ๋ ˆ์ด์…˜
682
+ document.getElementById('responseA').innerHTML = '<div class="loading"></div> ์‘๋‹ต ์ƒ์„ฑ ์ค‘...';
683
+ document.getElementById('responseB').innerHTML = '<div class="loading"></div> ์‘๋‹ต ์ƒ์„ฑ ์ค‘...';
684
+
685
+ // ์ƒ˜ํ”Œ ์‘๋‹ต ์ƒ์„ฑ (์‹ค์ œ๋กœ๋Š” API ํ˜ธ์ถœ)
686
+ setTimeout(() => {
687
+ document.getElementById('responseA').innerHTML = generateSampleResponse(randomCategory, 'A');
688
+ document.getElementById('responseB').innerHTML = generateSampleResponse(randomCategory, 'B');
689
+ }, 2000);
690
+
691
+ // ๋ชจ๋ธ๋ช… ์—…๋ฐ์ดํŠธ (์ˆจ๊น€ ์ƒํƒœ)
692
+ document.querySelector('#modelA .model-name').textContent = currentModels[0];
693
+ document.querySelector('#modelB .model-name').textContent = currentModels[1];
694
+ }
695
+
696
+ // ์ƒ˜ํ”Œ ์‘๋‹ต ์ƒ์„ฑ
697
+ function generateSampleResponse(category, model) {
698
+ const responses = {
699
+ innovation: {
700
+ A: `ํ™”์„ฑ ์ •์ฐฉ ๋น„์ฆˆ๋‹ˆ์Šค TOP 3:
701
+
702
+ 1. **ํ™”์„ฑ ์‚ฐ์†Œ ๋ฑ…ํฌ (Mars O2 Bank)**
703
+ - ์„œ๋น„์Šค: ๊ฐœ์ธ/๊ธฐ์—…์šฉ ์‚ฐ์†Œ ์ƒ์‚ฐ, ์ €์žฅ, ๋ฐฐ๊ธ‰
704
+ - ์ˆ˜์ต๋ชจ๋ธ: ์›” ๊ตฌ๋…์ œ + ํ”„๋ฆฌ๋ฏธ์—„ ์ˆœ๋„ ์˜ต์…˜
705
+ - ์˜ˆ์ƒ ์ˆ˜์ต: ์—ฐ 500์–ต ํ™”์„ฑ๋‹ฌ๋Ÿฌ
706
+
707
+ 2. **๋ ˆ๊ณจ๋ฆฌ์Šค 3D ํ”„๋ฆฐํŒ… ๊ฑด์„ค**
708
+ - ์„œ๋น„์Šค: ํ™”์„ฑ ํ† ์–‘์œผ๋กœ ๊ฑด๋ฌผ/์ธํ”„๋ผ ๊ฑด์„ค
709
+ - ์ˆ˜์ต๋ชจ๋ธ: ๊ฑด์„ค ํ”„๋กœ์ ํŠธ ๊ณ„์•ฝ + ์žฅ๋น„ ์ž„๋Œ€
710
+ - ์˜ˆ์ƒ ์ˆ˜์ต: ์—ฐ 300์–ต ํ™”์„ฑ๋‹ฌ๋Ÿฌ
711
+
712
+ 3. **์ง€๊ตฌ-ํ™”์„ฑ ํ–ฅ์ˆ˜ ๋ฐฐ๋‹ฌ ์„œ๋น„์Šค**
713
+ - ์„œ๋น„์Šค: ์ง€๊ตฌ ์Œ์‹, ๋ฌผํ’ˆ์˜ ์ •๊ธฐ ๋ฐฐ์†ก
714
+ - ์ˆ˜์ต๋ชจ๋ธ: ๋ฐฐ์†ก๋ฃŒ + ํ”„๋ฆฌ๋ฏธ์—„ ํšŒ์›์ œ
715
+ - ์˜ˆ์ƒ ์ˆ˜์ต: ์—ฐ 200์–ต ํ™”์„ฑ๋‹ฌ๋Ÿฌ`,
716
+ B: `ํ™”์„ฑ ํ•„์ˆ˜ ๋น„์ฆˆ๋‹ˆ์Šค ์ œ์•ˆ:
717
+
718
+ 1. **ํƒœ์–‘๊ด‘ ์—๋„ˆ์ง€ ๊ทธ๋ฆฌ๋“œ**
719
+ - ๊ฑฐ๋Œ€ ํƒœ์–‘๊ด‘ ํŒจ๋„ ๋†์žฅ ์šด์˜
720
+ - ์—๋„ˆ์ง€ ํ† ํฐ ๋ธ”๋ก์ฒด์ธ ๊ฑฐ๋ž˜ ์‹œ์Šคํ…œ
721
+ - B2B/B2C ์ „๋ ฅ ๊ณต๊ธ‰ ๊ณ„์•ฝ
722
+
723
+ 2. **ํ™”์„ฑ ๋†์—… ๋” (AgroDome)**
724
+ - ์ˆ˜์ง๋†์žฅ + ์œ ์ „์ž ํŽธ์ง‘ ์ž‘๋ฌผ
725
+ - ์‹๋Ÿ‰ ์ž๊ธ‰์ž์กฑ ์‹œ์Šคํ…œ ๊ตฌ์ถ•
726
+ - ๋†์‚ฐ๋ฌผ ์ง๊ฑฐ๋ž˜ + ์ข…์ž ํŒ๋งค
727
+
728
+ 3. **์‹ฌ๋ฆฌ ๊ฑด๊ฐ• VR ์„ผํ„ฐ**
729
+ - ์ง€๊ตฌ ํ–ฅ์ˆ˜๋ณ‘ ์น˜๋ฃŒ ํ”„๋กœ๊ทธ๋žจ
730
+ - ๊ฐ€์ƒํ˜„์‹ค ์ง€๊ตฌ ์ฒดํ—˜๊ด€
731
+ - ๊ตฌ๋…์ œ + ๋งž์ถคํ˜• ์น˜๋ฃŒ ์„ธ์…˜`
732
+ },
733
+ storytelling: {
734
+ A: `2050๋…„ ์„œ์šธ, ์˜ค์ „ 7์‹œ.
735
+
736
+ ํ•˜๋Š˜์„ ๊ฐ€๋กœ์ง€๋ฅด๋Š” ์—์–ดํƒ์‹œ๋“ค์ด ์•„์นจ ์ถœ๊ทผ๊ธธ์„ ์•Œ๋ฆฐ๋‹ค. ํ•œ๊ฐ•์€ ์ด์ œ ๊ฑฐ๋Œ€ํ•œ ์ˆ˜์ƒ ํƒœ์–‘๊ด‘ ํŒจ๋„๋กœ ๋ฎ์—ฌ์žˆ๊ณ , ๊ทธ ์œ„๋ฅผ ๋‹ฌ๋ฆฌ๋Š” ํ•˜์ดํผ๋ฃจํ”„๊ฐ€ 3๋ถ„๋งˆ๋‹ค ์ง€๋‚˜๊ฐ„๋‹ค.
737
+
738
+ ๊น€๋ฏผ์ค€์€ ๋‡Œ-์ปดํ“จํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์˜ค๋Š˜์˜ ์ผ์ •์„ ํ™•์ธํ•œ๋‹ค. ํ™€๋กœ๊ทธ๋žจ ํšŒ์˜๊ฐ€ 2๊ฑด, ๋ฉ”ํƒ€๋ฒ„์Šค ํ”„๋ ˆ์  ํ…Œ์ด์…˜์ด 1๊ฑด. ์ฐฝ ๋ฐ–์œผ๋กœ ๋ณด์ด๋Š” ๋‚จ์‚ฐํƒ€์›Œ๋Š” ์ด์ œ ๊ฑฐ๋Œ€ํ•œ ๊ณต๊ธฐ์ •ํ™” ํƒ€์›Œ๋กœ ๋ณ€๋ชจํ–ˆ๋‹ค...`,
739
+ B: `์„œ์šธ, 2050๋…„.
740
+
741
+ ๋„์‹œ๋Š” ์ž ๋“ค์ง€ ์•Š๋Š”๋‹ค. ๊ฑด๋ฌผ๋“ค์€ ์Šค์Šค๋กœ ํ˜ธํกํ•˜๋ฉฐ ๋Œ€๊ธฐ๋ฅผ ์ •ํ™”ํ•œ๋‹ค. ๊ฑฐ๋ฆฌ์˜ ๋‚˜๋ฌด๋“ค์€ ์œ ์ „์ž ์กฐ์ž‘์œผ๋กœ ๋ฐค์—๋„ ์‚ฐ์†Œ๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.
742
+
743
+ ์ƒˆ๋ฒฝ 4์‹œ, AI ๊ด€์ œ์„ผํ„ฐ์—์„œ ๋„์‹œ์˜ ํ•˜๋ฃจ๊ฐ€ ์‹œ์ž‘๋œ๋‹ค. 3์ฒœ๋งŒ ์‹œ๋ฏผ์˜ ์›€์ง์ž„์„ ์˜ˆ์ธกํ•˜๊ณ , ๊ตํ†ตํ๋ฆ„์„ ์ตœ์ ํ™”ํ•œ๋‹ค. ์ง€ํ•˜ 50๋ฏธํ„ฐ ์•„๋ž˜์—์„  ์ž์œจ์ฃผํ–‰ ๋ฌผ๋ฅ˜ ๋กœ๋ด‡๋“ค์ด ์กฐ์šฉํžˆ ๋ฌผ์ž๋ฅผ ์šด๋ฐ˜ํ•œ๋‹ค...`
744
+ }
745
+ };
746
+
747
+ return responses[category]?.[model] || "์ฐฝ์˜์ ์ธ ์‘๋‹ต์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค...";
748
+ }
749
+
750
+ // ํˆฌํ‘œ ์ฒ˜๋ฆฌ
751
+ function vote(choice) {
752
+ if (hasVoted) return;
753
+
754
+ hasVoted = true;
755
+
756
+ // ๋ฒ„ํŠผ ๋น„ํ™œ์„ฑํ™”
757
+ document.querySelectorAll('.vote-btn').forEach(btn => {
758
+ btn.disabled = true;
759
+ });
760
+
761
+ // ๋ชจ๋ธ ๊ณต๊ฐœ
762
+ document.getElementById('modelA').classList.add('show');
763
+ document.getElementById('modelB').classList.add('show');
764
+
765
+ // ํˆฌํ‘œ ๊ฒฐ๊ณผ ์ €์žฅ (์‹ค์ œ๋กœ๋Š” ์„œ๋ฒ„๋กœ ์ „์†ก)
766
+ const winner = choice === 'A' ? currentModels[0] : currentModels[1];
767
+ const loser = choice === 'A' ? currentModels[1] : currentModels[0];
768
+
769
+ console.log(`์Šน์ž: ${winner}, ํŒจ์ž: ${loser}`);
770
+
771
+ // ์•Œ๋ฆผ
772
+ setTimeout(() => {
773
+ alert(`ํˆฌํ‘œ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!\n์Šน์ž: ${winner}\n\nELO ๋ ˆ์ดํŒ…์ด ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.`);
774
+ }, 500);
775
+ }
776
+
777
+ // ํŽ˜์ด์ง€ ๋กœ๋“œ์‹œ ์ดˆ๊ธฐํ™”
778
+ window.onload = function() {
779
+ renderLeaderboard();
780
+ newBattle();
781
+ };
782
+ </script>
783
+ </body>
784
+ </html>