Spaces:
Running
Running
use moder colour gradients for dashborad also and premium fonts - Follow Up Deployment
61fce48
verified
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>ANA AI - Multi-Model Dashboard</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600&family=Inter:wght@300;400;500;600;700&display=swap'); | |
| :root { | |
| --primary: #0f172a; | |
| --secondary: #1e293b; | |
| --accent: #4f46e5; | |
| --success: #10b981; | |
| --warning: #f59e0b; | |
| --error: #ef4444; | |
| } | |
| * { font-family: 'Inter', sans-serif; } | |
| body { | |
| background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #334155 100%); | |
| background-attachment: fixed; | |
| } | |
| h1, h2, h3, h4 { font-family: 'Playfair Display', serif; } | |
| .glass-morphism { | |
| background: rgba(255, 255, 255, 0.05); | |
| backdrop-filter: blur(16px); | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| } | |
| .glow-card { | |
| background: linear-gradient(145deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02)); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35); | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| transition: transform 0.4s, box-shadow 0.4s; | |
| } | |
| .glow-card:hover { | |
| transform: translateY(-8px) scale(1.02); | |
| box-shadow: 0 0 20px var(--accent), 0 0 40px var(--primary); | |
| } | |
| .metric-card { | |
| position: relative; | |
| overflow: hidden; | |
| border-radius: 1rem; | |
| background: linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02)); | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| } | |
| .metric-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: -50%; | |
| left: -50%; | |
| width: 200%; | |
| height: 200%; | |
| background: conic-gradient(from 0deg, transparent, rgba(255,255,255,0.3), transparent); | |
| animation: rotate 4s linear infinite; | |
| z-index: 0; | |
| } | |
| .metric-card > * { position: relative; z-index: 1; } | |
| @keyframes rotate { | |
| 100% { transform: rotate(360deg); } | |
| } | |
| .model-card { | |
| transition: all 0.3s ease; | |
| background: linear-gradient(145deg, #f8fafc, #e2e8f0); | |
| box-shadow: 20px 20px 60px #d1d5db, -20px -20px 60px #ffffff; | |
| } | |
| .model-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); | |
| } | |
| .status-indicator { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { opacity: 1; } | |
| 50% { opacity: 0.5; } | |
| 100% { opacity: 1; } | |
| } | |
| .sidebar { | |
| transition: all 0.3s ease; | |
| } | |
| .sidebar-collapsed { | |
| transform: translateX(-100%); | |
| } | |
| .chat-bubble { | |
| max-width: 70%; | |
| word-wrap: break-word; | |
| } | |
| .typing-indicator { | |
| display: inline-block; | |
| width: 8px; | |
| height: 8px; | |
| border-radius: 50%; | |
| background-color: #6b7280; | |
| animation: typing 1.4s infinite ease-in-out; | |
| } | |
| .typing-indicator:nth-child(2) { | |
| animation-delay: 0.2s; | |
| } | |
| .typing-indicator:nth-child(3) { | |
| animation-delay: 0.4s; | |
| } | |
| @keyframes typing { | |
| 0%, 60%, 100% { transform: translateY(0); } | |
| 30% { transform: translateY(-10px); } | |
| } | |
| .metric-card { | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .metric-card::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: -100%; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); | |
| transition: left 0.5s; | |
| } | |
| .metric-card:hover::before { | |
| left: 100%; | |
| } | |
| .glow-effect { | |
| box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); | |
| } | |
| .circular-progress { | |
| transform: rotate(-90deg); | |
| } | |
| .circular-progress circle { | |
| stroke-dasharray: 283; | |
| stroke-dashoffset: 283; | |
| transition: stroke-dashoffset 0.5s ease-in-out; | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-50"> | |
| <!-- Navigation --> | |
| <nav class="bg-white shadow-lg border-b border-gray-200"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="flex justify-between items-center h-16"> | |
| <div class="flex items-center"> | |
| <button id="sidebar-toggle" class="p-2 rounded-md text-gray-600 hover:text-gray-900 hover:bg-gray-100"> | |
| <i data-feather="menu" class="h-6 w-6"></i> | |
| </button> | |
| <h1 class="ml-4 text-2xl font-bold text-gray-900">ANA AI Dashboard</h1> | |
| </div> | |
| <div class="flex items-center space-x-4"> | |
| <button class="relative p-2 text-gray-600 hover:text-gray-900 hover:bg-gray-100 rounded-full"> | |
| <i data-feather="bell" class="h-5 w-5"></i> | |
| <span class="absolute top-0 right-0 h-2 w-2 bg-red-500 rounded-full"></span> | |
| </button> | |
| <div class="flex items-center space-x-2"> | |
| <img class="h-8 w-8 rounded-full" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='50' r='50' fill='%233b82f6'/%3E%3Ctext x='50' y='50' text-anchor='middle' dy='0.35em' fill='white' font-size='40' font-family='Arial'%3EA%3C/text%3E%3C/svg%3E" alt="User"> | |
| <span class="text-sm font-medium">Admin</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </nav> | |
| <div class="flex h-screen bg-gray-50"> | |
| <!-- Sidebar --> | |
| <aside id="sidebar" class="sidebar w-64 bg-white shadow-lg flex-shrink-0"> | |
| <nav class="mt-5 px-2"> | |
| <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md text-white bg-blue-600"> | |
| <i data-feather="home" class="mr-3 h-5 w-5"></i> | |
| Dashboard | |
| </a> | |
| <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md text-gray-600 hover:text-gray-900 hover:bg-gray-50"> | |
| <i data-feather="cpu" class="mr-3 h-5 w-5"></i> | |
| Models | |
| </a> | |
| <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md text-gray-600 hover:text-gray-900 hover:bg-gray-50"> | |
| <i data-feather="bar-chart-2" class="mr-3 h-5 w-5"></i> | |
| Analytics | |
| </a> | |
| <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md text-gray-600 hover:text-gray-900 hover:bg-gray-50"> | |
| <i data-feather="settings" class="mr-3 h-5 w-5"></i> | |
| Settings | |
| </a> | |
| </nav> | |
| </aside> | |
| <!-- Main Content --> | |
| <main class="flex-1 overflow-y-auto"> | |
| <div class="py-6"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <!-- Header --> | |
| <div class="mb-8"> | |
| <h2 class="text-3xl font-bold text-gray-900">Welcome back to ANA AI</h2> | |
| <p class="mt-2 text-gray-600">Manage your multi-model AI assistant</p> | |
| </div> | |
| <!-- Stats Overview --> | |
| <div class="grid grid-cols-1 md:grid-cols-4 gap-6 mb-8"> | |
| <div class="metric-card p-6 text-white"> | |
| <div class="flex items-center justify-between"> | |
| <div> | |
| <p class="text-sm font-medium opacity-80">Total Models</p> | |
| <p class="text-3xl font-bold">8</p> | |
| </div> | |
| <div class="p-3 bg-white/20 rounded-full"> | |
| <i data-feather="cpu" class="h-6 w-6"></i> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="metric-card p-6 text-white"> | |
| <div class="flex items-center justify-between"> | |
| <div> | |
| <p class="text-sm font-medium opacity-80">Active Sessions</p> | |
| <p class="text-3xl font-bold">24</p> | |
| </div> | |
| <div class="p-3 bg-white/20 rounded-full"> | |
| <i data-feather="activity" class="h-6 w-6"></i> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="metric-card p-6 text-white"> | |
| <div class="flex items-center justify-between"> | |
| <div> | |
| <p class="text-sm font-medium opacity-80">API Calls</p> | |
| <p class="text-3xl font-bold">12.4k</p> | |
| </div> | |
| <div class="p-3 bg-white/20 rounded-full"> | |
| <i data-feather="trending-up" class="h-6 w-6"></i> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="metric-card p-6 text-white"> | |
| <div class="flex items-center justify-between"> | |
| <div> | |
| <p class="text-sm font-medium opacity-80">Uptime</p> | |
| <p class="text-3xl font-bold">99.9%</p> | |
| </div> | |
| <div class="p-3 bg-white/20 rounded-full"> | |
| <i data-feather="clock" class="h-6 w-6"></i> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Models Grid --> | |
| <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-8"> | |
| <!-- Model Performance (removed) --> | |
| <!-- Model Distribution (removed) --> | |
| </div> | |
| <!-- Active Models --> | |
| <div class="bg-white p-6 rounded-lg shadow-md mb-8"> | |
| <h3 class="text-lg font-semibold mb-4">Active Models</h3> | |
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4"> | |
| <!-- Model Cards --> | |
| <div class="model-card p-4 rounded-lg cursor-pointer" onclick="selectModel('gpt')"> | |
| <div class="flex items-center justify-between mb-2"> | |
| <h4 class="font-semibold">GPT-4 Turbo</h4> | |
| <span class="status-indicator w-2 h-2 bg-green-500 rounded-full"></span> | |
| </div> | |
| <p class="text-sm text-gray-600 mb-2">Latest OpenAI model</p> | |
| <div class="flex items-center justify-between"> | |
| <span class="text-xs text-gray-500">2.3ms avg</span> | |
| <div class="flex space-x-1"> | |
| <div class="w-1 h-4 bg-blue-600 rounded"></div> | |
| <div class="w-1 h-6 bg-blue-600 rounded"></div> | |
| <div class="w-1 h-3 bg-blue-600 rounded"></div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="model-card p-4 rounded-lg cursor-pointer" onclick="selectModel('claude')"> | |
| <div class="flex items-center justify-between mb-2"> | |
| <h4 class="font-semibold">Claude 3</h4> | |
| <span class="status-indicator w-2 h-2 bg-green-500 rounded-full"></span> | |
| </div> | |
| <p class="text-sm text-gray-600 mb-2">Anthropic's best</p> | |
| <div class="flex items-center justify-between"> | |
| <span class="text-xs text-gray-500">1.8ms avg</span> | |
| <div class="flex space-x-1"> | |
| <div class="w-1 h-5 bg-purple-600 rounded"></div> | |
| <div class="w-1 h-7 bg-purple-600 rounded"></div> | |
| <div class="w-1 h-4 bg-purple-600 rounded"></div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="model-card p-4 rounded-lg cursor-pointer" onclick="selectModel('gemini')"> | |
| <div class="flex items-center justify-between mb-2"> | |
| <h4 class="font-semibold">Gemini Pro</h4> | |
| <span class="status-indicator w-2 h-2 bg-green-500 rounded-full"></span> | |
| </div> | |
| <p class="text-sm text-gray-600 mb-2">Google's AI</p> | |
| <div class="flex items-center justify-between"> | |
| <span class="text-xs text-gray-500">2.1ms avg</span> | |
| <div class="flex space-x-1"> | |
| <div class="w-1 h-4 bg-green-600 rounded"></div> | |
| <div class="w-1 h-5 bg-green-600 rounded"></div> | |
| <div class="w-1 h-3 bg-green-600 rounded"></div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="model-card p-4 rounded-lg cursor-pointer" onclick="selectModel('llama')"> | |
| <div class="flex items-center justify-between mb-2"> | |
| <h4 class="font-semibold">Llama 3</h4> | |
| <span class="status-indicator w-2 h-2 bg-yellow-500 rounded-full"></span> | |
| </div> | |
| <p class="text-sm text-gray-600 mb-2">Meta's open-source</p> | |
| <div class="flex items-center justify-between"> | |
| <span class="text-xs text-gray-500">3.5ms avg</span> | |
| <div class="flex space-x-1"> | |
| <div class="w-1 h-3 bg-orange-600 rounded"></div> | |
| <div class="w-1 h-4 bg-orange-600 rounded"></div> | |
| <div class="w-1 h-2 bg-orange-600 rounded"></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Chat Interface --> | |
| <div class="bg-white p-6 rounded-lg shadow-md"> | |
| <h3 class="text-lg font-semibold mb-4">Test Model</h3> | |
| <div id="chat-container" class="h-64 border rounded-lg mb-4 overflow-y-auto p-4"> | |
| <div id="chat-messages"></div> | |
| </div> | |
| <div class="flex space-x-2"> | |
| <input type="text" id="message-input" placeholder="Type your message..." | |
| class="flex-1 px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"> | |
| <button onclick="sendMessage()" class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700"> | |
| <i data-feather="send" class="h-4 w-4"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| </div> | |
| <!-- Model Modal --> | |
| <div id="modelModal" class="fixed inset-0 bg-black bg-opacity-50 hidden items-center justify-center"> | |
| <div class="bg-white p-8 rounded-lg max-w-md w-full"> | |
| <h3 id="modalTitle" class="text-xl font-bold mb-4">Model Details</h3> | |
| <div id="modalContent" class="space-y-4"> | |
| <!-- Content will be dynamically inserted --> | |
| </div> | |
| <button onclick="closeModal()" class="mt-4 px-4 py-2 bg-gray-600 text-white rounded-lg hover:bg-gray-700"> | |
| Close | |
| </button> | |
| </div> | |
| </div> | |
| <script> | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=basheer1414/test" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |