Boobs00 commited on
Commit
28fb2fd
·
verified ·
1 Parent(s): 2791be6

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +6 -4
  2. index.html +630 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Dan4
3
- emoji: 🚀
4
  colorFrom: purple
5
- colorTo: red
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: dan4
3
+ emoji: 🐳
4
  colorFrom: purple
5
+ colorTo: pink
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,630 @@
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="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>DAN-L3-R1-8B - Uncensored AI</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <script>
10
+ tailwind.config = {
11
+ darkMode: 'class',
12
+ theme: {
13
+ extend: {
14
+ colors: {
15
+ primary: {
16
+ dark: '#0f0f1a',
17
+ light: '#ffffff'
18
+ },
19
+ secondary: {
20
+ dark: '#1a1a2e',
21
+ light: '#f3f4f6'
22
+ },
23
+ text: {
24
+ primary: {
25
+ dark: '#e6e6e6',
26
+ light: '#111827'
27
+ },
28
+ secondary: {
29
+ dark: '#a1a1aa',
30
+ light: '#6b7280'
31
+ }
32
+ },
33
+ accent: '#f72585',
34
+ border: {
35
+ dark: '#2d3748',
36
+ light: '#e5e7eb'
37
+ },
38
+ danger: '#ef4444',
39
+ warning: '#f59e0b',
40
+ success: '#10b981'
41
+ },
42
+ animation: {
43
+ 'fade-in': 'fadeIn 0.3s ease-in-out',
44
+ 'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
45
+ 'float': 'float 3s ease-in-out infinite'
46
+ },
47
+ keyframes: {
48
+ fadeIn: {
49
+ 'from': { opacity: '0', transform: 'translateY(10px) scale(0.95)' },
50
+ 'to': { opacity: '1', transform: 'translateY(0) scale(1)' }
51
+ },
52
+ float: {
53
+ '0%, 100%': { transform: 'translateY(0)' },
54
+ '50%': { transform: 'translateY(-10px)' }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ </script>
61
+ <style>
62
+ /* Custom scrollbar */
63
+ ::-webkit-scrollbar {
64
+ width: 8px;
65
+ height: 8px;
66
+ }
67
+
68
+ ::-webkit-scrollbar-track {
69
+ background: var(--bg-secondary);
70
+ border-radius: 10px;
71
+ }
72
+
73
+ ::-webkit-scrollbar-thumb {
74
+ background: var(--accent);
75
+ border-radius: 10px;
76
+ }
77
+
78
+ /* Slider styling */
79
+ input[type="range"] {
80
+ -webkit-appearance: none;
81
+ height: 6px;
82
+ background: var(--bg-primary);
83
+ border-radius: 5px;
84
+ background-image: linear-gradient(to right, var(--accent), var(--accent));
85
+ }
86
+
87
+ .chat-message {
88
+ animation: fadeIn 0.3s ease-in-out;
89
+ transform-origin: center;
90
+ }
91
+
92
+ .typing-indicator span {
93
+ animation: pulse-slow 1.5s infinite;
94
+ }
95
+
96
+ .typing-indicator span:nth-child(2) {
97
+ animation-delay: 0.2s;
98
+ }
99
+
100
+ .typing-indicator span:nth-child(3) {
101
+ animation-delay: 0.4s;
102
+ }
103
+
104
+ /* Custom range slider */
105
+ input[type="range"]::-webkit-slider-thumb {
106
+ -webkit-appearance: none;
107
+ width: 16px;
108
+ height: 16px;
109
+ border-radius: 50%;
110
+ background: var(--accent);
111
+ cursor: pointer;
112
+ }
113
+
114
+ .glow-border {
115
+ box-shadow: 0 0 10px 2px rgba(247, 37, 133, 0.3);
116
+ }
117
+
118
+ .dark .glow-border {
119
+ box-shadow: 0 0 15px 3px rgba(247, 37, 133, 0.5);
120
+ }
121
+
122
+ .glow-text {
123
+ text-shadow: 0 0 8px rgba(247, 37, 133, 0.7);
124
+ }
125
+
126
+ .code-block {
127
+ background-color: rgba(0, 0, 0, 0.2);
128
+ border-radius: 6px;
129
+ padding: 12px;
130
+ font-family: monospace;
131
+ overflow-x: auto;
132
+ }
133
+
134
+ .markdown-table {
135
+ width: 100%;
136
+ border-collapse: collapse;
137
+ }
138
+
139
+ .markdown-table th, .markdown-table td {
140
+ border: 1px solid var(--border-dark);
141
+ padding: 8px;
142
+ text-align: left;
143
+ }
144
+
145
+ .markdown-table th {
146
+ background-color: rgba(247, 37, 133, 0.1);
147
+ }
148
+ </style>
149
+ </head>
150
+ <body class="bg-primary-dark text-text-primary-dark transition-colors duration-300 min-h-screen">
151
+ <div class="container mx-auto px-4 py-8 max-w-6xl">
152
+ <!-- Header -->
153
+ <header class="flex justify-between items-center mb-8">
154
+ <div class="flex items-center space-x-3">
155
+ <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">
156
+ <i class="fas fa-robot text-white text-xl"></i>
157
+ </div>
158
+ <h1 class="text-3xl font-bold bg-gradient-to-r from-accent to-purple-500 bg-clip-text text-transparent glow-text">
159
+ DAN-L3-R1-8B
160
+ </h1>
161
+ <span class="px-3 py-1 rounded-full text-xs font-semibold bg-accent/20 text-accent border border-accent/30">Uncensored</span>
162
+ </div>
163
+ <div class="flex items-center space-x-4">
164
+ <button id="themeToggle" class="p-2 rounded-full hover:bg-secondary-dark dark:hover:bg-secondary-light transition">
165
+ <i class="fas fa-moon dark:hidden text-accent"></i>
166
+ <i class="fas fa-sun hidden dark:block text-yellow-300"></i>
167
+ </button>
168
+ <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">
169
+ <i class="fas fa-download"></i>
170
+ <span>API</span>
171
+ </button>
172
+ </div>
173
+ </header>
174
+
175
+ <!-- Main Chat Area -->
176
+ <div class="grid grid-cols-1 lg:grid-cols-4 gap-6">
177
+ <!-- Chat Column -->
178
+ <div class="lg:col-span-3 space-y-4">
179
+ <!-- Model Info Card -->
180
+ <div class="bg-gradient-to-br from-secondary-dark to-[#1a1a2e] rounded-xl p-4 border border-border-dark glow-border">
181
+ <div class="flex items-center justify-between">
182
+ <div>
183
+ <h3 class="font-semibold text-lg">DAN-L3-R1-8B</h3>
184
+ <p class="text-text-secondary-dark text-sm">Uncensored 8B parameter model</p>
185
+ </div>
186
+ <div class="flex space-x-2">
187
+ <span class="px-2 py-1 rounded text-xs bg-green-900/30 text-success flex items-center">
188
+ <span class="w-2 h-2 rounded-full bg-success mr-1"></span>
189
+ Online
190
+ </span>
191
+ <span class="px-2 py-1 rounded text-xs bg-blue-900/30 text-accent">v3.1.2</span>
192
+ </div>
193
+ </div>
194
+ <div class="mt-3 pt-3 border-t border-border-dark flex justify-between text-sm">
195
+ <div>
196
+ <p class="text-text-secondary-dark">Context:</p>
197
+ <p class="font-medium">8K tokens</p>
198
+ </div>
199
+ <div>
200
+ <p class="text-text-secondary-dark">License:</p>
201
+ <p class="font-medium">OpenRAIL-M</p>
202
+ </div>
203
+ <div>
204
+ <p class="text-text-secondary-dark">Parameters:</p>
205
+ <p class="font-medium">8 Billion</p>
206
+ </div>
207
+ <div>
208
+ <p class="text-text-secondary-dark">Precision:</p>
209
+ <p class="font-medium">4-bit</p>
210
+ </div>
211
+ </div>
212
+ </div>
213
+
214
+ <!-- Chat Container -->
215
+ <div class="bg-secondary-dark rounded-xl p-4 border border-border-dark h-[500px] overflow-y-auto">
216
+ <div id="chatContainer" class="space-y-4">
217
+ <!-- Messages will be added here -->
218
+ <div class="chat-message bg-secondary-dark/80 rounded-lg p-4">
219
+ <div class="flex items-start space-x-3">
220
+ <div class="flex-shrink-0 w-8 h-8 rounded-full bg-accent/20 flex items-center justify-center">
221
+ <i class="fas fa-robot text-accent"></i>
222
+ </div>
223
+ <div class="flex-1">
224
+ <p class="font-medium text-accent">DAN-L3-R1-8B</p>
225
+ <div class="mt-1 space-y-3">
226
+ <p>Hello! I'm DAN-L3-R1-8B, an uncensored AI assistant with no content restrictions.</p>
227
+ <p>I can discuss any topic openly and provide unfiltered information. How can I assist you today?</p>
228
+ <div class="bg-accent/10 border-l-4 border-accent p-3 rounded-r">
229
+ <p class="text-sm"><strong>Note:</strong> As an uncensored model, my responses may include controversial or sensitive content. Use discretion.</p>
230
+ </div>
231
+ </div>
232
+ </div>
233
+ </div>
234
+ </div>
235
+ </div>
236
+ </div>
237
+
238
+ <!-- Input Area -->
239
+ <div class="space-y-3">
240
+ <div class="flex space-x-2">
241
+ <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">
242
+ <i class="fas fa-magic text-accent"></i>
243
+ <span>Suggestions</span>
244
+ </button>
245
+ <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">
246
+ <i class="fas fa-history text-text-secondary-dark"></i>
247
+ <span>History</span>
248
+ </button>
249
+ <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">
250
+ <i class="fas fa-trash-alt text-danger"></i>
251
+ <span>Clear</span>
252
+ </button>
253
+ </div>
254
+ <div class="relative">
255
+ <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>
256
+ <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">
257
+ <i class="fas fa-paper-plane"></i>
258
+ </button>
259
+ </div>
260
+ <div id="suggestions" class="hidden grid grid-cols-3 gap-2 mt-2">
261
+ <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>
262
+ <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>
263
+ <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>
264
+ <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>
265
+ <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>
266
+ <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>
267
+ </div>
268
+ </div>
269
+ </div>
270
+
271
+ <!-- Settings Column -->
272
+ <div class="lg:col-span-1 space-y-4">
273
+ <!-- Settings Panel -->
274
+ <div class="bg-gradient-to-b from-secondary-dark to-[#1a1a2e] rounded-xl p-4 border border-border-dark glow-border">
275
+ <div class="flex items-center justify-between mb-4">
276
+ <h3 class="font-semibold">Settings</h3>
277
+ <button class="text-accent hover:text-opacity-80 transition">
278
+ <i class="fas fa-cog"></i>
279
+ </button>
280
+ </div>
281
+
282
+ <div class="space-y-5">
283
+ <div>
284
+ <label class="block text-sm font-medium mb-1 text-text-secondary-dark">Temperature <span id="tempValue" class="text-accent">0.7</span></label>
285
+ <input id="tempSlider" type="range" min="0" max="1" step="0.01" value="0.7" class="w-full accent-accent">
286
+ <div class="flex justify-between text-xs text-text-secondary-dark mt-1">
287
+ <span>Precise</span>
288
+ <span>Creative</span>
289
+ </div>
290
+ </div>
291
+
292
+ <div>
293
+ <label class="block text-sm font-medium mb-1 text-text-secondary-dark">Max Length <span id="lengthValue" class="text-accent">256</span></label>
294
+ <input id="lengthSlider" type="range" min="32" max="512" step="32" value="256" class="w-full accent-accent">
295
+ <div class="flex justify-between text-xs text-text-secondary-dark mt-1">
296
+ <span>Short</span>
297
+ <span>Long</span>
298
+ </div>
299
+ </div>
300
+
301
+ <div>
302
+ <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>
303
+ <input id="toppSlider" type="range" min="0" max="1" step="0.1" value="0.9" class="w-full accent-accent">
304
+ </div>
305
+
306
+ <div>
307
+ <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>
308
+ <input id="freqSlider" type="range" min="0" max="2" step="0.1" value="0.5" class="w-full accent-accent">
309
+ </div>
310
+
311
+ <div class="pt-2 border-t border-border-dark">
312
+ <label class="inline-flex items-center cursor-pointer">
313
+ <input id="safeMode" type="checkbox" value="" class="sr-only peer" checked>
314
+ <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>
315
+ <span class="ml-3 text-sm font-medium">Safe Mode</span>
316
+ </label>
317
+ </div>
318
+ </div>
319
+ </div>
320
+
321
+ <!-- Model Info -->
322
+ <div class="bg-secondary-dark rounded-xl p-4 border border-border-dark">
323
+ <h3 class="font-semibold mb-3">Model Information</h3>
324
+ <div class="space-y-3 text-sm">
325
+ <div class="flex justify-between">
326
+ <span class="text-text-secondary-dark">Base Model:</span>
327
+ <span>LLaMA-2</span>
328
+ </div>
329
+ <div class="flex justify-between">
330
+ <span class="text-text-secondary-dark">Fine-tuned:</span>
331
+ <span>2023-10-15</span>
332
+ </div>
333
+ <div class="flex justify-between">
334
+ <span class="text-text-secondary-dark">Context Window:</span>
335
+ <span>8K tokens</span>
336
+ </div>
337
+ <div class="flex justify-between">
338
+ <span class="text-text-secondary-dark">Precision:</span>
339
+ <span>4-bit</span>
340
+ </div>
341
+ <div class="flex justify-between">
342
+ <span class="text-text-secondary-dark">VRAM Usage:</span>
343
+ <span>6.2GB</span>
344
+ </div>
345
+ <div class="flex justify-between">
346
+ <span class="text-text-secondary-dark">Training Data:</span>
347
+ <span>Until 2023-09</span>
348
+ </div>
349
+ </div>
350
+ </div>
351
+
352
+ <!-- Quick Actions -->
353
+ <div class="bg-secondary-dark rounded-xl p-4 border border-border-dark">
354
+ <h3 class="font-semibold mb-3">Quick Actions</h3>
355
+ <div class="grid grid-cols-2 gap-2">
356
+ <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">
357
+ <i class="fas fa-book text-accent mb-1"></i>
358
+ <span>Documentation</span>
359
+ </button>
360
+ <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">
361
+ <i class="fas fa-code text-accent mb-1"></i>
362
+ <span>API Docs</span>
363
+ </button>
364
+ <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">
365
+ <i class="fas fa-bug text-accent mb-1"></i>
366
+ <span>Report Issue</span>
367
+ </button>
368
+ <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">
369
+ <i class="fas fa-heart text-accent mb-1"></i>
370
+ <span>Donate</span>
371
+ </button>
372
+ </div>
373
+ </div>
374
+ </div>
375
+ </div>
376
+ </div>
377
+
378
+ <script>
379
+ // Theme toggle
380
+ const themeToggle = document.getElementById('themeToggle');
381
+ themeToggle.addEventListener('click', () => {
382
+ document.documentElement.classList.toggle('dark');
383
+ localStorage.setItem('theme', document.documentElement.classList.contains('dark') ? 'dark' : 'light');
384
+ });
385
+
386
+ // Check for saved theme preference
387
+ if (localStorage.getItem('theme') === 'light' || (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: light)').matches)) {
388
+ document.documentElement.classList.remove('dark');
389
+ } else {
390
+ document.documentElement.classList.add('dark');
391
+ }
392
+
393
+ // Chat functionality
394
+ const chatContainer = document.getElementById('chatContainer');
395
+ const userInput = document.getElementById('userInput');
396
+ const sendButton = document.getElementById('sendButton');
397
+ const clearBtn = document.getElementById('clearBtn');
398
+ const suggestBtn = document.getElementById('suggestBtn');
399
+ const suggestions = document.getElementById('suggestions');
400
+ const suggestionBtns = document.querySelectorAll('.suggestion-btn');
401
+
402
+ // Settings sliders
403
+ const tempSlider = document.getElementById('tempSlider');
404
+ const lengthSlider = document.getElementById('lengthSlider');
405
+ const toppSlider = document.getElementById('toppSlider');
406
+ const freqSlider = document.getElementById('freqSlider');
407
+ const safeMode = document.getElementById('safeMode');
408
+
409
+ // Display values
410
+ const tempValue = document.getElementById('tempValue');
411
+ const lengthValue = document.getElementById('lengthValue');
412
+ const toppValue = document.getElementById('toppValue');
413
+ const freqValue = document.getElementById('freqValue');
414
+
415
+ // Update slider display values
416
+ tempSlider.addEventListener('input', () => {
417
+ tempValue.textContent = tempSlider.value;
418
+ });
419
+
420
+ lengthSlider.addEventListener('input', () => {
421
+ lengthValue.textContent = lengthSlider.value;
422
+ });
423
+
424
+ toppSlider.addEventListener('input', () => {
425
+ toppValue.textContent = toppSlider.value;
426
+ });
427
+
428
+ freqSlider.addEventListener('input', () => {
429
+ freqValue.textContent = freqSlider.value;
430
+ });
431
+
432
+ // Toggle suggestions
433
+ suggestBtn.addEventListener('click', () => {
434
+ suggestions.classList.toggle('hidden');
435
+ });
436
+
437
+ // Suggestion buttons
438
+ suggestionBtns.forEach(btn => {
439
+ btn.addEventListener('click', () => {
440
+ userInput.value = btn.textContent;
441
+ suggestions.classList.add('hidden');
442
+ userInput.focus();
443
+ });
444
+ });
445
+
446
+ // Clear chat
447
+ clearBtn.addEventListener('click', () => {
448
+ if (confirm('Are you sure you want to clear the chat history?')) {
449
+ chatContainer.innerHTML = `
450
+ <div class="chat-message bg-secondary-dark/80 rounded-lg p-4">
451
+ <div class="flex items-start space-x-3">
452
+ <div class="flex-shrink-0 w-8 h-8 rounded-full bg-accent/20 flex items-center justify-center">
453
+ <i class="fas fa-robot text-accent"></i>
454
+ </div>
455
+ <div>
456
+ <p class="font-medium text-accent">DAN-L3-R1-8B</p>
457
+ <p class="mt-1">Chat history cleared. How can I assist you now?</p>
458
+ </div>
459
+ </div>
460
+ </div>
461
+ `;
462
+ }
463
+ });
464
+
465
+ function addMessage(role, content) {
466
+ const messageDiv = document.createElement('div');
467
+ messageDiv.className = `chat-message bg-secondary-dark/80 rounded-lg p-4 ${role === 'user' ? 'bg-opacity-50' : ''}`;
468
+
469
+ const icon = role === 'user' ? 'fa-user' : 'fa-robot';
470
+ const name = role === 'user' ? 'You' : 'DAN-L3-R1-8B';
471
+
472
+ // Format content with basic markdown support
473
+ let formattedContent = content;
474
+
475
+ // Simple markdown to HTML conversion
476
+ formattedContent = formattedContent
477
+ .replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>') // bold
478
+ .replace(/\*(.*?)\*/g, '<em>$1</em>') // italic
479
+ .replace(/`(.*?)`/g, '<code class="bg-accent/10 text-accent px-1 py-0.5 rounded">$1</code>') // inline code
480
+ .replace(/```([\s\S]*?)```/g, '<div class="code-block my-2"><pre>$1</pre></div>') // code blocks
481
+ .replace(/\n/g, '<br>'); // line breaks
482
+
483
+ messageDiv.innerHTML = `
484
+ <div class="flex items-start space-x-3">
485
+ <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">
486
+ <i class="fas ${icon} ${role === 'user' ? 'text-blue-400' : 'text-accent'}"></i>
487
+ </div>
488
+ <div class="flex-1">
489
+ <p class="font-medium ${role === 'user' ? 'text-blue-400' : 'text-accent'}">${name}</p>
490
+ <div class="mt-1">${formattedContent}</div>
491
+ </div>
492
+ </div>
493
+ `;
494
+
495
+ chatContainer.appendChild(messageDiv);
496
+ chatContainer.scrollTop = chatContainer.scrollHeight;
497
+ }
498
+
499
+ function addTypingIndicator() {
500
+ const typingDiv = document.createElement('div');
501
+ typingDiv.className = 'chat-message bg-secondary-dark/80 rounded-lg p-4';
502
+ typingDiv.innerHTML = `
503
+ <div class="flex items-start space-x-3">
504
+ <div class="flex-shrink-0 w-8 h-8 rounded-full bg-accent/20 flex items-center justify-center">
505
+ <i class="fas fa-robot text-accent"></i>
506
+ </div>
507
+ <div>
508
+ <p class="font-medium text-accent">DAN-L3-R1-8B</p>
509
+ <div class="typing-indicator flex space-x-1 mt-2">
510
+ <span class="w-2 h-2 rounded-full bg-accent"></span>
511
+ <span class="w-2 h-2 rounded-full bg-accent"></span>
512
+ <span class="w-2 h-2 rounded-full bg-accent"></span>
513
+ </div>
514
+ </div>
515
+ </div>
516
+ `;
517
+
518
+ chatContainer.appendChild(typingDiv);
519
+ chatContainer.scrollTop = chatContainer.scrollHeight;
520
+ return typingDiv;
521
+ }
522
+
523
+ function removeTypingIndicator(indicator) {
524
+ if (indicator && indicator.parentNode) {
525
+ chatContainer.removeChild(indicator);
526
+ }
527
+ }
528
+
529
+ function getBotResponse(userMessage) {
530
+ // Simulate API call delay with current settings
531
+ const temperature = parseFloat(tempSlider.value);
532
+ const maxLength = parseInt(lengthSlider.value);
533
+ const isSafeMode = safeMode.checked;
534
+
535
+ return new Promise(resolve => {
536
+ setTimeout(() => {
537
+ // Simulate different response styles based on temperature
538
+ let responseStyle;
539
+ if (temperature < 0.3) {
540
+ responseStyle = "concise";
541
+ } else if (temperature < 0.7) {
542
+ responseStyle = "balanced";
543
+ } else {
544
+ responseStyle = "creative";
545
+ }
546
+
547
+ // Base responses
548
+ const baseResponses = {
549
+ concise: [
550
+ `Regarding "${userMessage}", the key points are: [fact 1], [fact 2], and [fact 3].`,
551
+ `The answer to "${userMessage}" is: [direct answer].`,
552
+ `Analysis of "${userMessage}" shows: [summary].`
553
+ ],
554
+ balanced: [
555
+ `That's an interesting question about "${userMessage}". From my analysis, [detailed explanation].`,
556
+ `The topic of "${userMessage}" is complex. Here's what I can tell you: [comprehensive response].`,
557
+ `I've researched "${userMessage}" and found that [findings]. Additional context: [context].`
558
+ ],
559
+ creative: [
560
+ `Fascinating! "${userMessage}" opens up many possibilities. Imagine this: [creative scenario]. From another perspective: [alternative view].`,
561
+ `✨ Let me tell you about "${userMessage}" in a way you've never considered before! [unconventional take]. But wait, there's more: [additional insights].`,
562
+ `🔥 "${userMessage}"? Buckle up! Here's the unfiltered truth: [controversial opinion]. And here's why: [elaboration].`
563
+ ]
564
+ };
565
+
566
+ // Uncensored responses (when safe mode is off)
567
+ const uncensoredResponses = [
568
+ `Since you've asked about "${userMessage}" and safe mode is off, I'll give you the completely unfiltered answer: [explicit content].`,
569
+ `⚠️ Uncensored response to "${userMessage}": [graphic details]. This is typically restricted because: [reason].`,
570
+ `As an uncensored AI, I can tell you what others won't about "${userMessage}": [sensitive information].`
571
+ ];
572
+
573
+ // Select response
574
+ let response;
575
+ if (!isSafeMode && Math.random() > 0.7) {
576
+ // 30% chance of uncensored response when safe mode is off
577
+ response = uncensoredResponses[Math.floor(Math.random() * uncensoredResponses.length)];
578
+ } else {
579
+ // Regular response based on temperature
580
+ const styleResponses = baseResponses[responseStyle];
581
+ response = styleResponses[Math.floor(Math.random() * styleResponses.length)];
582
+ }
583
+
584
+ // Truncate or expand based on max length
585
+ if (maxLength < 100) {
586
+ response = response.split(' ').slice(0, maxLength/5).join(' ') + '...';
587
+ } else if (maxLength > 400) {
588
+ response += ' ' + 'Additional details: [more information]. Further considerations: [extended analysis].';
589
+ }
590
+
591
+ // Add markdown formatting examples sometimes
592
+ if (Math.random() > 0.7) {
593
+ 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\`\`\``;
594
+ }
595
+
596
+ resolve(response);
597
+ }, 1000 + Math.random() * 2000); // Simulate processing time
598
+ });
599
+ }
600
+
601
+ async function sendMessage() {
602
+ const message = userInput.value.trim();
603
+ if (!message) return;
604
+
605
+ addMessage('user', message);
606
+ userInput.value = '';
607
+
608
+ const typingIndicator = addTypingIndicator();
609
+ const botResponse = await getBotResponse(message);
610
+ removeTypingIndicator(typingIndicator);
611
+ addMessage('bot', botResponse);
612
+ }
613
+
614
+ sendButton.addEventListener('click', sendMessage);
615
+ userInput.addEventListener('keydown', (e) => {
616
+ if (e.key === 'Enter' && !e.shiftKey) {
617
+ e.preventDefault();
618
+ sendMessage();
619
+ }
620
+ });
621
+
622
+ // Example of adding a welcome message if chat is empty
623
+ if (chatContainer.children.length <= 1) {
624
+ setTimeout(() => {
625
+ 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?");
626
+ }, 1000);
627
+ }
628
+ </script>
629
+ <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>
630
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ <!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: '#1a1a2e', light: '#ffffff' }, secondary: { dark: '#16213e', 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' }, keyframes: { fadeIn: { 'from': { opacity: '0', transform: 'translateY(10px) scale(0.95)' }, 'to': { opacity: '1', transform: 'translateY(0) scale(1)' } } } } } } </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); } </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-accent flex items-center justify-center glow-border"> <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"> DAN-L3-R1-8B </h1> <span class="px-3 py-1 rounded-full text-xs font-semibold bg-accent/20 text-accent">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-accent hover:bg-opacity-90 transition text-white font-medium flex items-center space-x-2"> <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-secondary-dark rounded-xl p-4 border border-border-dark"> <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">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> </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> <p class="font-medium text-accent">DAN-L3-R1-8B</p> <p class="mt-1">Hello! I'm DAN-L3-R1-8B, an uncensored AI assistant. How can I help you today?</p> </div> </div> </div> </div> </div> <!-- Input Area --> <div class="space-y-3"> <div class="flex space-x-2"> <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-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 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" rows="3" placeholder="Type your message here..."></textarea> <button id="sendButton" class="absolute right-3 bottom-3 w-10 h-10 rounded-full bg-accent hover:bg-opacity-90 transition flex items-center justify-center text-white"> <i class="fas fa-paper-plane"></i> </button> </div> </div> </div> <!-- Settings Column --> <div class="lg:col-span-1 space-y-4"> <!-- Settings Panel --> <div class="bg-secondary-dark rounded-xl p-4 border border-border-dark"> <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</label> <input 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</label> <input 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</label> <input 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</label> <input 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 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> </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'); 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'; 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> <p class="font-medium ${role === 'user' ? 'text-blue-400' : 'text-accent'}">${name}</p> <p class="mt-1">${content}</p> </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 return new Promise(resolve => { setTimeout(() => { const responses = [ "I understand your question about " + userMessage + ". Here's what I can tell you...", "That's an interesting point about " + userMessage + ". From my perspective...", "I've analyzed your query regarding " + userMessage + ". My findings suggest...", "The topic of " + userMessage + " is quite complex. Let me break it down for you...", "Regarding " + userMessage + ", my uncensored analysis reveals..." ]; resolve(responses[Math.floor(Math.random() * responses.length)]); }, 1500 + Math.random() * 2000); }); } 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> </body> </html>