ParthSadaria commited on
Commit
5fa66f0
·
verified ·
1 Parent(s): 5522363

Update playground.html

Browse files
Files changed (1) hide show
  1. playground.html +10 -767
playground.html CHANGED
@@ -22,7 +22,7 @@
22
  <meta name="twitter:description" content="Ultra-fast responses, zero cost, and total dominance. Test Loki AI's models like GPT-4o and more!">
23
  <meta name="twitter:image" content="https://parthsadaria-lokiai.hf.space/banner.jpg">
24
 
25
- <!-- <link rel="stylesheet" href="style.css"> -->
26
  <link rel="preconnect" href="https://fonts.googleapis.com">
27
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
28
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" rel="stylesheet">
@@ -35,732 +35,6 @@
35
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
36
  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
37
  <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@700&display=swap" rel="stylesheet">
38
- <style>
39
- :root {
40
- /* True Black Theme */
41
- --bg-color: #000000; /* Pure Black */
42
- --container-bg: #0a0a0a; /* Extremely dark grey */
43
- --input-bg: #000000; /* Pure Black */
44
- --user-msg-bg: #1a1a1a; /* Very dark grey for user */
45
- --assistant-msg-bg: #101010; /* Even darker grey for AI */
46
- --text-color: #ffffff; /* Slightly lighter grey/off-white text */
47
- --text-color-darker: #ffffff; /* For less important text */
48
- --placeholder-color: #404040; /* Darker placeholder text */
49
- --border-color: #202020; /* Even darker grey border */
50
- --accent-color-hover: #282828; /* Darker hover for buttons */
51
- --focus-ring-color: rgba(150, 150, 150, 0.2); /* Even more subtle white focus */
52
- --error-bg: #1a1a1a; /* Darker grey error background */
53
- --success-feedback-color: #ffffff; /* White feedback for copy */
54
- --code-bg: #050505; /* Near black background for code blocks */
55
- --code-text-color: #c0c0c0; /* Lighter text for code */
56
-
57
- --border-radius-smooth: 8px; /* Slightly reduced radius */
58
- --border-radius-slight: 4px;
59
- --font-family: 'DM Sans', sans-serif;
60
- --transition-speed: 0.15s; /* Slightly faster transitions */
61
- }
62
-
63
-
64
- @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap');
65
-
66
- * { box-sizing: border-box; margin: 0; padding: 0; font-family: 'DM Sans', sans-serif; }
67
- html, body { height: 100%; overflow: hidden; background-color: var(--bg-color); }
68
-
69
- /* Blob styling */
70
- .blob {
71
- position: absolute;
72
- width: 40vw;
73
- height: 40vw;
74
- z-index: 0;
75
- pointer-events: none;
76
- }
77
-
78
- /* Main Container */
79
- body {
80
- display: flex;
81
- justify-content: center;
82
- align-items: center;
83
- color: var(--text-color);
84
- position: relative;
85
- }
86
-
87
- /* Intro Screen Animation */#intro-screen {
88
- position: fixed;
89
- top: 0;
90
- left: 0;
91
- width: 100%;
92
- height: 100vh;
93
- background: radial-gradient(ellipse at center, #1a1a1a 0%, #080808 100%); /* Subtler gradient */
94
- color: #e0e0e0; /* Softer white */
95
- display: flex;
96
- justify-content: center;
97
- align-items: center;
98
- font-size: 3.2rem; /* Tiny bit bigger */
99
- z-index: 9999;
100
- text-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 25px rgba(255, 255, 255, 0.4); /* Refined glow */
101
- letter-spacing: 3px; /* More dramatic */
102
- transition: opacity 0.6s ease-out, filter 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275), transform 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* Smoother, snappier */
103
- overflow: hidden; /* To contain the pseudo-element animation */
104
- }
105
-
106
- #intro-screen h1 {
107
- position: relative;
108
- margin: 0;
109
- padding-bottom: 15px; /* Space for the fancy underline */
110
- }
111
-
112
- #intro-screen h1::after {
113
- content: "";
114
- position: absolute;
115
- bottom: 0; /* Moved down */
116
- left: 15%; /* Starts a bit in */
117
- width: 70%; /* Wider, more prominent */
118
- height: 2px; /* Thicker line */
119
- background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), #ffffff 30%, rgba(255, 255, 255, 0.1)); /* More defined gradient */
120
- opacity: 0; /* Initially hidden */
121
- transform: scaleX(0); /* Starts scaled down */
122
- transition: opacity 0.4s ease-in-out 0.4s, transform 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55) 0.4s; /* Fancy reveal */
123
- }
124
-
125
- /* Chat Container */
126
- .chat-container {
127
- background-color: var(--container-bg);
128
- width: 90%;
129
- height: 90%;
130
- display: flex;
131
- flex-direction: column;
132
- overflow: hidden;
133
- border-radius: 16px;
134
- transition: all var(--transition-speed) ease;
135
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25);
136
- box-shadow: 0px 0px 100px rgba(255, 255, 255,0.1);
137
- position: relative;
138
- z-index: 10;
139
- border: 1px solid var(--border-color);
140
- }
141
-
142
- /* Header Styling */
143
- .chat-header {
144
- background-color: var(--input-bg);
145
- padding: 10px 25px;
146
- border-bottom: 1px solid var(--border-color);
147
- flex-shrink: 0;
148
- transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;
149
- z-index: 10;
150
- }
151
-
152
- .header-top-row {
153
- display: flex;
154
- justify-content: space-between;
155
- align-items: center;
156
- margin-bottom: 8px;
157
- }
158
-
159
- .chat-header h1 {
160
- font-size: 1.1em;
161
- font-weight: 500;
162
- margin: 0;
163
- }
164
-
165
- .header-button {
166
- background: none;
167
- border: none;
168
- color: var(--text-color-darker);
169
- cursor: pointer;
170
- padding: 5px;
171
- border-radius: var(--border-radius-slight);
172
- transition: color var(--transition-speed) ease, background-color var(--transition-speed) ease;
173
- }
174
-
175
- .header-button:hover {
176
- color: var(--text-color);
177
- background-color: var(--accent-color-hover);
178
- }
179
-
180
- .header-bottom-row {
181
- display: flex;
182
- align-items: center;
183
- gap: 8px;
184
- }
185
-
186
- .header-bottom-row label {
187
- font-size: 0.85em;
188
- color: var(--text-color-darker);
189
- }
190
-
191
- .model-select {
192
- flex-grow: 1;
193
- background-color: var(--container-bg);
194
- color: var(--text-color);
195
- border: 1px solid var(--border-color);
196
- border-radius: var(--border-radius-slight);
197
- padding: 5px 8px;
198
- font-size: 0.85em;
199
- cursor: pointer;
200
- transition: border-color var(--transition-speed) ease, background-color var(--transition-speed) ease;
201
- }
202
-
203
- .model-select:focus {
204
- outline: none;
205
- border-color: var(--text-color-darker);
206
- background-color: var(--bg-color);
207
- }
208
-
209
- /* Chat Box */
210
- .chat-box {
211
- flex-grow: 1;
212
- overflow-y: auto;
213
- padding: 25px;
214
- display: flex;
215
- flex-direction: column;
216
- gap: 20px;
217
- }
218
-
219
- /* Custom Scrollbar */
220
- .chat-box::-webkit-scrollbar { width: 8px; }
221
- .chat-box::-webkit-scrollbar-track { background: var(--container-bg); }
222
- .chat-box::-webkit-scrollbar-thumb {
223
- background-color: var(--input-bg);
224
- border-radius: 4px;
225
- border: 2px solid var(--container-bg);
226
- }
227
- .chat-box::-webkit-scrollbar-thumb:hover {
228
- background-color: var(--accent-color-hover);
229
- }
230
-
231
- /* Message Styling */
232
- .message {
233
- padding: 14px 20px;
234
- border-radius: var(--border-radius-smooth);
235
- max-width: 85%;
236
- word-wrap: break-word;
237
- line-height: 1.6;
238
- position: relative;
239
- transition: background-color var(--transition-speed) ease;
240
- }
241
-
242
- .message-content { padding-right: 30px; }
243
-
244
- .user-message {
245
- background-color: var(--user-msg-bg);
246
- color: var(--text-color);
247
- align-self: flex-end;
248
- border-bottom-right-radius: var(--border-radius-slight);
249
- }
250
-
251
- .assistant-message {
252
- background-color: var(--assistant-msg-bg);
253
- color: var(--text-color);
254
- align-self: flex-start;
255
- border-bottom-left-radius: var(--border-radius-slight);
256
- }
257
-
258
- /* Copy Button */
259
- .copy-button {
260
- position: absolute;
261
- top: 8px;
262
- right: 8px;
263
- background-color: rgba(255, 255, 255, 0.05);
264
- color: var(--text-color-darker);
265
- border: none;
266
- border-radius: 4px;
267
- padding: 3px 5px;
268
- cursor: pointer;
269
- opacity: 0;
270
- transition: opacity var(--transition-speed) ease, background-color var(--transition-speed) ease, color var(--transition-speed) ease;
271
- display: flex;
272
- align-items: center;
273
- justify-content: center;
274
- z-index: 2;
275
- }
276
-
277
- .message:hover .copy-button { opacity: 1; }
278
- .copy-button:hover {
279
- background-color: rgba(255, 255, 255, 0.1);
280
- color: var(--text-color);
281
- }
282
- .copy-button.copied svg path { fill: var(--success-feedback-color); }
283
- .copy-button.copied { background-color: rgba(255, 255, 255, 0.08); }
284
-
285
- /* Animation for text appearing */
286
- .unblur-token {
287
- display: inline;
288
- opacity: 0;
289
- filter: blur(5px);
290
- transform: translateY(5px);
291
- animation: unblurFadeSlide 0.3s ease forwards;
292
- }
293
-
294
- /* Keep block elements as block */
295
- p.unblur-token, h1.unblur-token, h2.unblur-token, h3.unblur-token,
296
- div.unblur-token, pre.unblur-token, blockquote.unblur-token,
297
- ul.unblur-token, ol.unblur-token, li.unblur-token {
298
- display: block;
299
- }
300
-
301
- /* Ensure code elements don't break the flow */
302
- code.unblur-token:not(pre code) {
303
- display: inline;
304
- }
305
-
306
- @keyframes unblurFadeSlide {
307
- 0% {
308
- opacity: 0;
309
- filter: blur(5px);
310
- transform: translateY(5px);
311
- }
312
- 100% {
313
- opacity: 1;
314
- filter: blur(0);
315
- transform: translateY(0);
316
- }
317
- }
318
-
319
- /* Markdown Content Styling */
320
- .message p { margin-bottom: 0.8em; }
321
- .message p:last-child { margin-bottom: 0; }
322
- .message a { color: var(--text-color); text-decoration: underline; }
323
- .message a:hover { color: var(--text-color-darker); }
324
- .message ul, .message ol { margin-left: 1.5em; margin-bottom: 0.8em; }
325
- .message li { margin-bottom: 0.3em; }
326
- .message h1, .message h2, .message h3, .message h4, .message h5, .message h6 {
327
- margin-top: 1em;
328
- margin-bottom: 0.5em;
329
- font-weight: 600;
330
- line-height: 1.3;
331
- border-bottom: 1px solid var(--border-color);
332
- padding-bottom: 0.2em;
333
- }
334
- .message h1 { font-size: 1.4em; }
335
- .message h2 { font-size: 1.3em; }
336
- .message h3 { font-size: 1.2em; }
337
- .message strong { font-weight: 600; }
338
- .message blockquote {
339
- border-left: 3px solid var(--border-color);
340
- margin-left: 0;
341
- padding-left: 1em;
342
- color: var(--text-color-darker);
343
- font-style: italic;
344
- margin-bottom: 0.8em;
345
- }
346
- .message hr {
347
- border: none;
348
- border-top: 1px solid var(--border-color);
349
- margin: 1.5em 0;
350
- }
351
-
352
- /* Code Styling */
353
- .message code:not(pre code) {
354
- background-color: var(--input-bg);
355
- color: var(--code-text-color);
356
- padding: 0.2em 0.4em;
357
- border-radius: var(--border-radius-slight);
358
- font-size: 0.9em;
359
- font-family: monospace;
360
- }
361
-
362
- .message pre {
363
- background-color: var(--code-bg);
364
- padding: 1em;
365
- border-radius: var(--border-radius-slight);
366
- overflow-x: auto;
367
- margin: 0.5em 0 1em 0;
368
- font-family: monospace;
369
- font-size: 0.9em;
370
- line-height: 1.5;
371
- position: relative;
372
- border: 1px solid var(--border-color);
373
- }
374
-
375
- .message pre code.hljs {
376
- display: block;
377
- overflow-x: auto;
378
- padding: 0;
379
- background: transparent;
380
- color: inherit;
381
- font-size: inherit;
382
- }
383
-
384
- /* Copy Code Button */
385
- .copy-code-button {
386
- position: absolute;
387
- top: 8px;
388
- right: 8px;
389
- background-color: var(--input-bg);
390
- color: var(--text-color-darker);
391
- border: 1px solid var(--border-color);
392
- border-radius: var(--border-radius-slight);
393
- padding: 4px 8px;
394
- cursor: pointer;
395
- font-size: 0.8em;
396
- opacity: 0.3;
397
- transition: opacity var(--transition-speed) ease, background-color var(--transition-speed) ease, color var(--transition-speed) ease;
398
- display: flex;
399
- align-items: center;
400
- gap: 4px;
401
- z-index: 5;
402
- }
403
-
404
- .message pre:hover .copy-code-button { opacity: 1; }
405
- .copy-code-button:hover {
406
- background-color: var(--accent-color-hover);
407
- color: var(--text-color);
408
- }
409
- .copy-code-button svg { width: 12px; height: 12px; }
410
- .copy-code-button.copied span { display: none; }
411
- .copy-code-button.copied::after { content: 'Copied!'; font-weight: 500; }
412
- .copy-code-button.copied {
413
- color: var(--success-feedback-color);
414
- background-color: var(--accent-color-hover);
415
- }
416
-
417
- /* Input Area */
418
- .input-area {
419
- display: flex;
420
- padding: 15px 25px;
421
- border-top: 1px solid var(--border-color);
422
- background-color: var(--input-bg);
423
- flex-shrink: 0;
424
- gap: 10px;
425
- align-items: flex-end;
426
- transition: background-color var(--transition-speed) ease, border-color var(--transition-speed) ease;
427
- }
428
-
429
- #user-input {
430
- flex-grow: 1;
431
- background-color: var(--container-bg);
432
- color: var(--text-color);
433
- border: 1px solid var(--border-color);
434
- border-radius: var(--border-radius-slight);
435
- padding: 12px 15px;
436
- font-family: var(--font-family);
437
- font-size: 1em;
438
- resize: none;
439
- overflow-y: auto;
440
- max-height: 120px;
441
- line-height: 1.4;
442
- transition: border-color var(--transition-speed) ease, box-shadow var(--transition-speed) ease, background-color var(--transition-speed) ease;
443
- }
444
-
445
- #user-input:focus {
446
- outline: none;
447
- border-color: var(--text-color-darker);
448
- box-shadow: 0 0 0 2px var(--focus-ring-color);
449
- }
450
-
451
- #user-input::placeholder { color: var(--placeholder-color); }
452
-
453
- /* Control Buttons */
454
- .control-button {
455
- background-color: var(--input-bg);
456
- color: var(--text-color-darker);
457
- border: 1px solid var(--border-color);
458
- border-radius: var(--border-radius-slight);
459
- padding: 10px;
460
- cursor: pointer;
461
- display: flex;
462
- justify-content: center;
463
- align-items: center;
464
- transition: background-color var(--transition-speed) ease, transform 0.1s ease, border-color var(--transition-speed) ease, color var(--transition-speed) ease;
465
- height: 46px;
466
- width: 46px;
467
- flex-shrink: 0;
468
- position: relative;
469
- overflow: hidden;
470
- }
471
-
472
- .control-button:hover:not(:disabled) {
473
- background-color: var(--accent-color-hover);
474
- border-color: var(--accent-color-hover);
475
- color: var(--text-color);
476
- }
477
-
478
- .control-button:active:not(:disabled) { transform: scale(0.95); }
479
- .control-button:disabled {
480
- background-color: var(--container-bg);
481
- color: #555;
482
- border-color: var(--border-color);
483
- cursor: not-allowed;
484
- }
485
-
486
- .send-button .send-icon { transition: opacity var(--transition-speed) ease; }
487
- .send-button .button-spinner {
488
- position: absolute;
489
- top: 50%;
490
- left: 50%;
491
- transform: translate(-50%, -50%);
492
- width: 20px;
493
- height: 20px;
494
- }
495
-
496
- .stop-button { color: var(--error-bg); }
497
- .stop-button:hover:not(:disabled) {
498
- background-color: #dc3545;
499
- color: white;
500
- border-color: #dc3545;
501
- }
502
-
503
- /* Spinner */
504
- .spinner {
505
- display: inline-block;
506
- width: 1em;
507
- height: 1em;
508
- border: 2px solid currentColor;
509
- border-right-color: transparent;
510
- border-radius: 50%;
511
- animation: spinner-border .75s linear infinite;
512
- vertical-align: middle;
513
- }
514
-
515
- .button-spinner {
516
- width: 20px;
517
- height: 20px;
518
- border-width: 3px;
519
- color: var(--text-color);
520
- }
521
-
522
- @keyframes spinner-border { to { transform: rotate(360deg); } }
523
-
524
- /* Error Message */
525
- .error-message {
526
- background-color: var(--error-bg);
527
- color: #ffcccc;
528
- border: 1px solid #600;
529
- }
530
-
531
- .error-message .copy-button {
532
- background-color: rgba(255, 100, 100, 0.1);
533
- color: #ffcccc;
534
- }
535
-
536
- .error-message .copy-button:hover {
537
- background-color: rgba(255, 100, 100, 0.2);
538
- color: #ffe0e0;
539
- }
540
-
541
- /* Modal Styling */
542
- .modal-overlay {
543
- position: fixed;
544
- inset: 0;
545
- background-color: rgba(0, 0, 0, 0.8);
546
- display: flex;
547
- justify-content: center;
548
- align-items: center;
549
- z-index: 1000;
550
- opacity: 0;
551
- transition: opacity var(--transition-speed) ease;
552
- }
553
-
554
- .modal-overlay.visible { opacity: 1; }
555
-
556
- .modal-content {
557
- background-color: var(--input-bg);
558
- padding: 25px 30px;
559
- border-radius: var(--border-radius-smooth);
560
- box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
561
- width: 90%;
562
- max-width: 400px;
563
- text-align: center;
564
- transform: scale(0.95);
565
- transition: transform var(--transition-speed) ease;
566
- border: 1px solid var(--border-color);
567
- }
568
-
569
- .modal-overlay.visible .modal-content { transform: scale(1); }
570
-
571
- .modal-content h4 {
572
- margin-bottom: 10px;
573
- font-size: 1.2em;
574
- font-weight: 500;
575
- }
576
-
577
- .modal-content p {
578
- margin-bottom: 20px;
579
- color: var(--text-color-darker);
580
- font-size: 0.95em;
581
- line-height: 1.5;
582
- }
583
-
584
- .modal-buttons {
585
- display: flex;
586
- justify-content: center;
587
- gap: 15px;
588
- }
589
-
590
- .modal-button {
591
- padding: 10px 20px;
592
- border-radius: var(--border-radius-slight);
593
- border: 1px solid var(--border-color);
594
- cursor: pointer;
595
- font-weight: 500;
596
- transition: background-color var(--transition-speed) ease, transform 0.1s ease;
597
- }
598
-
599
- .modal-button.confirm {
600
- background-color: #b00;
601
- color: white;
602
- border-color: #800;
603
- }
604
-
605
- .modal-button.confirm:hover { background-color: #d00; }
606
-
607
- .modal-button.cancel {
608
- background-color: var(--assistant-msg-bg);
609
- color: var(--text-color);
610
- }
611
-
612
- .modal-button.cancel:hover { background-color: var(--accent-color-hover); }
613
- .modal-button:active { transform: scale(0.97); }
614
-
615
- /* Glow Effects */
616
- .text-gradient {
617
- background: linear-gradient(90deg, #fff, #aaa);
618
- -webkit-background-clip: text;
619
- background-clip: text;
620
- -webkit-text-fill-color: transparent;
621
- }
622
-
623
- .hero-title-glow {
624
- text-shadow: 0 0 10px rgba(255, 255, 255, 0.3);
625
- }
626
-
627
- .hero-subtitle-glow {
628
- text-shadow: 0 0 5px rgba(255, 255, 255, 0.2);
629
- }
630
-
631
- .button-glow {
632
- box-shadow: 0 0 15px rgba(255, 255, 255, 0.1);
633
- }
634
-
635
- .hero-card-glow {
636
- box-shadow: 0 5px 20px rgba(255, 255, 255, 0.05);
637
- }
638
-
639
- .card-item-glow {
640
- box-shadow: 0 2px 8px rgba(255, 255, 255, 0.03);
641
- }
642
-
643
- /* Animations */
644
- @keyframes float {
645
- 0% { transform: translateY(0); }
646
- 50% { transform: translateY(-10px); }
647
- 100% { transform: translateY(0); }
648
- }
649
-
650
- .animate-float {
651
- animation: float 6s ease-in-out infinite;
652
- }
653
-
654
- @keyframes scale-in {
655
- from { transform: scale(0.9); opacity: 0; }
656
- to { transform: scale(1); opacity: 1; }
657
- }
658
-
659
- .animate-scale-in {
660
- animation: scale-in 0.5s ease-out forwards;
661
- }
662
-
663
- @keyframes fade-in-up {
664
- from { transform: translateY(20px); opacity: 0; }
665
- to { transform: translateY(0); opacity: 1; }
666
- }
667
-
668
- .animate-fade-in-up {
669
- animation: fade-in-up 0.5s ease-out forwards;
670
- }
671
-
672
- /* Responsive adjustments */
673
- @media (max-width: 768px) {
674
- .chat-container {
675
- width: 100%;
676
- height: 100%;
677
- border-radius: 0;
678
- }
679
-
680
- .message {
681
- max-width: 90%;
682
- }
683
-
684
- .chat-header, .input-area {
685
- padding: 10px 15px;
686
- }
687
-
688
- .chat-box {
689
- padding: 15px;
690
- }
691
- }
692
- .inverted {
693
- filter: invert(1);
694
- }
695
-
696
- #invert-btn {
697
- position: fixed;
698
- bottom: 20px;
699
- right: 20px;
700
- padding: 10px; /* Removed text, increased padding */
701
- background: transparent; /* Make background transparent */
702
- border: none; /* Remove border */
703
- cursor: pointer;
704
- z-index: 9999;
705
- width: 40px; /* Increased size for icons */
706
- height: 40px;
707
- display: flex; /* Use flexbox for centering */
708
- align-items: center;
709
- justify-content: center;
710
- }
711
-
712
- #invert-btn svg {
713
- width: 80%; /* Increased size of SVG inside the button */
714
- height: 80%;
715
- }
716
-
717
- .sun {
718
- color: #FFD700; /* Gold for sun */
719
- }
720
-
721
- .moon {
722
- color: #C0C0C0; /* Silver for moon */
723
- }
724
-
725
- /* User information styles */
726
- .user-info {
727
- position: absolute;
728
- top: 10px;
729
- right: 20px;
730
- display: flex;
731
- align-items: center;
732
- gap: 10px;
733
- color: #fff;
734
- font-size: 14px;
735
- }
736
-
737
- .user-avatar {
738
- width: 30px;
739
- height: 30px;
740
- border-radius: 50%;
741
- background: #333;
742
- display: flex;
743
- align-items: center;
744
- justify-content: center;
745
- border: 1px solid #fff;
746
- }
747
-
748
- .logout-btn {
749
- background: transparent;
750
- color: #fff;
751
- border: 1px solid #fff;
752
- border-radius: 4px;
753
- padding: 2px 8px;
754
- font-size: 12px;
755
- cursor: pointer;
756
- transition: all 0.3s ease;
757
- }
758
-
759
- .logout-btn:hover {
760
- background: rgba(255, 255, 255, 0.1);
761
- box-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
762
- }
763
- </style>
764
  </head>
