Spaces:
Running
Running
Update playground.html
Browse files- playground.html +36 -36
playground.html
CHANGED
@@ -506,42 +506,42 @@
|
|
506 |
<span class="text-xl font-mono font-bold bg-gradient-to-r from-primary to-primary-light bg-clip-text text-transparent">LOKI.AI</span>
|
507 |
<span class="ml-2 text-sm bg-light-input dark:bg-dark-input px-2 py-0.5 rounded-full text-gray-600 dark:text-gray-300">Playground</span>
|
508 |
</div>
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
</div>
|
521 |
-
</div>
|
522 |
-
|
523 |
-
<!-- Clear Chat Button -->
|
524 |
-
<button id="clearChatButton" class="p-2 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors bg-light-input dark:bg-dark-input shadow-sm group" aria-label="Clear chat history">
|
525 |
-
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-500 group-hover:text-primary dark:text-gray-400 dark:group-hover:text-primary-light transition-colors" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
526 |
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" />
|
527 |
-
</svg>
|
528 |
-
</button>
|
529 |
-
|
530 |
-
<!-- Export Chat Button -->
|
531 |
-
<button id="exportChatButton" class="p-2 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors bg-light-input dark:bg-dark-input shadow-sm group" aria-label="Export conversation">
|
532 |
-
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-500 group-hover:text-primary dark:text-gray-400 dark:group-hover:text-primary-light transition-colors" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
533 |
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
534 |
-
</svg>
|
535 |
-
</button>
|
536 |
-
|
537 |
-
<!-- Theme Toggle Button -->
|
538 |
-
<button id="themeToggle" class="p-2 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors bg-light-input dark:bg-dark-input shadow-sm group" aria-label="Toggle theme">
|
539 |
-
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-500 group-hover:text-primary dark:text-gray-400 dark:group-hover:text-primary-light transition-colors" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
540 |
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
|
541 |
-
</svg>
|
542 |
-
</button>
|
543 |
-
</div>
|
544 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
545 |
|
546 |
<!-- Initial Input -->
|
547 |
<div class="flex flex-col items-center justify-center space-y-6 py-12" id="initialInput">
|
@@ -815,7 +815,7 @@ function populateModels(models) {
|
|
815 |
models.forEach(model => {
|
816 |
const modelName = model.id;
|
817 |
let provider = 'Other';
|
818 |
-
if (
|
819 |
else if (modelName.includes('claude')) provider = 'Anthropic';
|
820 |
else if (modelName.includes('llama')) provider = 'Meta';
|
821 |
else if (modelName.includes('gemini')) provider = 'Google';
|
|
|
506 |
<span class="text-xl font-mono font-bold bg-gradient-to-r from-primary to-primary-light bg-clip-text text-transparent">LOKI.AI</span>
|
507 |
<span class="ml-2 text-sm bg-light-input dark:bg-dark-input px-2 py-0.5 rounded-full text-gray-600 dark:text-gray-300">Playground</span>
|
508 |
</div>
|
509 |
+
<div class="flex flex-wrap items-center justify-between gap-2">
|
510 |
+
<!-- Model Selector -->
|
511 |
+
<div class="relative" id="modelSelector">
|
512 |
+
<button class="px-3 py-2 bg-light-input dark:bg-dark-input rounded-md text-sm flex items-center space-x-1 hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors shadow-sm min-w-0" id="modelSelectButton" aria-label="Select AI model">
|
513 |
+
<span id="modelSelectDisplay">Select Model</span>
|
514 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 ml-1" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
515 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
|
516 |
+
</svg>
|
517 |
+
</button>
|
518 |
+
<div class="absolute mt-1 w-56 rounded-md shadow-lg bg-light-card dark:bg-dark-card ring-1 ring-black ring-opacity-5 hidden max-h-64 overflow-y-auto z-20 dropdown-transition" id="modelOptions">
|
519 |
+
<div class="py-2 px-3 text-sm text-gray-600 dark:text-gray-400" id="modelLoader">Loading models...</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
520 |
</div>
|
521 |
+
</div>
|
522 |
+
|
523 |
+
<!-- Clear Chat Button -->
|
524 |
+
<button id="clearChatButton" class="p-2 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors bg-light-input dark:bg-dark-input shadow-sm group min-w-0" aria-label="Clear chat history">
|
525 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-500 group-hover:text-primary dark:text-gray-400 dark:group-hover:text-primary-light transition-colors" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
526 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" />
|
527 |
+
</svg>
|
528 |
+
</button>
|
529 |
+
|
530 |
+
<!-- Export Chat Button -->
|
531 |
+
<button id="exportChatButton" class="p-2 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors bg-light-input dark:bg-dark-input shadow-sm group min-w-0" aria-label="Export conversation">
|
532 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-500 group-hover:text-primary dark:text-gray-400 dark:group-hover:text-primary-light transition-colors" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
533 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" />
|
534 |
+
</svg>
|
535 |
+
</button>
|
536 |
+
|
537 |
+
<!-- Theme Toggle Button -->
|
538 |
+
<button id="themeToggle" class="p-2 rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 transition-colors bg-light-input dark:bg-dark-input shadow-sm group min-w-0" aria-label="Toggle theme">
|
539 |
+
<svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-gray-500 group-hover:text-primary dark:text-gray-400 dark:group-hover:text-primary-light transition-colors" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
540 |
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z" />
|
541 |
+
</svg>
|
542 |
+
</button>
|
543 |
+
</div>
|
544 |
+
|
545 |
|
546 |
<!-- Initial Input -->
|
547 |
<div class="flex flex-col items-center justify-center space-y-6 py-12" id="initialInput">
|
|
|
815 |
models.forEach(model => {
|
816 |
const modelName = model.id;
|
817 |
let provider = 'Other';
|
818 |
+
if (/gpt|openai/i.test(modelName)) provider = 'OpenAI';
|
819 |
else if (modelName.includes('claude')) provider = 'Anthropic';
|
820 |
else if (modelName.includes('llama')) provider = 'Meta';
|
821 |
else if (modelName.includes('gemini')) provider = 'Google';
|