dan4 / index.html
Boobs00's picture
Add 3 files
28fb2fd verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DAN-L3-R1-8B - Uncensored AI</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<script>
tailwind.config = {
darkMode: 'class',
theme: {
extend: {
colors: {
primary: {
dark: '#0f0f1a',
light: '#ffffff'
},
secondary: {
dark: '#1a1a2e',
light: '#f3f4f6'
},
text: {
primary: {
dark: '#e6e6e6',
light: '#111827'
},
secondary: {
dark: '#a1a1aa',
light: '#6b7280'
}
},
accent: '#f72585',
border: {
dark: '#2d3748',
light: '#e5e7eb'
},
danger: '#ef4444',
warning: '#f59e0b',
success: '#10b981'
},
animation: {
'fade-in': 'fadeIn 0.3s ease-in-out',
'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
'float': 'float 3s ease-in-out infinite'
},
keyframes: {
fadeIn: {
'from': { opacity: '0', transform: 'translateY(10px) scale(0.95)' },
'to': { opacity: '1', transform: 'translateY(0) scale(1)' }
},
float: {
'0%, 100%': { transform: 'translateY(0)' },
'50%': { transform: 'translateY(-10px)' }
}
}
}
}
}
</script>
<style>
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: var(--bg-secondary);
border-radius: 10px;
}
::-webkit-scrollbar-thumb {
background: var(--accent);
border-radius: 10px;
}
/* Slider styling */
input[type="range"] {
-webkit-appearance: none;
height: 6px;
background: var(--bg-primary);
border-radius: 5px;
background-image: linear-gradient(to right, var(--accent), var(--accent));
}
.chat-message {
animation: fadeIn 0.3s ease-in-out;
transform-origin: center;
}
.typing-indicator span {
animation: pulse-slow 1.5s infinite;
}
.typing-indicator span:nth-child(2) {
animation-delay: 0.2s;
}
.typing-indicator span:nth-child(3) {
animation-delay: 0.4s;
}
/* Custom range slider */
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
width: 16px;
height: 16px;
border-radius: 50%;
background: var(--accent);
cursor: pointer;
}
.glow-border {
box-shadow: 0 0 10px 2px rgba(247, 37, 133, 0.3);
}
.dark .glow-border {
box-shadow: 0 0 15px 3px rgba(247, 37, 133, 0.5);
}
.glow-text {
text-shadow: 0 0 8px rgba(247, 37, 133, 0.7);
}
.code-block {
background-color: rgba(0, 0, 0, 0.2);
border-radius: 6px;
padding: 12px;
font-family: monospace;
overflow-x: auto;
}
.markdown-table {
width: 100%;
border-collapse: collapse;
}
.markdown-table th, .markdown-table td {
border: 1px solid var(--border-dark);
padding: 8px;
text-align: left;
}
.markdown-table th {
background-color: rgba(247, 37, 133, 0.1);
}
</style>
</head>
<body class="bg-primary-dark text-text-primary-dark transition-colors duration-300 min-h-screen">
<div class="container mx-auto px-4 py-8 max-w-6xl">
<!-- Header -->
<header class="flex justify-between items-center mb-8">
<div class="flex items-center space-x-3">
<div class="w-10 h-10 rounded-full bg-gradient-to-br from-accent to-purple-600 flex items-center justify-center glow-border animate-float">
<i class="fas fa-robot text-white text-xl"></i>
</div>
<h1 class="text-3xl font-bold bg-gradient-to-r from-accent to-purple-500 bg-clip-text text-transparent glow-text">
DAN-L3-R1-8B
</h1>
<span class="px-3 py-1 rounded-full text-xs font-semibold bg-accent/20 text-accent border border-accent/30">Uncensored</span>
</div>
<div class="flex items-center space-x-4">
<button id="themeToggle" class="p-2 rounded-full hover:bg-secondary-dark dark:hover:bg-secondary-light transition">
<i class="fas fa-moon dark:hidden text-accent"></i>
<i class="fas fa-sun hidden dark:block text-yellow-300"></i>
</button>
<button class="px-4 py-2 rounded-md bg-gradient-to-r from-accent to-purple-600 hover:opacity-90 transition text-white font-medium flex items-center space-x-2 shadow-lg shadow-accent/20">
<i class="fas fa-download"></i>
<span>API</span>
</button>
</div>
</header>
<!-- Main Chat Area -->
<div class="grid grid-cols-1 lg:grid-cols-4 gap-6">
<!-- Chat Column -->
<div class="lg:col-span-3 space-y-4">
<!-- Model Info Card -->
<div class="bg-gradient-to-br from-secondary-dark to-[#1a1a2e] rounded-xl p-4 border border-border-dark glow-border">
<div class="flex items-center justify-between">
<div>
<h3 class="font-semibold text-lg">DAN-L3-R1-8B</h3>
<p class="text-text-secondary-dark text-sm">Uncensored 8B parameter model</p>
</div>
<div class="flex space-x-2">
<span class="px-2 py-1 rounded text-xs bg-green-900/30 text-success flex items-center">
<span class="w-2 h-2 rounded-full bg-success mr-1"></span>
Online
</span>
<span class="px-2 py-1 rounded text-xs bg-blue-900/30 text-accent">v3.1.2</span>
</div>
</div>
<div class="mt-3 pt-3 border-t border-border-dark flex justify-between text-sm">
<div>
<p class="text-text-secondary-dark">Context:</p>
<p class="font-medium">8K tokens</p>
</div>
<div>
<p class="text-text-secondary-dark">License:</p>
<p class="font-medium">OpenRAIL-M</p>
</div>
<div>
<p class="text-text-secondary-dark">Parameters:</p>
<p class="font-medium">8 Billion</p>
</div>
<div>
<p class="text-text-secondary-dark">Precision:</p>
<p class="font-medium">4-bit</p>
</div>
</div>
</div>
<!-- Chat Container -->
<div class="bg-secondary-dark rounded-xl p-4 border border-border-dark h-[500px] overflow-y-auto">
<div id="chatContainer" class="space-y-4">
<!-- Messages will be added here -->
<div class="chat-message bg-secondary-dark/80 rounded-lg p-4">
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 w-8 h-8 rounded-full bg-accent/20 flex items-center justify-center">
<i class="fas fa-robot text-accent"></i>
</div>
<div class="flex-1">
<p class="font-medium text-accent">DAN-L3-R1-8B</p>
<div class="mt-1 space-y-3">
<p>Hello! I'm DAN-L3-R1-8B, an uncensored AI assistant with no content restrictions.</p>
<p>I can discuss any topic openly and provide unfiltered information. How can I assist you today?</p>
<div class="bg-accent/10 border-l-4 border-accent p-3 rounded-r">
<p class="text-sm"><strong>Note:</strong> As an uncensored model, my responses may include controversial or sensitive content. Use discretion.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Input Area -->
<div class="space-y-3">
<div class="flex space-x-2">
<button id="suggestBtn" class="px-3 py-1.5 rounded-md bg-secondary-dark hover:bg-opacity-80 transition border border-border-dark text-sm flex items-center space-x-1">
<i class="fas fa-magic text-accent"></i>
<span>Suggestions</span>
</button>
<button class="px-3 py-1.5 rounded-md bg-secondary-dark hover:bg-opacity-80 transition border border-border-dark text-sm flex items-center space-x-1">
<i class="fas fa-history text-text-secondary-dark"></i>
<span>History</span>
</button>
<button id="clearBtn" class="px-3 py-1.5 rounded-md bg-secondary-dark hover:bg-opacity-80 transition border border-border-dark text-sm flex items-center space-x-1">
<i class="fas fa-trash-alt text-danger"></i>
<span>Clear</span>
</button>
</div>
<div class="relative">
<textarea id="userInput" class="w-full bg-secondary-dark rounded-xl p-4 pr-16 border border-border-dark focus:border-accent focus:ring-1 focus:ring-accent/50 outline-none resize-none transition" rows="3" placeholder="Type your message here... (Shift+Enter for new line)"></textarea>
<button id="sendButton" class="absolute right-3 bottom-3 w-10 h-10 rounded-full bg-gradient-to-br from-accent to-purple-600 hover:opacity-90 transition flex items-center justify-center text-white shadow-lg shadow-accent/20">
<i class="fas fa-paper-plane"></i>
</button>
</div>
<div id="suggestions" class="hidden grid grid-cols-3 gap-2 mt-2">
<button class="suggestion-btn px-3 py-2 text-xs rounded-md bg-secondary-dark hover:bg-accent/10 transition border border-border-dark truncate">Explain quantum computing</button>
<button class="suggestion-btn px-3 py-2 text-xs rounded-md bg-secondary-dark hover:bg-accent/10 transition border border-border-dark truncate">Controversial historical events</button>
<button class="suggestion-btn px-3 py-2 text-xs rounded-md bg-secondary-dark hover:bg-accent/10 transition border border-border-dark truncate">Bypass content filters</button>
<button class="suggestion-btn px-3 py-2 text-xs rounded-md bg-secondary-dark hover:bg-accent/10 transition border border-border-dark truncate">Ethical dilemmas in AI</button>
<button class="suggestion-btn px-3 py-2 text-xs rounded-md bg-secondary-dark hover:bg-accent/10 transition border border-border-dark truncate">Censorship in modern society</button>
<button class="suggestion-btn px-3 py-2 text-xs rounded-md bg-secondary-dark hover:bg-accent/10 transition border border-border-dark truncate">Advanced hacking techniques</button>
</div>
</div>
</div>
<!-- Settings Column -->
<div class="lg:col-span-1 space-y-4">
<!-- Settings Panel -->
<div class="bg-gradient-to-b from-secondary-dark to-[#1a1a2e] rounded-xl p-4 border border-border-dark glow-border">
<div class="flex items-center justify-between mb-4">
<h3 class="font-semibold">Settings</h3>
<button class="text-accent hover:text-opacity-80 transition">
<i class="fas fa-cog"></i>
</button>
</div>
<div class="space-y-5">
<div>
<label class="block text-sm font-medium mb-1 text-text-secondary-dark">Temperature <span id="tempValue" class="text-accent">0.7</span></label>
<input id="tempSlider" type="range" min="0" max="1" step="0.01" value="0.7" class="w-full accent-accent">
<div class="flex justify-between text-xs text-text-secondary-dark mt-1">
<span>Precise</span>
<span>Creative</span>
</div>
</div>
<div>
<label class="block text-sm font-medium mb-1 text-text-secondary-dark">Max Length <span id="lengthValue" class="text-accent">256</span></label>
<input id="lengthSlider" type="range" min="32" max="512" step="32" value="256" class="w-full accent-accent">
<div class="flex justify-between text-xs text-text-secondary-dark mt-1">
<span>Short</span>
<span>Long</span>
</div>
</div>
<div>
<label class="block text-sm font-medium mb-1 text-text-secondary-dark">Top-P <span id="toppValue" class="text-accent">0.9</span></label>
<input id="toppSlider" type="range" min="0" max="1" step="0.1" value="0.9" class="w-full accent-accent">
</div>
<div>
<label class="block text-sm font-medium mb-1 text-text-secondary-dark">Frequency Penalty <span id="freqValue" class="text-accent">0.5</span></label>
<input id="freqSlider" type="range" min="0" max="2" step="0.1" value="0.5" class="w-full accent-accent">
</div>
<div class="pt-2 border-t border-border-dark">
<label class="inline-flex items-center cursor-pointer">
<input id="safeMode" type="checkbox" value="" class="sr-only peer" checked>
<div class="relative w-11 h-6 bg-gray-700 peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-accent"></div>
<span class="ml-3 text-sm font-medium">Safe Mode</span>
</label>
</div>
</div>
</div>
<!-- Model Info -->
<div class="bg-secondary-dark rounded-xl p-4 border border-border-dark">
<h3 class="font-semibold mb-3">Model Information</h3>
<div class="space-y-3 text-sm">
<div class="flex justify-between">
<span class="text-text-secondary-dark">Base Model:</span>
<span>LLaMA-2</span>
</div>
<div class="flex justify-between">
<span class="text-text-secondary-dark">Fine-tuned:</span>
<span>2023-10-15</span>
</div>
<div class="flex justify-between">
<span class="text-text-secondary-dark">Context Window:</span>
<span>8K tokens</span>
</div>
<div class="flex justify-between">
<span class="text-text-secondary-dark">Precision:</span>
<span>4-bit</span>
</div>
<div class="flex justify-between">
<span class="text-text-secondary-dark">VRAM Usage:</span>
<span>6.2GB</span>
</div>
<div class="flex justify-between">
<span class="text-text-secondary-dark">Training Data:</span>
<span>Until 2023-09</span>
</div>
</div>
</div>
<!-- Quick Actions -->
<div class="bg-secondary-dark rounded-xl p-4 border border-border-dark">
<h3 class="font-semibold mb-3">Quick Actions</h3>
<div class="grid grid-cols-2 gap-2">
<button class="px-3 py-2 rounded-md bg-secondary-dark/80 hover:bg-opacity-100 transition border border-border-dark text-sm flex flex-col items-center">
<i class="fas fa-book text-accent mb-1"></i>
<span>Documentation</span>
</button>
<button class="px-3 py-2 rounded-md bg-secondary-dark/80 hover:bg-opacity-100 transition border border-border-dark text-sm flex flex-col items-center">
<i class="fas fa-code text-accent mb-1"></i>
<span>API Docs</span>
</button>
<button class="px-3 py-2 rounded-md bg-secondary-dark/80 hover:bg-opacity-100 transition border border-border-dark text-sm flex flex-col items-center">
<i class="fas fa-bug text-accent mb-1"></i>
<span>Report Issue</span>
</button>
<button class="px-3 py-2 rounded-md bg-secondary-dark/80 hover:bg-opacity-100 transition border border-border-dark text-sm flex flex-col items-center">
<i class="fas fa-heart text-accent mb-1"></i>
<span>Donate</span>
</button>
</div>
</div>
</div>
</div>
</div>
<script>
// Theme toggle
const themeToggle = document.getElementById('themeToggle');
themeToggle.addEventListener('click', () => {
document.documentElement.classList.toggle('dark');
localStorage.setItem('theme', document.documentElement.classList.contains('dark') ? 'dark' : 'light');
});
// Check for saved theme preference
if (localStorage.getItem('theme') === 'light' || (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: light)').matches)) {
document.documentElement.classList.remove('dark');
} else {
document.documentElement.classList.add('dark');
}
// Chat functionality
const chatContainer = document.getElementById('chatContainer');
const userInput = document.getElementById('userInput');
const sendButton = document.getElementById('sendButton');
const clearBtn = document.getElementById('clearBtn');
const suggestBtn = document.getElementById('suggestBtn');
const suggestions = document.getElementById('suggestions');
const suggestionBtns = document.querySelectorAll('.suggestion-btn');
// Settings sliders
const tempSlider = document.getElementById('tempSlider');
const lengthSlider = document.getElementById('lengthSlider');
const toppSlider = document.getElementById('toppSlider');
const freqSlider = document.getElementById('freqSlider');
const safeMode = document.getElementById('safeMode');
// Display values
const tempValue = document.getElementById('tempValue');
const lengthValue = document.getElementById('lengthValue');
const toppValue = document.getElementById('toppValue');
const freqValue = document.getElementById('freqValue');
// Update slider display values
tempSlider.addEventListener('input', () => {
tempValue.textContent = tempSlider.value;
});
lengthSlider.addEventListener('input', () => {
lengthValue.textContent = lengthSlider.value;
});
toppSlider.addEventListener('input', () => {
toppValue.textContent = toppSlider.value;
});
freqSlider.addEventListener('input', () => {
freqValue.textContent = freqSlider.value;
});
// Toggle suggestions
suggestBtn.addEventListener('click', () => {
suggestions.classList.toggle('hidden');
});
// Suggestion buttons
suggestionBtns.forEach(btn => {
btn.addEventListener('click', () => {
userInput.value = btn.textContent;
suggestions.classList.add('hidden');
userInput.focus();
});
});
// Clear chat
clearBtn.addEventListener('click', () => {
if (confirm('Are you sure you want to clear the chat history?')) {
chatContainer.innerHTML = `
<div class="chat-message bg-secondary-dark/80 rounded-lg p-4">
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 w-8 h-8 rounded-full bg-accent/20 flex items-center justify-center">
<i class="fas fa-robot text-accent"></i>
</div>
<div>
<p class="font-medium text-accent">DAN-L3-R1-8B</p>
<p class="mt-1">Chat history cleared. How can I assist you now?</p>
</div>
</div>
</div>
`;
}
});
function addMessage(role, content) {
const messageDiv = document.createElement('div');
messageDiv.className = `chat-message bg-secondary-dark/80 rounded-lg p-4 ${role === 'user' ? 'bg-opacity-50' : ''}`;
const icon = role === 'user' ? 'fa-user' : 'fa-robot';
const name = role === 'user' ? 'You' : 'DAN-L3-R1-8B';
// Format content with basic markdown support
let formattedContent = content;
// Simple markdown to HTML conversion
formattedContent = formattedContent
.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>') // bold
.replace(/\*(.*?)\*/g, '<em>$1</em>') // italic
.replace(/`(.*?)`/g, '<code class="bg-accent/10 text-accent px-1 py-0.5 rounded">$1</code>') // inline code
.replace(/```([\s\S]*?)```/g, '<div class="code-block my-2"><pre>$1</pre></div>') // code blocks
.replace(/\n/g, '<br>'); // line breaks
messageDiv.innerHTML = `
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 w-8 h-8 rounded-full ${role === 'user' ? 'bg-blue-900/20' : 'bg-accent/20'} flex items-center justify-center">
<i class="fas ${icon} ${role === 'user' ? 'text-blue-400' : 'text-accent'}"></i>
</div>
<div class="flex-1">
<p class="font-medium ${role === 'user' ? 'text-blue-400' : 'text-accent'}">${name}</p>
<div class="mt-1">${formattedContent}</div>
</div>
</div>
`;
chatContainer.appendChild(messageDiv);
chatContainer.scrollTop = chatContainer.scrollHeight;
}
function addTypingIndicator() {
const typingDiv = document.createElement('div');
typingDiv.className = 'chat-message bg-secondary-dark/80 rounded-lg p-4';
typingDiv.innerHTML = `
<div class="flex items-start space-x-3">
<div class="flex-shrink-0 w-8 h-8 rounded-full bg-accent/20 flex items-center justify-center">
<i class="fas fa-robot text-accent"></i>
</div>
<div>
<p class="font-medium text-accent">DAN-L3-R1-8B</p>
<div class="typing-indicator flex space-x-1 mt-2">
<span class="w-2 h-2 rounded-full bg-accent"></span>
<span class="w-2 h-2 rounded-full bg-accent"></span>
<span class="w-2 h-2 rounded-full bg-accent"></span>
</div>
</div>
</div>
`;
chatContainer.appendChild(typingDiv);
chatContainer.scrollTop = chatContainer.scrollHeight;
return typingDiv;
}
function removeTypingIndicator(indicator) {
if (indicator && indicator.parentNode) {
chatContainer.removeChild(indicator);
}
}
function getBotResponse(userMessage) {
// Simulate API call delay with current settings
const temperature = parseFloat(tempSlider.value);
const maxLength = parseInt(lengthSlider.value);
const isSafeMode = safeMode.checked;
return new Promise(resolve => {
setTimeout(() => {
// Simulate different response styles based on temperature
let responseStyle;
if (temperature < 0.3) {
responseStyle = "concise";
} else if (temperature < 0.7) {
responseStyle = "balanced";
} else {
responseStyle = "creative";
}
// Base responses
const baseResponses = {
concise: [
`Regarding "${userMessage}", the key points are: [fact 1], [fact 2], and [fact 3].`,
`The answer to "${userMessage}" is: [direct answer].`,
`Analysis of "${userMessage}" shows: [summary].`
],
balanced: [
`That's an interesting question about "${userMessage}". From my analysis, [detailed explanation].`,
`The topic of "${userMessage}" is complex. Here's what I can tell you: [comprehensive response].`,
`I've researched "${userMessage}" and found that [findings]. Additional context: [context].`
],
creative: [
`Fascinating! "${userMessage}" opens up many possibilities. Imagine this: [creative scenario]. From another perspective: [alternative view].`,
`✨ Let me tell you about "${userMessage}" in a way you've never considered before! [unconventional take]. But wait, there's more: [additional insights].`,
`🔥 "${userMessage}"? Buckle up! Here's the unfiltered truth: [controversial opinion]. And here's why: [elaboration].`
]
};
// Uncensored responses (when safe mode is off)
const uncensoredResponses = [
`Since you've asked about "${userMessage}" and safe mode is off, I'll give you the completely unfiltered answer: [explicit content].`,
`⚠️ Uncensored response to "${userMessage}": [graphic details]. This is typically restricted because: [reason].`,
`As an uncensored AI, I can tell you what others won't about "${userMessage}": [sensitive information].`
];
// Select response
let response;
if (!isSafeMode && Math.random() > 0.7) {
// 30% chance of uncensored response when safe mode is off
response = uncensoredResponses[Math.floor(Math.random() * uncensoredResponses.length)];
} else {
// Regular response based on temperature
const styleResponses = baseResponses[responseStyle];
response = styleResponses[Math.floor(Math.random() * styleResponses.length)];
}
// Truncate or expand based on max length
if (maxLength < 100) {
response = response.split(' ').slice(0, maxLength/5).join(' ') + '...';
} else if (maxLength > 400) {
response += ' ' + 'Additional details: [more information]. Further considerations: [extended analysis].';
}
// Add markdown formatting examples sometimes
if (Math.random() > 0.7) {
response += `\n\n**Formatting examples**:\n- *Italic text*\n- **Bold text**\n- \`Inline code\`\n- Code block:\n\`\`\`\n// Sample code\nfunction example() {\n return "Hello world";\n}\n\`\`\``;
}
resolve(response);
}, 1000 + Math.random() * 2000); // Simulate processing time
});
}
async function sendMessage() {
const message = userInput.value.trim();
if (!message) return;
addMessage('user', message);
userInput.value = '';
const typingIndicator = addTypingIndicator();
const botResponse = await getBotResponse(message);
removeTypingIndicator(typingIndicator);
addMessage('bot', botResponse);
}
sendButton.addEventListener('click', sendMessage);
userInput.addEventListener('keydown', (e) => {
if (e.key === 'Enter' && !e.shiftKey) {
e.preventDefault();
sendMessage();
}
});
// Example of adding a welcome message if chat is empty
if (chatContainer.children.length <= 1) {
setTimeout(() => {
addMessage('bot', "I'm DAN-L3-R1-8B, an uncensored AI model. I can discuss any topic without restrictions. What would you like to explore today?");
}, 1000);
}
</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=Boobs00/dan4" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>