765
  <script>
766
  document.addEventListener('DOMContentLoaded', async () => {
@@ -833,54 +107,23 @@ code.unblur-token:not(pre code) {
833
  <div class="header-bottom-row">
834
  <label for="model-select">Model:</label>
835
  <select id="model-select" class="model-select">
836
- <optgroup label="Mistral">
837
- <option value="mistral-large-latest">Mistral Large (Latest)</option>
838
- <option value="mistral-small-latest">Mistral Small (Latest)</option>
839
- <option value="codestral-latest">Codestral (Latest)</option>
840
- <option value="open-mistral-nemo">Mistral Nemo</option>
841
- <option value="pixtral-large-latest">Pixtral</option>
842
- </optgroup>
843
- <optgroup label="Image Generation">
844
- <option value="flux">Flux - Image Gen</option>
845
- </optgroup>
846
- <optgroup label="Anthropic">
847
- <option value="claude-3-5-sonnet">Claude Sonnet 3.5</option>
848
- <option value="claude-3.5-haiku">Claude Haiku 3.5</option>
849
- <option value="claude">Claude</option>
850
- </optgroup>
851
- <optgroup label="Google">
852
- <option value="gemini-flash-2.0">Gemini 2 Flash (Latest)</option>
853
- <option value="gemini-1.5-pro">Gemini 1.5 Pro</option>
854
- <option value="gemini-1.5-flash">Gemini 1.5 Flash</option>
855
- <option value="gemini-pro">Gemini Pro</option>
856
- </optgroup>
857
- <optgroup label="Meta">
858
- <option value="@cf/meta/llama-3-8b-instruct">Llama 3 8B Instruct</option>
859
- <option value="meta-llama/Meta-Llama-3-8B-Instruct">Llama 3 8B Instruct (Full Name)</option>
860
- <option value="@cf/meta/llama-3.3-70b-instruct-fp8-fast">Llama 3 70B Instruct</option>
861
- <option value="meta-llama/Meta-Llama-3-70B-Instruct">Llama 3 70B Instruct (Full Name)</option>
862
- <option value="cognitivecomputations/dolphin-2.9.1-llama-3-70b">Dolphin 2.9.1 Llama 3 70B</option>
863
- </optgroup>
864
- <optgroup label="OpenAI">
865
  <option value="openai-xlarge">GPT-4.1</option>
866
  <option value="openai-large">GPT-4.1 mini</option>
867
  <option value="openai">GPT-4.1 nano</option>
868
  <option value="chatgpt-4o-latest">GPT-4o (Latest)</option>
869
  <option value="gpt-4o">GPT-4o</option>
870
  <option value="gpt-3.5-turbo">GPT-3.5 Turbo</option>
 
 
 
 
 
 
871
  </optgroup>
872
- <optgroup label="Other Notable">
873
- <option value="phi">Phi-4</option>
874
- </optgroup>
875
- <optgroup label="Image Generation">
876
- <option value="Image-Generator">Image Generator</option>
877
- </optgroup>
878
- <optgroup label="Reasoning Models">
879
- <option value="o1">o1</option>
880
- <option value="o3-mini">o3-mini</option>
881
- </optgroup>
882
- <optgroup label="Other Models">
883
  <option value="evil">Evil</option>
 
884
  </select>
885
  </div>
886
  </header>
 
22
  <meta name="twitter:description" content="Ultra-fast responses, zero cost, and total dominance. Test Loki AI's models like GPT-4o and more!">
23
  <meta name="twitter:image" content="https://parthsadaria-lokiai.hf.space/banner.jpg">
24
 
25
+ <link rel="stylesheet" href="style.css">
26
  <link rel="preconnect" href="https://fonts.googleapis.com">
27
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
28
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" rel="stylesheet">
 
35
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
36
  <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
37
  <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@700&display=swap" rel="stylesheet">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  </head>
39
  <script>
40
  document.addEventListener('DOMContentLoaded', async () => {
 
107
  <div class="header-bottom-row">
108
  <label for="model-select">Model:</label>
109
  <select id="model-select" class="model-select">
110
+ <optgroup label="OpenAI">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
  <option value="openai-xlarge">GPT-4.1</option>
112
  <option value="openai-large">GPT-4.1 mini</option>
113
  <option value="openai">GPT-4.1 nano</option>
114
  <option value="chatgpt-4o-latest">GPT-4o (Latest)</option>
115
  <option value="gpt-4o">GPT-4o</option>
116
  <option value="gpt-3.5-turbo">GPT-3.5 Turbo</option>
117
+ <optgroup label="Mistral">
118
+ <option value="mistral-large-latest">Mistral Large (Latest)</option>
119
+ <option value="mistral-small-latest">Mistral Small (Latest)</option>
120
+ <option value="codestral-latest">Codestral (Latest)</option>
121
+ <option value="open-mistral-nemo">Mistral Nemo</option>
122
+ <option value="pixtral-large-latest">Pixtral</option>
123
  </optgroup>
124
+ <optgroup label="Other Models">
 
 
 
 
 
 
 
 
 
 
125
  <option value="evil">Evil</option>
126
+ </optgroup>
127
  </select>
128
  </div>
129
  </header>