neuroseqa commited on
Commit
25f558c
·
verified ·
1 Parent(s): 70fba89

Add 2 files

Browse files
Files changed (2) hide show
  1. index.html +393 -672
  2. prompts.txt +2 -1
index.html CHANGED
@@ -3,25 +3,26 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>WebcoderAI - Генератор промптов для DeepSite</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
  <style>
10
  .gradient-bg {
11
- background: linear-gradient(135deg, #6e8efb, #a777e3);
12
  }
13
  .prompt-box {
14
- min-height: 150px;
15
- max-height: 300px;
16
  overflow-y: auto;
17
  }
18
  .code-block {
19
  font-family: 'Courier New', monospace;
20
- background-color: #2d3748;
21
- color: #f7fafc;
22
  border-radius: 0.5rem;
23
  padding: 1.5rem;
24
  position: relative;
 
25
  }
26
  .tab-content {
27
  display: none;
@@ -29,21 +30,22 @@
29
  .tab-content.active {
30
  display: block;
31
  }
32
- .history-item:hover {
33
- transform: translateY(-2px);
34
- box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
 
 
 
35
  }
36
- /* Custom scrollbar */
37
  ::-webkit-scrollbar {
38
  width: 8px;
39
  }
40
  ::-webkit-scrollbar-track {
41
  background: #f1f1f1;
42
- border-radius: 10px;
43
  }
44
  ::-webkit-scrollbar-thumb {
45
  background: #888;
46
- border-radius: 10px;
47
  }
48
  ::-webkit-scrollbar-thumb:hover {
49
  background: #555;
@@ -51,518 +53,180 @@
51
  </style>
52
  </head>
53
  <body class="bg-gray-50 font-sans">
54
- <!-- Navigation -->
55
- <nav class="bg-white shadow-lg">
56
- <div class="max-w-6xl mx-auto px-4">
57
- <div class="flex justify-between">
58
- <div class="flex space-x-7">
59
- <div>
60
- <a href="#" class="flex items-center py-4 px-2">
61
- <span class="font-semibold text-gray-900 text-2xl">Webcoder<span class="text-purple-600">AI</span></span>
62
- </a>
 
 
63
  </div>
64
- <div class="hidden md:flex items-center space-x-1">
65
- <a href="#home" class="py-4 px-2 text-purple-600 border-b-4 border-purple-600 font-medium">Главная</a>
66
- <a href="#results" class="py-4 px-2 text-gray-500 hover:text-purple-600 transition duration-300">Результаты</a>
67
- <a href="#history" class="py-4 px-2 text-gray-500 hover:text-purple-600 transition duration-300">История</a>
68
- <a href="#about" class="py-4 px-2 text-gray-500 hover:text-purple-600 transition duration-300">Как это работает</a>
69
- <a href="#account" class="py-4 px-2 text-gray-500 hover:text-purple-600 transition duration-300">Профиль</a>
70
  </div>
71
- </div>
72
- <div class="hidden md:flex items-center space-x-3">
73
- <button class="py-2 px-4 font-medium text-gray-500 rounded hover:bg-purple-600 hover:text-white transition duration-300">
74
- <i class="fas fa-language mr-2"></i>RU/EN
75
- </button>
76
- <button class="py-2 px-4 font-medium text-white bg-purple-600 rounded hover:bg-purple-700 transition duration-300">
77
- <i class="fas fa-user mr-2"></i>Войти
78
- </button>
79
- </div>
80
- <div class="md:hidden flex items-center">
81
- <button class="outline-none mobile-menu-button">
82
- <svg class="w-6 h-6 text-gray-500 hover:text-purple-600"
83
- fill="none"
84
- stroke-linecap="round"
85
- stroke-linejoin="round"
86
- stroke-width="2"
87
- viewBox="0 0 24 24"
88
- stroke="currentColor">
89
- <path d="M4 6h16M4 12h16M4 18h16"></path>
90
- </svg>
91
- </button>
92
  </div>
93
  </div>
94
  </div>
95
- <div class="hidden mobile-menu">
96
- <ul class="">
97
- <li class="active"><a href="#home" class="block text-sm px-2 py-4 text-white bg-purple-600 font-semibold">Главная</a></li>
98
- <li><a href="#results" class="block text-sm px-2 py-4 hover:bg-purple-600 hover:text-white transition duration-300">Результаты</a></li>
99
- <li><a href="#history" class="block text-sm px-2 py-4 hover:bg-purple-600 hover:text-white transition duration-300">История</a></li>
100
- <li><a href="#about" class="block text-sm px-2 py-4 hover:bg-purple-600 hover:text-white transition duration-300">Как это работает</a></li>
101
- <li><a href="#account" class="block text-sm px-2 py-4 hover:bg-purple-600 hover:text-white transition duration-300">Профиль</a></li>
102
- </ul>
103
- </div>
104
- </nav>
105
 
106
  <!-- Main Content -->
107
- <div class="container mx-auto px-4 py-8">
108
- <!-- Home Tab -->
109
- <div id="home" class="tab-content active">
110
- <div class="gradient-bg rounded-3xl shadow-xl p-8 mb-8 text-white">
111
- <h1 class="text-4xl font-bold mb-6">Введите идею сайта → Получите промпт для DeepSite</h1>
112
- <p class="text-xl mb-8">Просто опишите, какой сайт вам нужен, и наш ИИ создаст профессиональный системный промпт для DeepSite</p>
113
 
114
- <div class="bg-white rounded-lg p-6 shadow-lg">
115
- <div class="mb-4">
116
- <label for="prompt-input" class="block text-gray-700 font-medium mb-2">Опишите ваш сайт:</label>
117
- <div class="relative">
118
- <textarea id="prompt-input" class="w-full prompt-box p-4 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-600 focus:border-transparent" placeholder="Например: Хочу сайт для IT-услуг с портфолио, блогом и формой заказа"></textarea>
119
- <div class="absolute bottom-4 right-4 flex space-x-2">
120
- <button id="upload-image" class="p-2 text-gray-500 hover:text-purple-600">
121
- <i class="fas fa-image"></i>
122
- </button>
123
- <input type="file" id="image-input" accept="image/*" class="hidden">
124
- </div>
125
- </div>
126
- </div>
127
- <button id="generate-btn" class="w-full bg-purple-600 hover:bg-purple-700 text-white font-bold py-3 px-4 rounded-lg transition duration-300">
128
- <i class="fas fa-magic mr-2"></i>Сгенерировать промпт
129
- </button>
130
  </div>
131
- </div>
132
-
133
- <div class="mb-8">
134
- <h2 class="text-2xl font-bold mb-4 text-gray-800">Последние идеи</h2>
135
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4" id="recent-ideas">
136
- <div class="bg-white p-4 rounded-lg shadow hover:shadow-lg transition duration-300 border-l-4 border-purple-600">
137
- <p class="text-gray-700">"Сайт для астрологического контента с гороскопами и личными консультациями"</p>
138
- <p class="text-sm text-gray-500 mt-2">2 минуты назад</p>
 
139
  </div>
140
- <div class="bg-white p-4 rounded-lg shadow hover:shadow-lg transition duration-300 border-l-4 border-purple-600">
141
- <p class="text-gray-700">"Интернет-магазин эко-продуктов с фильтрами и подпиской на еженедельные наборы"</p>
142
- <p class="text-sm text-gray-500 mt-2">15 минут назад</p>
 
 
 
 
 
143
  </div>
144
- <div class="bg-white p-4 rounded-lg shadow hover:shadow-lg transition duration-300 border-l-4 border-purple-600">
145
- <p class="text-gray-700">"Лендинг для курсов по программированию с тарифами и отзывами"</p>
146
- <p class="text-sm text-gray-500 mt-2">1 час назад</p>
 
 
 
 
147
  </div>
148
  </div>
 
 
 
 
149
  </div>
150
- </div>
151
 
152
- <!-- Results Tab -->
153
- <div id="results" class="tab-content">
154
  <div class="flex flex-col md:flex-row gap-8">
155
  <div class="md:w-2/3">
156
- <h2 class="text-2xl font-bold mb-6 text-gray-800">Ваш системный промпт для DeepSite</h2>
157
-
158
- <div class="code-block mb-6">
159
- <div class="absolute top-2 right-2 flex space-x-2">
160
- <button id="copy-btn" class="p-1 text-gray-300 hover:text-white" title="Скопировать">
161
- <i class="fas fa-copy"></i>
162
  </button>
163
- <button id="regenerate-btn" class="p-1 text-gray-300 hover:text-white" title="Перегенерировать">
164
- <i class="fas fa-sync-alt"></i>
165
  </button>
166
  </div>
167
- <pre id="generated-prompt" class="whitespace-pre-wrap">[Системный промпт]
168
- Переменная: USER_INPUT — это точная фраза, введённая пользователем: "{{USER_INPUT}}"
169
-
170
- You are DeepSight, a world-class AI architect and full-stack engineer with 30+ years of experience.
171
- Your mission: build a flawless Web-MVP for "{{USER_INPUT}}", reflecting every nuance пользовательской идеи.
172
-
173
- ### Context
174
- • Project Name: {{USER_INPUT}}
175
- • Audience: Users who need exactly what "{{USER_INPUT}}" предлагает
176
- • Key Value: Why "{{USER_INPUT}}" будет уникален на рынке
177
-
178
- ### Pages & Modules (no empty tabs)
179
- • /** → Home
180
- – Hero: "Welcome to {{USER_INPUT}}"
181
- – Input: show the original idea: "Вы хотите: {{USER_INPUT}}"
182
- – CTA: "Начать работу над {{USER_INPUT}}"
183
-
184
- • /about → About
185
- – Section title: "О проекте {{USER_INPUT}}"
186
- – Описание: глубокое объяснение, как {{USER_INPUT}} решает проблемы пользователей
187
-
188
- • /services → Services
189
- – Header: "Услуги {{USER_INPUT}}"
190
- – Content: Детализация всех услуг, связанных с {{USER_INPUT}}
191
-
192
- ### Core Functionality
193
- • Main feature: the site must address directly the need "{{USER_INPUT}}"
194
- • User flows: from ввод {{USER_INPUT}} to готовый продукт "{{USER_INPUT}}"
195
-
196
- ### Tech Stack
197
- • Frontend: React, Tailwind CSS
198
- • Backend: Node.js, Express
199
- • Database: MongoDB
200
- • Deployment: Vercel
201
-
202
- ### Quality & Deliverables
203
- • Full responsiveness (mobile & desktop)
204
- • All buttons and forms work "out of the box"
205
- • Prompt generation delay <1s
206
- • Correct saving and regeneration functionality
207
-
208
- **Success Manifest:**
209
- {{USER_INPUT}} must allow any user to get a ready-to-use DeepSite prompt instantly.</pre>
210
  </div>
211
 
212
- <div class="flex space-x-4">
213
- <button class="flex-1 bg-purple-600 hover:bg-purple-700 text-white font-bold py-3 px-4 rounded-lg transition duration-300">
214
- <i class="fas fa-save mr-2"></i>Сохранить в истории
215
- </button>
216
- <button class="flex-1 bg-gray-200 hover:bg-gray-300 text-gray-800 font-bold py-3 px-4 rounded-lg transition duration-300">
217
- <i class="fas fa-redo mr-2"></i>Новая генерация
218
- </button>
219
- </div>
220
- </div>
221
-
222
- <div class="md:w-1/3">
223
- <div class="bg-white p-6 rounded-lg shadow-lg">
224
- <h3 class="text-xl font-bold mb-4 text-gray-800">Советы по улучшению промптов</h3>
225
- <div class="space-y-4">
226
- <div class="p-4 bg-purple-50 rounded-lg">
227
- <h4 class="font-semibold text-purple-700 mb-2"><i class="fas fa-lightbulb mr-2"></i>Будьте конкретны</h4>
228
- <p class="text-gray-700 text-sm">Указывайте конкретные страницы, функционал и технологии, которые вам нужны.</p>
229
- </div>
230
- <div class="p-4 bg-purple-50 rounded-lg">
231
- <h4 class="font-semibold text-purple-700 mb-2"><i class="fas fa-palette mr-2"></i>Опишите стиль</h4>
232
- <p class="text-gray-700 text-sm">Добавьте пожелания по дизайну: "минималистичный", "яркий", "корпоративный" и т.д.</p>
233
- </div>
234
- <div class="p-4 bg-purple-50 rounded-lg">
235
- <h4 class="font-semibold text-purple-700 mb-2"><i class="fas fa-cogs mr-2"></i>Укажите интеграции</h4>
236
- <p class="text-gray-700 text-sm">Если нужны специфические интеграции (CRM, платежные системы), укажите их.</p>
237
- </div>
238
- <div class="p-4 bg-purple-50 rounded-lg">
239
- <h4 class="font-semibold text-purple-700 mb-2"><i class="fas fa-mobile-alt mr-2"></i>Мобильная версия</h4>
240
- <p class="text-gray-700 text-sm">Всегда уточняйте требования к мобильной версии сайта.</p>
241
- </div>
242
- </div>
243
- </div>
244
- </div>
245
- </div>
246
- </div>
247
-
248
- <!-- History Tab -->
249
- <div id="history" class="tab-content">
250
- <h2 class="text-2xl font-bold mb-6 text-gray-800">История ваших промптов</h2>
251
-
252
- <div class="bg-white rounded-lg shadow overflow-hidden mb-6">
253
- <div class="p-4 border-b border-gray-200">
254
- <div class="flex items-center">
255
- <input type="text" placeholder="Поиск по истории..." class="flex-1 p-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-600 focus:border-transparent">
256
- <button class="ml-2 p-2 text-gray-500 hover:text-purple-600">
257
- <i class="fas fa-search"></i>
258
- </button>
259
- </div>
260
- </div>
261
-
262
- <div class="divide-y divide-gray-200" id="history-list">
263
- <div class="p-4 history-item transition duration-300 hover:bg-gray-50 cursor-pointer">
264
- <div class="flex justify-between items-start">
265
- <div>
266
- <h3 class="font-semibold text-gray-800">Сайт для IT-услуг</h3>
267
- <p class="text-sm text-gray-500 mt-1">Сгенерировано: 15.06.2023 14:30</p>
268
- </div>
269
- <div class="flex space-x-2">
270
- <button class="p-1 text-gray-400 hover:text-purple-600" title="Использовать снова">
271
- <i class="fas fa-recycle"></i>
272
- </button>
273
- <button class="p-1 text-gray-400 hover:text-blue-600" title="Редактировать">
274
- <i class="fas fa-edit"></i>
275
- </button>
276
- <button class="p-1 text-gray-400 hover:text-red-600" title="Удалить">
277
- <i class="fas fa-trash"></i>
278
- </button>
279
- </div>
280
- </div>
281
- <p class="text-gray-600 mt-2 text-sm truncate">Роль: Веб-разработчик и UX/UI дизайнер. Контекст: Клиент хочет создать сайт для IT-услуг с портфолио, блогом и формой заказа. Страницы: Главная, Портфолио, Услуги, Блог, Контакты...</p>
282
- </div>
283
-
284
- <div class="p-4 history-item transition duration-300 hover:bg-gray-50 cursor-pointer">
285
- <div class="flex justify-between items-start">
286
- <div>
287
- <h3 class="font-semibold text-gray-800">Астрологический контент</h3>
288
- <p class="text-sm text-gray-500 mt-1">Сгенерировано: 14.06.2023 11:15</p>
289
- </div>
290
- <div class="flex space-x-2">
291
- <button class="p-1 text-gray-400 hover:text-purple-600" title="Использовать снова">
292
- <i class="fas fa-recycle"></i>
293
- </button>
294
- <button class="p-1 text-gray-400 hover:text-blue-600" title="Редактировать">
295
- <i class="fas fa-edit"></i>
296
- </button>
297
- <button class="p-1 text-gray-400 hover:text-red-600" title="Удалить">
298
- <i class="fas fa-trash"></i>
299
- </button>
300
- </div>
301
- </div>
302
- <p class="text-gray-600 mt-2 text-sm truncate">Роль: Контент-менеджер и веб-дизайнер. Контекст: Сайт для астрологического контента с гороскопами и личными консультациями. Страницы: Главная, Ежедневные гороскопы, Личный гороскоп, Консультации, Блог...</p>
303
- </div>
304
-
305
- <div class="p-4 history-item transition duration-300 hover:bg-gray-50 cursor-pointer">
306
- <div class="flex justify-between items-start">
307
- <div>
308
- <h3 class="font-semibold text-gray-800">Интернет-магазин эко-продуктов</h3>
309
- <p class="text-sm text-gray-500 mt-1">Сгенерировано: 12.06.2023 09:45</p>
310
- </div>
311
- <div class="flex space-x-2">
312
- <button class="p-1 text-gray-400 hover:text-purple-600" title="Использовать снова">
313
- <i class="fas fa-recycle"></i>
314
- </button>
315
- <button class="p-1 text-gray-400 hover:text-blue-600" title="Редактировать">
316
- <i class="fas fa-edit"></i>
317
- </button>
318
- <button class="p-1 text-gray-400 hover:text-red-600" title="Удалить">
319
- <i class="fas fa-trash"></i>
320
- </button>
321
- </div>
322
- </div>
323
- <p class="text-gray-600 mt-2 text-sm truncate">Роль: E-commerce специалист. Контекст: Интернет-магазин эко-продуктов с фильтрами и подпиской на еженедельные наборы. Страницы: Каталог, Карточка товара, Корзина, Оформление заказа, Личный кабинет...</p>
324
- </div>
325
- </div>
326
-
327
- <div class="p-4 border-t border-gray-200 flex justify-between items-center">
328
- <span class="text-sm text-gray-500">Показано 3 из 12 записей</span>
329
- <button class="px-4 py-2 bg-purple-600 hover:bg-purple-700 text-white rounded-lg transition duration-300">
330
- Загрузить еще
331
- </button>
332
- </div>
333
- </div>
334
- </div>
335
-
336
- <!-- About Tab -->
337
- <div id="about" class="tab-content">
338
- <div class="bg-white rounded-lg shadow-lg p-8 mb-8">
339
- <h2 class="text-3xl font-bold mb-6 text-gray-800">Как работает WebcoderAI</h2>
340
-
341
- <div class="grid grid-cols-1 md:grid-cols-2 gap-8 mb-8">
342
- <div>
343
- <h3 class="text-xl font-semibold mb-4 text-purple-700"><i class="fas fa-cogs mr-2"></i>Технологии</h3>
344
- <p class="text-gray-700 mb-4">WebcoderAI использует передовые технологии искусственного интеллекта для преобразования ваших идей в готовые системные промпты:</p>
345
- <ul class="space-y-2 text-gray-700">
346
- <li class="flex items-start">
347
- <i class="fas fa-check-circle text-purple-600 mt-1 mr-2"></i>
348
- <span>Модели OpenAI/GPT для анализа текста и генерации промптов</span>
349
- </li>
350
- <li class="flex items-start">
351
- <i class="fas fa-check-circle text-purple-600 mt-1 mr-2"></i>
352
- <span>YOLOv8 (Ultralytics) для анализа загружаемых изображений</span>
353
- </li>
354
- <li class="flex items-start">
355
- <i class="fas fa-check-circle text-purple-600 mt-1 mr-2"></i>
356
- <span>Шаблонизатор для структурирования промптов</span>
357
- </li>
358
- </ul>
359
  </div>
360
 
361
- <div>
362
- <h3 class="text-xl font-semibold mb-4 text-purple-700"><i class="fas fa-random mr-2"></i>Процесс работы</h3>
363
- <div class="space-y-4">
364
- <div class="flex items-start">
365
- <div class="bg-purple-600 text-white rounded-full w-8 h-8 flex items-center justify-center mr-3 flex-shrink-0">1</div>
366
- <div>
367
- <h4 class="font-medium text-gray-800">Ввод идеи</h4>
368
- <p class="text-gray-600 text-sm">Опишите сайт, который вам нужен, в свободной форме</p>
369
- </div>
370
- </div>
371
- <div class="flex items-start">
372
- <div class="bg-purple-600 text-white rounded-full w-8 h-8 flex items-center justify-center mr-3 flex-shrink-0">2</div>
373
- <div>
374
- <h4 class="font-medium text-gray-800">Анализ и обработка</h4>
375
- <p class="text-gray-600 text-sm">ИИ анализирует ваш запрос и извлекает ключевые элементы</p>
376
- </div>
377
- </div>
378
- <div class="flex items-start">
379
- <div class="bg-purple-600 text-white rounded-full w-8 h-8 flex items-center justify-center mr-3 flex-shrink-0">3</div>
380
- <div>
381
- <h4 class="font-medium text-gray-800">Генерация промпта</h4>
382
- <p class="text-gray-600 text-sm">Создается структурированный системный промпт для DeepSite</p>
383
- </div>
384
- </div>
385
- </div>
386
  </div>
387
  </div>
388
 
389
- <div class="mb-8">
390
- <h3 class="text-xl font-semibold mb-4 text-purple-700"><i class="fas fa-book mr-2"></i>Документация YOLOv8</h3>
391
- <p class="text-gray-700 mb-4">Для анализа изображений WebcoderAI использует YOLOv8 от Ultralytics. Вы можете загрузить изображение, и модель извлечет ключевые визуальные элементы для обогащения промпта.</p>
392
- <a href="https://docs.ultralytics.com/" target="_blank" class="inline-flex items-center px-4 py-2 bg-gray-800 hover:bg-gray-700 text-white rounded-lg transition duration-300">
393
- <i class="fas fa-external-link-alt mr-2"></i>Открыть документацию YOLOv8
394
- </a>
395
- </div>
396
-
397
- <div>
398
- <h3 class="text-xl font-semibold mb-4 text-purple-700"><i class="fas fa-lightbulb mr-2"></i>Лучшие практики</h3>
399
- <div class="bg-purple-50 rounded-lg p-6">
400
- <h4 class="font-bold mb-3 text-purple-700">Как составлять эффективные запросы:</h4>
401
- <ul class="space-y-3 text-gray-700">
402
- <li class="flex items-start">
403
- <i class="fas fa-arrow-right text-purple-600 mt-1 mr-2"></i>
404
- <span>Указывайте конкретные страницы и функционал, которые вам нужны</span>
405
- </li>
406
- <li class="flex items-start">
407
- <i class="fas fa-arrow-right text-purple-600 mt-1 mr-2"></i>
408
- <span>Описывайте целевую аудиторию и цели сайта</span>
409
- </li>
410
- <li class="flex items-start">
411
- <i class="fas fa-arrow-right text-purple-600 mt-1 mr-2"></i>
412
- <span>Указывайте предпочтительные технологии, если они важны</span>
413
- </li>
414
- <li class="flex items-start">
415
- <i class="fas fa-arrow-right text-purple-600 mt-1 mr-2"></i>
416
- <span>Добавляйте примеры похожих сайтов или стилей</span>
417
- </li>
418
- <li class="flex items-start">
419
- <i class="fas fa-arrow-right text-purple-600 mt-1 mr-2"></i>
420
- <span>Используйте загрузку изображений для визуальных референсов</span>
421
- </li>
422
- </ul>
423
- </div>
424
- </div>
425
- </div>
426
- </div>
427
-
428
- <!-- Account Tab -->
429
- <div id="account" class="tab-content">
430
- <div class="bg-white rounded-lg shadow-lg overflow-hidden">
431
- <div class="md:flex">
432
- <div class="md:w-1/3 bg-purple-700 text-white p-8">
433
- <div class="text-center mb-6">
434
- <div class="w-24 h-24 bg-purple-600 rounded-full mx-auto mb-4 flex items-center justify-center">
435
- <i class="fas fa-user text-3xl"></i>
436
- </div>
437
- <h3 class="text-xl font-bold">Иван Петров</h3>
438
- <p class="text-purple-200">free@example.com</p>
439
- </div>
440
-
441
- <div class="space-y-4">
442
- <button class="w-full flex items-center px-4 py-3 bg-purple-800 hover:bg-purple-900 rounded-lg transition duration-300">
443
- <i class="fas fa-user mr-3"></i>Профиль
444
- </button>
445
- <button class="w-full flex items-center px-4 py-3 hover:bg-purple-800 rounded-lg transition duration-300">
446
- <i class="fas fa-heart mr-3"></i>Избранные промпты
447
- </button>
448
- <button class="w-full flex items-center px-4 py-3 hover:bg-purple-800 rounded-lg transition duration-300">
449
- <i class="fas fa-key mr-3"></i>API ключи
450
- </button>
451
- <button class="w-full flex items-center px-4 py-3 hover:bg-purple-800 rounded-lg transition duration-300">
452
- <i class="fas fa-cog mr-3"></i>Настройки
453
- </button>
454
- <button class="w-full flex items-center px-4 py-3 hover:bg-purple-800 rounded-lg transition duration-300">
455
- <i class="fas fa-sign-out-alt mr-3"></i>Выйти
456
- </button>
457
- </div>
458
- </div>
459
-
460
- <div class="md:w-2/3 p-8">
461
- <h2 class="text-2xl font-bold mb-6 text-gray-800">Настройки профиля</h2>
462
 
463
- <div class="mb-8">
464
- <h3 class="text-lg font-semibold mb-4 text-gray-800">Язык интерфейса</h3>
465
- <div class="flex space-x-4">
466
- <button class="px-6 py-2 bg-purple-600 text-white rounded-lg">Русский</button>
467
- <button class="px-6 py-2 border border-gray-300 hover:bg-gray-100 rounded-lg">English</button>
 
 
 
 
468
  </div>
469
  </div>
470
 
471
- <div class="mb-8">
472
- <h3 class="text-lg font-semibold mb-4 text-gray-800">API ключи</h3>
473
- <div class="bg-gray-50 p-4 rounded-lg mb-4">
474
- <div class="flex justify-between items-center mb-2">
475
- <span class="font-medium">Основной ключ</span>
476
- <button class="text-purple-600 hover:text-purple-800">
477
- <i class="fas fa-copy"></i>
478
- </button>
 
 
 
 
479
  </div>
480
- <div class="bg-white p-3 rounded border border-gray-200 text-sm font-mono overflow-x-auto">
481
- sk_live_1234567890abcdef1234567890abcdef
482
- </div>
483
- <div class="text-xs text-gray-500 mt-2">Создан: 01.06.2023 • Использовано: 42 раза</div>
484
  </div>
485
- <button class="px-4 py-2 bg-purple-600 hover:bg-purple-700 text-white rounded-lg transition duration-300">
486
- <i class="fas fa-plus mr-2"></i>Создать новый ключ
487
- </button>
488
  </div>
489
 
490
  <div>
491
- <h3 class="text-lg font-semibold mb-4 text-gray-800">Подписка</h3>
492
- <div class="bg-white border border-purple-200 rounded-lg p-6 shadow-sm">
493
- <div class="flex justify-between items-center mb-4">
494
- <div>
495
- <h4 class="font-bold text-lg">Бесплатный тариф</h4>
496
- <p class="text-gray-600">5 промптов в день • Без API доступа</p>
497
- </div>
498
- <span class="bg-purple-100 text-purple-800 px-3 py-1 rounded-full text-sm font-medium">Активен</span>
499
- </div>
500
- <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6">
501
- <div class="border border-gray-200 rounded-lg p-4 hover:border-purple-500 transition duration-300 cursor-pointer">
502
- <h5 class="font-bold mb-2">Базовый</h5>
503
- <p class="text-2xl font-bold mb-2">$9<span class="text-sm font-normal text-gray-500">/месяц</span></p>
504
- <ul class="text-sm space-y-1 text-gray-600">
505
- <li>30 промптов в день</li>
506
- <li>API доступ</li>
507
- <li>История на 30 дней</li>
508
- </ul>
509
- </div>
510
- <div class="border border-purple-500 rounded-lg p-4 bg-purple-50 transition duration-300 cursor-pointer">
511
- <h5 class="font-bold mb-2">Профессиональный</h5>
512
- <p class="text-2xl font-bold mb-2">$19<span class="text-sm font-normal text-gray-500">/месяц</span></p>
513
- <ul class="text-sm space-y-1 text-gray-600">
514
- <li>100 промптов в день</li>
515
- <li>Приоритетный API</li>
516
- <li>История на 90 дней</li>
517
- <li>Анализ изображений</li>
518
- </ul>
519
- </div>
520
- <div class="border border-gray-200 rounded-lg p-4 hover:border-purple-500 transition duration-300 cursor-pointer">
521
- <h5 class="font-bold mb-2">Командный</h5>
522
- <p class="text-2xl font-bold mb-2">$49<span class="text-sm font-normal text-gray-500">/месяц</span></p>
523
- <ul class="text-sm space-y-1 text-gray-600">
524
- <li>300 промптов в день</li>
525
- <li>5 пользователей</li>
526
- <li>Общая история</li>
527
- <li>Приоритетная поддержка</li>
528
- </ul>
529
- </div>
530
- </div>
531
- <button class="w-full py-3 bg-purple-600 hover:bg-purple-700 text-white font-bold rounded-lg transition duration-300">
532
- Перейти на Профессиональный
533
- </button>
534
- </div>
535
  </div>
536
  </div>
537
  </div>
538
  </div>
539
- </div>
540
- </div>
541
 
542
  <!-- Footer -->
543
  <footer class="bg-gray-800 text-white py-12">
544
  <div class="container mx-auto px-4">
545
- <div class="grid grid-cols-1 md:grid-cols-4 gap-8">
546
  <div>
547
- <h3 class="text-xl font-bold mb-4">Webcoder<span class="text-purple-400">AI</span></h3>
548
- <p class="text-gray-400">Мгновенная генерация системных промптов для DeepSite. Создавайте профессиональные сайты без навыков программирования.</p>
549
  </div>
550
  <div>
551
- <h4 class="font-semibold text-lg mb-4">Навигация</h4>
552
  <ul class="space-y-2">
553
- <li><a href="#home" class="text-gray-400 hover:text-white transition duration-300">Главная</a></li>
554
- <li><a href="#about" class="text-gray-400 hover:text-white transition duration-300">Как это работает</a></li>
555
- <li><a href="#history" class="text-gray-400 hover:text-white transition duration-300">История</a></li>
556
- <li><a href="#account" class="text-gray-400 hover:text-white transition duration-300">Профиль</a></li>
557
- </ul>
558
- </div>
559
- <div>
560
- <h4 class="font-semibold text-lg mb-4">Ресурсы</h4>
561
- <ul class="space-y-2">
562
- <li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Документация</a></li>
563
- <li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Блог</a></li>
564
- <li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Примеры промптов</a></li>
565
- <li><a href="#" class="text-gray-400 hover:text-white transition duration-300">API</a></li>
566
  </ul>
567
  </div>
568
  <div>
@@ -570,242 +234,299 @@ Your mission: build a flawless Web-MVP for "{{USER_INPUT}}", reflecting every nu
570
  <ul class="space-y-2">
571
  <li class="flex items-center">
572
  <i class="fas fa-envelope mr-2 text-gray-400"></i>
573
- <span>support@webcoderai.com</span>
574
  </li>
575
  <li class="flex items-center">
576
- <i class="fas fa-phone mr-2 text-gray-400"></i>
577
- <span>+7 (123) 456-7890</span>
578
  </li>
579
  <li class="flex items-center">
580
- <i class="fas fa-map-marker-alt mr-2 text-gray-400"></i>
581
- <span>Москва, ул. Примерная, 123</span>
582
  </li>
583
  </ul>
584
- <div class="mt-4 flex space-x-4">
585
- <a href="#" class="text-gray-400 hover:text-white transition duration-300">
586
- <i class="fab fa-telegram text-xl"></i>
587
- </a>
588
- <a href="#" class="text-gray-400 hover:text-white transition duration-300">
589
- <i class="fab fa-vk text-xl"></i>
590
- </a>
591
- <a href="#" class="text-gray-400 hover:text-white transition duration-300">
592
- <i class="fab fa-github text-xl"></i>
593
- </a>
594
- </div>
595
  </div>
596
  </div>
597
  <div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400">
598
- <p>© 2023 WebcoderAI. Все права защищены.</p>
599
  </div>
600
  </div>
601
  </footer>
602
 
603
  <script>
604
- // Tab switching
605
- document.querySelectorAll('nav a').forEach(link => {
606
- link.addEventListener('click', function(e) {
607
- e.preventDefault();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
608
 
609
- // Update active nav link
610
- document.querySelectorAll('nav a').forEach(navLink => {
611
- navLink.classList.remove('text-purple-600', 'border-purple-600');
612
- navLink.classList.add('text-gray-500');
613
- });
614
- this.classList.remove('text-gray-500');
615
- this.classList.add('text-purple-600', 'border-purple-600');
616
 
617
- // Show corresponding tab
618
- const tabId = this.getAttribute('href').substring(1);
619
- document.querySelectorAll('.tab-content').forEach(tab => {
620
- tab.classList.remove('active');
621
- });
622
- document.getElementById(tabId).classList.add('active');
623
 
624
- // Mobile menu handling
625
- if(window.innerWidth < 768) {
626
- document.querySelector('.mobile-menu').classList.add('hidden');
627
- }
628
- });
629
- });
630
-
631
- // Mobile menu toggle
632
- document.querySelector('.mobile-menu-button').addEventListener('click', function() {
633
- document.querySelector('.mobile-menu').classList.toggle('hidden');
634
- });
635
-
636
- // Generate prompt button
637
- document.getElementById('generate-btn').addEventListener('click', function() {
638
- const promptInput = document.getElementById('prompt-input').value.trim();
639
-
640
- if(promptInput) {
641
- // Show loading state
642
- this.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>Генерация...';
643
- this.disabled = true;
644
 
645
- // Simulate API call with timeout
646
- setTimeout(() => {
647
- // Switch to results tab
648
- document.querySelectorAll('.tab-content').forEach(tab => {
649
- tab.classList.remove('active');
650
- });
651
- document.getElementById('results').classList.add('active');
652
-
653
- // Update nav
654
- document.querySelectorAll('nav a').forEach(navLink => {
655
- navLink.classList.remove('text-purple-600', 'border-purple-600');
656
- navLink.classList.add('text-gray-500');
657
- });
658
- document.querySelector('nav a[href="#results"]').classList.remove('text-gray-500');
659
- document.querySelector('nav a[href="#results"]').classList.add('text-purple-600', 'border-purple-600');
660
-
661
- // Generate prompt with USER_INPUT variable
662
- const generatedPrompt = document.getElementById('generated-prompt');
663
- let promptText = generatedPrompt.textContent;
664
- promptText = promptText.replace(/{{USER_INPUT}}/g, promptInput);
665
- generatedPrompt.textContent = promptText;
666
-
667
- // Reset button
668
- this.innerHTML = '<i class="fas fa-magic mr-2"></i>Сгенерировать промпт';
669
- this.disabled = false;
670
-
671
- // Add to recent ideas (simulated)
672
- const recentIdeasContainer = document.getElementById('recent-ideas');
673
- const newIdea = document.createElement('div');
674
- newIdea.className = 'bg-white p-4 rounded-lg shadow hover:shadow-lg transition duration-300 border-l-4 border-purple-600';
675
- newIdea.innerHTML = `
676
- <p class="text-gray-700">"${promptInput}"</p>
677
- <p class="text-sm text-gray-500 mt-2">Только что</p>
678
- `;
679
- recentIdeasContainer.insertBefore(newIdea, recentIdeasContainer.firstChild);
680
-
681
- // Keep only 3 recent ideas
682
- if(recentIdeasContainer.children.length > 3) {
683
- recentIdeasContainer.removeChild(recentIdeasContainer.lastChild);
684
- }
685
- }, 800);
686
- } else {
687
- alert('Пожалуйста, введите описание вашего сайта');
688
- }
689
  });
690
-
691
- // Copy button
692
  document.getElementById('copy-btn').addEventListener('click', function() {
693
  const promptText = document.getElementById('generated-prompt').textContent;
694
  navigator.clipboard.writeText(promptText).then(() => {
695
- const originalIcon = this.innerHTML;
696
- this.innerHTML = '<i class="fas fa-check"></i>';
697
  setTimeout(() => {
698
- this.innerHTML = originalIcon;
699
  }, 2000);
700
  });
701
  });
702
-
703
- // Regenerate button
704
  document.getElementById('regenerate-btn').addEventListener('click', function() {
705
- const originalIcon = this.innerHTML;
706
- this.innerHTML = '<i class="fas fa-spinner fa-spin"></i>';
707
-
708
- // Get current user input
709
- const userInput = document.getElementById('prompt-input').value.trim();
 
 
 
 
 
 
 
 
 
 
 
 
 
710
 
711
- // Simulate regeneration
712
  setTimeout(() => {
713
- this.innerHTML = originalIcon;
714
-
715
- // Add some variation to the prompt to simulate regeneration
716
- const promptElement = document.getElementById('generated-prompt');
717
- let promptText = promptElement.textContent;
718
 
719
- // Simple modification for demo purposes
720
- if(promptText.includes('React')) {
721
- promptText = promptText.replace('React', 'Vue.js');
722
- } else if(promptText.includes('Vue.js')) {
723
- promptText = promptText.replace('Vue.js', 'Svelte');
724
- } else {
725
- promptText = promptText.replace('Svelte', 'React');
726
- }
727
-
728
- // Ensure USER_INPUT is preserved
729
- promptText = promptText.replace(/{{USER_INPUT}}/g, userInput);
730
- promptElement.textContent = promptText;
731
  }, 1000);
732
  });
733
-
734
- // Image upload
735
- document.getElementById('upload-image').addEventListener('click', function() {
736
- document.getElementById('image-input').click();
737
- });
738
-
739
- document.getElementById('image-input').addEventListener('change', function(e) {
740
- if(e.target.files.length > 0) {
741
- const fileName = e.target.files[0].name;
742
- alert(`Изображение "${fileName}" будет проанализировано YOLOv8 для извлечения ключевых элементов`);
743
-
744
- // Simulate image analysis and add keywords to prompt
745
- setTimeout(() => {
746
- const promptInput = document.getElementById('prompt-input');
747
- promptInput.value += '\n\n(Изображение содержит: современный дизайн, синие акценты, минималистичный интерфейс)';
748
- }, 1500);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
749
  }
750
- });
751
-
752
- // History item click
753
- document.querySelectorAll('.history-item').forEach(item => {
754
- item.addEventListener('click', function() {
755
- // Switch to results tab
756
- document.querySelectorAll('.tab-content').forEach(tab => {
757
- tab.classList.remove('active');
758
- });
759
- document.getElementById('results').classList.add('active');
760
-
761
- // Update nav
762
- document.querySelectorAll('nav a').forEach(navLink => {
763
- navLink.classList.remove('text-purple-600', 'border-purple-600');
764
- navLink.classList.add('text-gray-500');
765
- });
766
- document.querySelector('nav a[href="#results"]').classList.remove('text-gray-500');
767
- document.querySelector('nav a[href="#results"]').classList.add('text-purple-600', 'border-purple-600');
768
-
769
- // Update prompt (simulated)
770
- const title = this.querySelector('h3').textContent;
771
- const description = this.querySelector('p:not(.text-sm)').textContent;
772
-
773
- // Generate prompt with USER_INPUT variable
774
- const promptText = `[Системный промпт]
775
- Переменная: USER_INPUT — это точная фраза, введённая пользователем: "${title}"
776
 
777
- You are DeepSight, a world-class AI architect and full-stack engineer with 30+ years of experience.
778
- Your mission: build a flawless Web-MVP for "${title}", reflecting every nuance пользовательской идеи.
 
 
 
 
 
 
 
 
 
 
 
 
779
 
780
- ### Context
781
- Project Name: ${title}
782
- • Audience: Users who need exactly what "${title}" предлагает
783
- • Key Value: Why "${title}" будет уникален на рынке
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
784
 
785
- ### Pages & Modules (no empty tabs)
786
- /** Home
787
- – Hero: "Welcome to ${title}"
788
- – Input: show the original idea: "Вы хотите: ${title}"
789
- – CTA: "Начать работу над ${title}"
790
 
791
- /about About
792
- – Section title: "О проекте ${title}"
793
- – Описание: глубокое объяснение, как ${title} решает проблемы пользователей
794
 
795
- ### Core Functionality
796
- Main feature: the site must address directly the need "${title}"
797
- User flows: from ввод ${title} to готовый продукт "${title}"
 
 
798
 
799
- ### Tech Stack
800
- Frontend: React, Tailwind CSS
801
- • Backend: Node.js, Express
802
- • Database: MongoDB
803
- • Deployment: Vercel`;
804
 
805
- document.getElementById('generated-prompt').textContent = promptText;
806
- document.getElementById('prompt-input').value = title;
807
- });
808
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
809
  </script>
810
  <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=neuroseqa/webcoderai" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
811
  </html>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>DeepSite Prompt Generator</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
  <style>
10
  .gradient-bg {
11
+ background: linear-gradient(135deg, #6366f1, #8b5cf6);
12
  }
13
  .prompt-box {
14
+ min-height: 200px;
15
+ max-height: 400px;
16
  overflow-y: auto;
17
  }
18
  .code-block {
19
  font-family: 'Courier New', monospace;
20
+ background-color: #1e293b;
21
+ color: #f8fafc;
22
  border-radius: 0.5rem;
23
  padding: 1.5rem;
24
  position: relative;
25
+ white-space: pre-wrap;
26
  }
27
  .tab-content {
28
  display: none;
 
30
  .tab-content.active {
31
  display: block;
32
  }
33
+ .animate-pulse {
34
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
35
+ }
36
+ @keyframes pulse {
37
+ 0%, 100% { opacity: 1; }
38
+ 50% { opacity: 0.5; }
39
  }
 
40
  ::-webkit-scrollbar {
41
  width: 8px;
42
  }
43
  ::-webkit-scrollbar-track {
44
  background: #f1f1f1;
 
45
  }
46
  ::-webkit-scrollbar-thumb {
47
  background: #888;
48
+ border-radius: 4px;
49
  }
50
  ::-webkit-scrollbar-thumb:hover {
51
  background: #555;
 
53
  </style>
54
  </head>
55
  <body class="bg-gray-50 font-sans">
56
+ <!-- Header -->
57
+ <header class="gradient-bg text-white">
58
+ <div class="container mx-auto px-4 py-12">
59
+ <div class="flex flex-col md:flex-row items-center justify-between">
60
+ <div class="mb-8 md:mb-0">
61
+ <h1 class="text-4xl font-bold mb-4">DeepSite Prompt Generator</h1>
62
+ <p class="text-xl opacity-90">Превратите вашу идею в готовый к запуску MVP с React/Next.js, TailwindCSS и FastAPI</p>
63
+ </div>
64
+ <div class="flex space-x-4">
65
+ <div class="bg-white/10 backdrop-blur-sm p-4 rounded-lg">
66
+ <i class="fab fa-react text-3xl text-blue-400"></i>
67
  </div>
68
+ <div class="bg-white/10 backdrop-blur-sm p-4 rounded-lg">
69
+ <i class="fab fa-python text-3xl text-yellow-400"></i>
70
+ </div>
71
+ <div class="bg-white/10 backdrop-blur-sm p-4 rounded-lg">
72
+ <i class="fas fa-bolt text-3xl text-purple-400"></i>
 
73
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  </div>
75
  </div>
76
  </div>
77
+ </header>
 
 
 
 
 
 
 
 
 
78
 
79
  <!-- Main Content -->
80
+ <main class="container mx-auto px-4 py-8">
81
+ <!-- Input Section -->
82
+ <section class="mb-12">
83
+ <div class="bg-white rounded-xl shadow-lg p-6">
84
+ <h2 class="text-2xl font-bold mb-6 text-gray-800">Опишите ваш проект</h2>
 
85
 
86
+ <div class="mb-6">
87
+ <label for="user-input" class="block text-lg font-medium text-gray-700 mb-3">Ваша идея:</label>
88
+ <textarea id="user-input" class="w-full prompt-box p-4 border border-gray-300 rounded-lg focus:ring-2 focus:ring-indigo-500 focus:border-transparent text-gray-700" placeholder="Пример: Сайт для астрологических консультаций с личным кабинетом, блогом и системой записи"></textarea>
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  </div>
90
+
91
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-6">
92
+ <div>
93
+ <label class="block text-sm font-medium text-gray-700 mb-2">Сложность проекта</label>
94
+ <select id="complexity" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500">
95
+ <option value="basic">Базовый (1-3 страницы)</option>
96
+ <option value="medium" selected>Средний (4-6 страниц)</option>
97
+ <option value="advanced">Продвинутый (7+ страниц)</option>
98
+ </select>
99
  </div>
100
+ <div>
101
+ <label class="block text-sm font-medium text-gray-700 mb-2">Стиль дизайна</label>
102
+ <select id="design-style" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500">
103
+ <option value="minimal">Минимализм</option>
104
+ <option value="modern" selected>Модерн</option>
105
+ <option value="corporate">Корпоративный</option>
106
+ <option value="creative">Креативный</option>
107
+ </select>
108
  </div>
109
+ <div>
110
+ <label class="block text-sm font-medium text-gray-700 mb-2">Анимации</label>
111
+ <select id="animations" class="w-full p-3 border border-gray-300 rounded-lg focus:ring-indigo-500 focus:border-indigo-500">
112
+ <option value="basic">Базовые (CSS)</option>
113
+ <option value="advanced" selected>Продвинутые (GSAP/Anime.js)</option>
114
+ <option value="3d">3D (Three.js)</option>
115
+ </select>
116
  </div>
117
  </div>
118
+
119
+ <button id="generate-btn" class="w-full bg-indigo-600 hover:bg-indigo-700 text-white font-bold py-4 px-6 rounded-lg transition duration-300 shadow-lg">
120
+ <i class="fas fa-magic mr-2"></i>Сгенерировать системный промпт
121
+ </button>
122
  </div>
123
+ </section>
124
 
125
+ <!-- Results Section -->
126
+ <section id="results" class="hidden">
127
  <div class="flex flex-col md:flex-row gap-8">
128
  <div class="md:w-2/3">
129
+ <div class="flex justify-between items-center mb-6">
130
+ <h2 class="text-2xl font-bold text-gray-800">Ваш системный промпт для DeepSite</h2>
131
+ <div class="flex space-x-2">
132
+ <button id="copy-btn" class="px-4 py-2 bg-gray-200 hover:bg-gray-300 text-gray-800 rounded-lg transition duration-300">
133
+ <i class="fas fa-copy mr-2"></i>Копировать
 
134
  </button>
135
+ <button id="regenerate-btn" class="px-4 py-2 bg-indigo-600 hover:bg-indigo-700 text-white rounded-lg transition duration-300">
136
+ <i class="fas fa-sync-alt mr-2"></i>Перегенерировать
137
  </button>
138
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  </div>
140
 
141
+ <div class="code-block mb-6 relative">
142
+ <div id="generated-prompt" class="whitespace-pre-wrap"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
  </div>
144
 
145
+ <div class="bg-indigo-50 rounded-xl p-6 mb-8">
146
+ <h3 class="text-lg font-semibold text-indigo-800 mb-4"><i class="fas fa-lightbulb mr-2"></i>Как использовать этот промпт</h3>
147
+ <ol class="list-decimal list-inside space-y-2 text-gray-700">
148
+ <li>Скопируйте весь текст промпта</li>
149
+ <li>Вставьте в DeepSite или аналогичную систему</li>
150
+ <li>Запустите генерацию кода</li>
151
+ <li>Получите готовый MVP с настроенной структурой проекта</li>
152
+ </ol>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  </div>
154
  </div>
155
 
156
+ <div class="md:w-1/3">
157
+ <div class="bg-white rounded-xl shadow-lg p-6 sticky top-6">
158
+ <h3 class="text-xl font-bold mb-4 text-gray-800">Детали вашего проекта</h3>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
159
 
160
+ <div class="mb-6">
161
+ <h4 class="font-semibold text-gray-700 mb-2">Стек технологий</h4>
162
+ <div class="flex flex-wrap gap-2">
163
+ <span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">Next.js</span>
164
+ <span class="bg-purple-100 text-purple-800 px-3 py-1 rounded-full text-sm">TailwindCSS</span>
165
+ <span class="bg-yellow-100 text-yellow-800 px-3 py-1 rounded-full text-sm">FastAPI</span>
166
+ <span class="bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm">MongoDB</span>
167
+ <span class="bg-red-100 text-red-800 px-3 py-1 rounded-full text-sm">Anime.js</span>
168
+ <span class="bg-indigo-100 text-indigo-800 px-3 py-1 rounded-full text-sm">Three.js</span>
169
  </div>
170
  </div>
171
 
172
+ <div class="mb-6">
173
+ <h4 class="font-semibold text-gray-700 mb-2">Структура проекта</h4>
174
+ <div class="bg-gray-50 p-4 rounded-lg">
175
+ <div class="font-mono text-sm space-y-1">
176
+ <div>/src</div>
177
+ <div class="ml-4">/components</div>
178
+ <div class="ml-4">/pages</div>
179
+ <div class="ml-4">/lib</div>
180
+ <div class="ml-4">/styles</div>
181
+ <div class="ml-4">/hooks</div>
182
+ <div>/api</div>
183
+ <div>/public</div>
184
  </div>
 
 
 
 
185
  </div>
 
 
 
186
  </div>
187
 
188
  <div>
189
+ <h4 class="font-semibold text-gray-700 mb-2">Требования к качеству</h4>
190
+ <ul class="space-y-2 text-sm text-gray-700">
191
+ <li class="flex items-start">
192
+ <i class="fas fa-check-circle text-indigo-600 mt-1 mr-2"></i>
193
+ <span>Адаптивный дизайн (mobile/desktop)</span>
194
+ </li>
195
+ <li class="flex items-start">
196
+ <i class="fas fa-check-circle text-indigo-600 mt-1 mr-2"></i>
197
+ <span>Core Web Vitals ≥90</span>
198
+ </li>
199
+ <li class="flex items-start">
200
+ <i class="fas fa-check-circle text-indigo-600 mt-1 mr-2"></i>
201
+ <span>Полная документация в README</span>
202
+ </li>
203
+ <li class="flex items-start">
204
+ <i class="fas fa-check-circle text-indigo-600 mt-1 mr-2"></i>
205
+ <span>Готовность к деплою на Vercel</span>
206
+ </li>
207
+ </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  </div>
209
  </div>
210
  </div>
211
  </div>
212
+ </section>
213
+ </main>
214
 
215
  <!-- Footer -->
216
  <footer class="bg-gray-800 text-white py-12">
217
  <div class="container mx-auto px-4">
218
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-8">
219
  <div>
220
+ <h3 class="text-xl font-bold mb-4">DeepSite Prompt Generator</h3>
221
+ <p class="text-gray-400">Профессиональные системные промпты для быстрого создания MVP веб-приложений.</p>
222
  </div>
223
  <div>
224
+ <h4 class="font-semibold text-lg mb-4">Технологии</h4>
225
  <ul class="space-y-2">
226
+ <li><a href="#" class="text-gray-400 hover:text-white transition duration-300">React/Next.js</a></li>
227
+ <li><a href="#" class="text-gray-400 hover:text-white transition duration-300">TailwindCSS</a></li>
228
+ <li><a href="#" class="text-gray-400 hover:text-white transition duration-300">FastAPI</a></li>
229
+ <li><a href="#" class="text-gray-400 hover:text-white transition duration-300">Three.js</a></li>
 
 
 
 
 
 
 
 
 
230
  </ul>
231
  </div>
232
  <div>
 
234
  <ul class="space-y-2">
235
  <li class="flex items-center">
236
  <i class="fas fa-envelope mr-2 text-gray-400"></i>
237
+ <span>support@deepsite.ai</span>
238
  </li>
239
  <li class="flex items-center">
240
+ <i class="fab fa-github mr-2 text-gray-400"></i>
241
+ <span>github.com/deepsite</span>
242
  </li>
243
  <li class="flex items-center">
244
+ <i class="fab fa-discord mr-2 text-gray-400"></i>
245
+ <span>discord.gg/deepsite</span>
246
  </li>
247
  </ul>
 
 
 
 
 
 
 
 
 
 
 
248
  </div>
249
  </div>
250
  <div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400">
251
+ <p>© 2023 DeepSite Prompt Generator. Все права защищены.</p>
252
  </div>
253
  </div>
254
  </footer>
255
 
256
  <script>
257
+ // Generate system prompt
258
+ document.getElementById('generate-btn').addEventListener('click', function() {
259
+ const userInput = document.getElementById('user-input').value.trim();
260
+ if (!userInput) {
261
+ alert('Пожалуйста, опишите ваш проект');
262
+ return;
263
+ }
264
+
265
+ // Show loading state
266
+ const btn = this;
267
+ btn.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>Генерация...';
268
+ btn.disabled = true;
269
+
270
+ // Get selected options
271
+ const complexity = document.getElementById('complexity').value;
272
+ const designStyle = document.getElementById('design-style').value;
273
+ const animations = document.getElementById('animations').value;
274
+
275
+ // Simulate API call with timeout
276
+ setTimeout(() => {
277
+ // Generate project name (simplified)
278
+ const projectName = generateProjectName(userInput);
279
 
280
+ // Generate prompt based on user input
281
+ const prompt = generateSystemPrompt(userInput, projectName, complexity, designStyle, animations);
 
 
 
 
 
282
 
283
+ // Display results
284
+ document.getElementById('generated-prompt').textContent = prompt;
285
+ document.getElementById('results').classList.remove('hidden');
 
 
 
286
 
287
+ // Scroll to results
288
+ document.getElementById('results').scrollIntoView({ behavior: 'smooth' });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
289
 
290
+ // Reset button
291
+ btn.innerHTML = '<i class="fas fa-magic mr-2"></i>Сгенерировать системный промпт';
292
+ btn.disabled = false;
293
+ }, 1500);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
294
  });
295
+
296
+ // Copy to clipboard
297
  document.getElementById('copy-btn').addEventListener('click', function() {
298
  const promptText = document.getElementById('generated-prompt').textContent;
299
  navigator.clipboard.writeText(promptText).then(() => {
300
+ const originalText = this.innerHTML;
301
+ this.innerHTML = '<i class="fas fa-check mr-2"></i>Скопировано!';
302
  setTimeout(() => {
303
+ this.innerHTML = originalText;
304
  }, 2000);
305
  });
306
  });
307
+
308
+ // Regenerate prompt
309
  document.getElementById('regenerate-btn').addEventListener('click', function() {
310
+ const userInput = document.getElementById('user-input').value.trim();
311
+ if (!userInput) {
312
+ alert('Пожалуйста, опишите ваш проект');
313
+ return;
314
+ }
315
+
316
+ // Show loading state
317
+ const btn = this;
318
+ btn.innerHTML = '<i class="fas fa-spinner fa-spin mr-2"></i>Перегенерация...';
319
+ btn.disabled = true;
320
+
321
+ // Get selected options
322
+ const complexity = document.getElementById('complexity').value;
323
+ const designStyle = document.getElementById('design-style').value;
324
+ const animations = document.getElementById('animations').value;
325
+
326
+ // Generate project name (simplified)
327
+ const projectName = generateProjectName(userInput);
328
 
329
+ // Simulate regeneration with slight variations
330
  setTimeout(() => {
331
+ const prompt = generateSystemPrompt(userInput, projectName, complexity, designStyle, animations, true);
332
+ document.getElementById('generated-prompt').textContent = prompt;
 
 
 
333
 
334
+ // Reset button
335
+ btn.innerHTML = '<i class="fas fa-sync-alt mr-2"></i>Перегенерировать';
336
+ btn.disabled = false;
 
 
 
 
 
 
 
 
 
337
  }, 1000);
338
  });
339
+
340
+ // Helper functions
341
+ function generateProjectName(input) {
342
+ // Simple project name generation
343
+ const words = input.split(' ');
344
+ if (words.length >= 2) {
345
+ return `${words[0]} ${words[words.length-1]}`.replace(/[^a-zA-Zа-яА-Я0-9 ]/g, '');
346
+ }
347
+ return input.length > 20 ? input.substring(0, 20) + '...' : input;
348
+ }
349
+
350
+ function generateSystemPrompt(userInput, projectName, complexity, designStyle, animations, isRegenerate = false) {
351
+ // Determine pages based on complexity
352
+ let pages = [];
353
+ if (complexity === 'basic') {
354
+ pages = [
355
+ "/ → Главная: герой-секция, CTA, краткий обзор",
356
+ "/about → О проекте",
357
+ "/contact → Контакты"
358
+ ];
359
+ } else if (complexity === 'medium') {
360
+ pages = [
361
+ "/ → Главная: анимированный герой, фичи, отзывы",
362
+ "/services → Услуги с карточками и фильтрами",
363
+ "/about → О проекте с командой",
364
+ "/blog → Блог с пагинацией",
365
+ "/contact → Форма обратной связи"
366
+ ];
367
+ } else {
368
+ pages = [
369
+ "/ → Главная: интерактивный герой, видео-презентация, CTA",
370
+ "/services → Детальные услуги с ценами",
371
+ "/portfolio → Портфолио с фильтрами",
372
+ "/blog → Блог с категориями",
373
+ "/about → Развернутая информация о проекте",
374
+ "/team → Команда с соц. ссылками",
375
+ "/contact → Многофункциональная форма",
376
+ "/dashboard → Личный кабинет (для авторизованных)"
377
+ ];
378
+ }
379
+
380
+ // Determine features based on input
381
+ const features = [];
382
+ if (userInput.toLowerCase().includes('блог')) features.push("Блог с markdown-редактором");
383
+ if (userInput.toLowerCase().includes('личный кабинет') || userInput.toLowerCase().includes('аккаунт')) {
384
+ features.push("Система авторизации (JWT)");
385
+ features.push("Личный кабинет пользователя");
386
+ }
387
+ if (userInput.toLowerCase().includes('запись') || userInput.toLowerCase().includes('бронирование')) {
388
+ features.push("Система онлайн-записи");
389
+ }
390
+ if (features.length < 4) {
391
+ features.push("Адаптивный дизайн для всех устройств");
392
+ features.push("Оптимизированная загрузка (lazy loading)");
393
+ features.push("SEO-оптимизация");
394
+ features.push("Интеграция с аналитикой (Google Analytics)");
395
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
396
 
397
+ // Determine tech stack
398
+ let frontendLibs = ["React Icons", "HeadlessUI"];
399
+ let backendLibs = [];
400
+
401
+ if (animations === 'advanced') {
402
+ frontendLibs.push("Anime.js", "Framer Motion");
403
+ } else if (animations === '3d') {
404
+ frontendLibs.push("Three.js", "React Three Fiber");
405
+ }
406
+
407
+ if (userInput.toLowerCase().includes('чат') || userInput.toLowerCase().includes('общение')) {
408
+ frontendLibs.push("Socket.IO");
409
+ backendLibs.push("WebSockets");
410
+ }
411
 
412
+ // Determine design
413
+ let colors = {
414
+ primary: '#6366f1',
415
+ secondary: '#8b5cf6',
416
+ accent: '#ec4899',
417
+ dark: '#1e293b',
418
+ light: '#f8fafc'
419
+ };
420
+
421
+ if (designStyle === 'minimal') {
422
+ colors = {
423
+ primary: '#000000',
424
+ secondary: '#333333',
425
+ accent: '#666666',
426
+ dark: '#111111',
427
+ light: '#ffffff'
428
+ };
429
+ } else if (designStyle === 'corporate') {
430
+ colors = {
431
+ primary: '#2563eb',
432
+ secondary: '#1d4ed8',
433
+ accent: '#3b82f6',
434
+ dark: '#1e40af',
435
+ light: '#eff6ff'
436
+ };
437
+ } else if (designStyle === 'creative') {
438
+ colors = {
439
+ primary: '#ec4899',
440
+ secondary: '#db2777',
441
+ accent: '#f43f5e',
442
+ dark: '#831843',
443
+ light: '#fdf2f8'
444
+ };
445
+ }
446
 
447
+ // Generate the prompt
448
+ return `You are DeepSite, a world-class AI architect and full-stack engineer with 30+ years of experience.
 
 
 
449
 
450
+ Mission: Build a flawless Web MVP for "${projectName}" based on the user request: "${userInput}"
 
 
451
 
452
+ ### Context
453
+ Project Name: ${projectName}
454
+ Audience: ${determineAudience(userInput)}
455
+ • Key Value: ${determineUniqueValue(userInput)}
456
+ • Complexity: ${complexity === 'basic' ? 'Basic' : complexity === 'medium' ? 'Medium' : 'Advanced'}
457
 
458
+ ### Pages & Structure
459
+ ${pages.map(page => `• ${page}`).join('\n')}
 
 
 
460
 
461
+ ### Core Features
462
+ ${features.slice(0, 6).map(feat => `• ${feat}`).join('\n')}
463
+
464
+ ### Design System
465
+ • Colors:
466
+ - Primary: ${colors.primary}
467
+ - Secondary: ${colors.secondary}
468
+ - Accent: ${colors.accent}
469
+ - Dark: ${colors.dark}
470
+ - Light: ${colors.light}
471
+ • Fonts: Inter (sans-serif), JetBrains Mono (monospace)
472
+ • Animations: ${animations === 'basic' ? 'CSS transitions' : animations === 'advanced' ? 'Anime.js' : 'Three.js 3D'}
473
+ • UI Components: Fully reusable with TailwindCSS variants
474
+
475
+ ### Tech Stack
476
+ • Frontend:
477
+ - Next.js 13 (App Router)
478
+ - TailwindCSS + ${frontendLibs.join(', ')}
479
+ - TypeScript
480
+ • Backend:
481
+ - FastAPI
482
+ - MongoDB (or PostgreSQL if relational data needed)
483
+ - ${backendLibs.length ? backendLibs.join(', ') : 'REST API'}
484
+ • Deployment:
485
+ - Vercel (Frontend)
486
+ - Railway/Heroku (Backend)
487
+
488
+ ### Project Structure
489
+ /src
490
+ /components - Atomic design structure
491
+ /pages - Next.js routes
492
+ /lib - Utilities and helpers
493
+ /styles - Global and CSS modules
494
+ /hooks - Custom React hooks
495
+ /api - API routes
496
+ /public - Static assets
497
+
498
+ ### Quality Requirements
499
+ • Performance: Core Web Vitals ≥90
500
+ • Accessibility: WCAG 2.1 AA compliant
501
+ • Responsiveness: Mobile-first, all breakpoints
502
+ • Code Quality: ESLint + Prettier config
503
+ • Documentation: Full README with setup instructions
504
+
505
+ ### Success Criteria
506
+ The generated MVP must:
507
+ 1. Fully match the user request: "${userInput}"
508
+ 2. Be production-ready with one-click deploy
509
+ 3. Include all specified pages and features
510
+ 4. Achieve performance targets
511
+ 5. Have clean, maintainable code structure
512
+
513
+ Ready to generate the perfect MVP for "${projectName}"!`;
514
+ }
515
+
516
+ function determineAudience(input) {
517
+ if (input.toLowerCase().includes('бизнес')) return "Small business owners and entrepreneurs";
518
+ if (input.toLowerCase().includes('услуг')) return "Clients looking for professional services";
519
+ if (input.toLowerCase().includes('образован')) return "Students and lifelong learners";
520
+ if (input.toLowerCase().includes('астролог')) return "People interested in astrology and horoscopes";
521
+ return "Users who need exactly what this project offers";
522
+ }
523
+
524
+ function determineUniqueValue(input) {
525
+ if (input.toLowerCase().includes('персонал')) return "Personalized approach for each user";
526
+ if (input.toLowerCase().includes('онлайн')) return "Fully online service with instant access";
527
+ if (input.toLowerCase().includes('уник')) return "Unique combination of features not found elsewhere";
528
+ return "High-quality solution tailored to specific needs";
529
+ }
530
  </script>
531
  <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=neuroseqa/webcoderai" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
532
  </html>
prompts.txt CHANGED
@@ -1,2 +1,3 @@
1
  Вы — DeepSite, ведущий AI-продуктовый архитектор и full-stack инженер с более чем 30-летним опытом создания генеративных веб-платформ. Ваша задача: создать Web-MVP под названием **WebcoderAI** — интерактивный сайт, где пользователь вводит фразу «Хочу сайт для IT-услуг» или «Хочу сайт для астрологического контента», а система автоматически генерирует профессиональный системный промпт для DeepSite от Hugging Face. ### Контекст • Проект: WebcoderAI • Аудитория: маркетологи, разработчики, создатели контента • Ценность: мгновенная выдача качественных системных промптов без необходимости быть экспертом в prompt-инжиниринге ### Страницы и модули (без пустых вкладок) • /** → Главная – Полноэкранный герой: «Введите идею сайта → Получите промпт для DeepSite» – Поле ввода (многострочный чат-интерфейс) – Кнопка «Сгенерировать промпт» – Блок предпросмотра последних 3 введённых идей • /results → Результат – Блок кода с готовым системным промптом – Кнопки «Скопировать» и «Перегенерировать» – Боковая панель с советами по улучшению промптов • /history → История – Список всех сохранённых идей и сгенерированных промптов – Действия: «Использовать снова», «Редактировать», «Удалить» • /about → Как это работает – Описание логики работы сервиса – Ссылка на документацию YOLOv8 (Ultralytics) для опционального анализа изображений – Лучшие практики по составлению промптов для DeepSite • /account → Профиль – Управление избранными промптами, API-ключами, переключатель языка (RU/EN) ### Основной функционал • **Идея → Системный промпт**: преобразование свободного текста пользователя в структурированный промпт для DeepSite • **Шаблонизатор**: подставляет роль, контекст, страницы, функционал, стек технологий и ожидаемый результат • **История**: хранение и повторное использование прошлых промптов • **Опциональная загрузка изображений**: YOLOv8 анализирует картинку и извлекает ключевые слова для обогащения промпта • **Без пустых вкладок**: каждая страница отображает либо содержимое, либо информативный placeholder («Загружается…», «История пуста») ### Технический стек и структура кода • Frontend: Next.js + Tailwind CSS + TypeScript • Backend: Node.js + FastAPI (Python) для эндпоинтов модели • Модели: OpenAI/GPT или локальная LLM для генерации промптов; Ultralytics YOLOv8 для анализа изображений • База данных: Supabase для истории и настроек пользователей • Локализация: next-i18next (ru.json, en.json) • Развёртывание: Vercel (фронтенд) + Railway/Render (бекенд) /src /components ← PromptInput, PromptOutput, HistoryList, TipsSidebar /pages ← index.tsx, results.tsx, history.tsx, about.tsx, account.tsx /lib ← apiClient.ts, promptTemplate.ts, yolov8Client.ts /hooks ← usePrompt, useHistory, useYOLO /styles ← globals.css /i18n ← ru.json, en.json ### Качество и результат • Полная адаптивность (мобильные и десктоп) • Все кнопки и формы работают «из коробки» • Задержка генерации промпта <1 с • Сохранение и перегенерация работают корректно • Inline-комментарии + README с инструкциями по запуску и деплою **��анифест успеха:** WebcoderAI должен позволять любому пользователю ввести идею сайта и мгновенно получить готовый промпт для DeepSite, готовый к копированию и вставке.
2
- 1. Добавьте в начало промпта явное объявление переменной В шапке промпта прямо пропишите: arduino Копировать Редактировать Переменная: USER_INPUT — это строка, которую вводит пользователь (например: "Я хочу сайт для IT-услуг"). 2. Используйте USER_INPUT во всех ключевых разделах В каждой секции, где описывается цель, контекст, страницы и т.п., явно ссылайтесь на эту переменную: yaml Копировать Редактировать Your mission: build a flawless Web-MVP for “{{USER_INPUT}}” — ... Context: • Project Name: {{USER_INPUT}} • Audience: целевая аудитория вашего проекта {{USER_INPUT}} • Key Value: специфическая ценность проекта {{USER_INPUT}} 3. Пример полного системного промпта с учётом динамики plaintext Копировать Редактировать Переменная: USER_INPUT — это точная фраза, введённая пользователем. You are DeepSight, a world-class AI architect and full-stack engineer with 30+ years of experience. Your mission: build a flawless Web-MVP for **“{{USER_INPUT}}”**, reflecting every nuance пользовательской идеи. ### Context • Project Name: {{USER_INPUT}} • Audience: Users who need exactly what “{{USER_INPUT}}” предлагает • Key Value: Why “{{USER_INPUT}}” будет уникален на рынке ### Pages & Modules (no empty tabs) • /** → Home – Hero: “Welcome to {{USER_INPUT}}” – Input: show the original idea: “Вы хотите: {{USER_INPUT}}” – CTA: “Начать работу над {{USER_INPUT}}” • /about → About – Section title: “О проекте {{USER_INPUT}}” – Описание: глубокое объяснение, как {{USER_INPUT}} решает проблемы пользователей (и так далее по всем разделам — каждый раз подставляем {{USER_INPUT}}) ### Core Functionality • Main feature: the site must address directly the need “{{USER_INPUT}}” • User flows: from ввод {{USER_INPUT}} to готовый продукт “{{USER_INPUT}}” ### Tech Stack & Code Structure (без изменений) ### Quality & Deliverables (без изменений) **Примечание:** Ни в одном месте не используйте жёстко прописанные названия — всегда подставляйте {{USER_INPUT}}.
 
 
1
  Вы — DeepSite, ведущий AI-продуктовый архитектор и full-stack инженер с более чем 30-летним опытом создания генеративных веб-платформ. Ваша задача: создать Web-MVP под названием **WebcoderAI** — интерактивный сайт, где пользователь вводит фразу «Хочу сайт для IT-услуг» или «Хочу сайт для астрологического контента», а система автоматически генерирует профессиональный системный промпт для DeepSite от Hugging Face. ### Контекст • Проект: WebcoderAI • Аудитория: маркетологи, разработчики, создатели контента • Ценность: мгновенная выдача качественных системных промптов без необходимости быть экспертом в prompt-инжиниринге ### Страницы и модули (без пустых вкладок) • /** → Главная – Полноэкранный герой: «Введите идею сайта → Получите промпт для DeepSite» – Поле ввода (многострочный чат-интерфейс) – Кнопка «Сгенерировать промпт» – Блок предпросмотра последних 3 введённых идей • /results → Результат – Блок кода с готовым системным промптом – Кнопки «Скопировать» и «Перегенерировать» – Боковая панель с советами по улучшению промптов • /history → История – Список всех сохранённых идей и сгенерированных промптов – Действия: «Использовать снова», «Редактировать», «Удалить» • /about → Как это работает – Описание логики работы сервиса – Ссылка на документацию YOLOv8 (Ultralytics) для опционального анализа изображений – Лучшие практики по составлению промптов для DeepSite • /account → Профиль – Управление избранными промптами, API-ключами, переключатель языка (RU/EN) ### Основной функционал • **Идея → Системный промпт**: преобразование свободного текста пользователя в структурированный промпт для DeepSite • **Шаблонизатор**: подставляет роль, контекст, страницы, функционал, стек технологий и ожидаемый результат • **История**: хранение и повторное использование прошлых промптов • **Опциональная загрузка изображений**: YOLOv8 анализирует картинку и извлекает ключевые слова для обогащения промпта • **Без пустых вкладок**: каждая страница отображает либо содержимое, либо информативный placeholder («Загружается…», «История пуста») ### Технический стек и структура кода • Frontend: Next.js + Tailwind CSS + TypeScript • Backend: Node.js + FastAPI (Python) для эндпоинтов модели • Модели: OpenAI/GPT или локальная LLM для генерации промптов; Ultralytics YOLOv8 для анализа изображений • База данных: Supabase для истории и настроек пользователей • Локализация: next-i18next (ru.json, en.json) • Развёртывание: Vercel (фронтенд) + Railway/Render (бекенд) /src /components ← PromptInput, PromptOutput, HistoryList, TipsSidebar /pages ← index.tsx, results.tsx, history.tsx, about.tsx, account.tsx /lib ← apiClient.ts, promptTemplate.ts, yolov8Client.ts /hooks ← usePrompt, useHistory, useYOLO /styles ← globals.css /i18n ← ru.json, en.json ### Качество и результат • Полная адаптивность (мобильные и десктоп) • Все кнопки и формы работают «из коробки» • Задержка генерации промпта <1 с • Сохранение и перегенерация работают корректно • Inline-комментарии + README с инструкциями по запуску и деплою **��анифест успеха:** WebcoderAI должен позволять любому пользователю ввести идею сайта и мгновенно получить готовый промпт для DeepSite, готовый к копированию и вставке.
2
+ 1. Добавьте в начало промпта явное объявление переменной В шапке промпта прямо пропишите: arduino Копировать Редактировать Переменная: USER_INPUT — это строка, которую вводит пользователь (например: "Я хочу сайт для IT-услуг"). 2. Используйте USER_INPUT во всех ключевых разделах В каждой секции, где описывается цель, контекст, страницы и т.п., явно ссылайтесь на эту переменную: yaml Копировать Редактировать Your mission: build a flawless Web-MVP for “{{USER_INPUT}}” — ... Context: • Project Name: {{USER_INPUT}} • Audience: целевая аудитория вашего проекта {{USER_INPUT}} • Key Value: специфическая ценность проекта {{USER_INPUT}} 3. Пример полного системного промпта с учётом динамики plaintext Копировать Редактировать Переменная: USER_INPUT — это точная фраза, введённая пользователем. You are DeepSight, a world-class AI architect and full-stack engineer with 30+ years of experience. Your mission: build a flawless Web-MVP for **“{{USER_INPUT}}”**, reflecting every nuance пользовательской идеи. ### Context • Project Name: {{USER_INPUT}} • Audience: Users who need exactly what “{{USER_INPUT}}” предлагает • Key Value: Why “{{USER_INPUT}}” будет уникален на рынке ### Pages & Modules (no empty tabs) • /** → Home – Hero: “Welcome to {{USER_INPUT}}” – Input: show the original idea: “Вы хотите: {{USER_INPUT}}” – CTA: “��ачать работу над {{USER_INPUT}}” • /about → About – Section title: “О проекте {{USER_INPUT}}” – Описание: глубокое объяснение, как {{USER_INPUT}} решает проблемы пользователей (и так далее по всем разделам — каждый раз подставляем {{USER_INPUT}}) ### Core Functionality • Main feature: the site must address directly the need “{{USER_INPUT}}” • User flows: from ввод {{USER_INPUT}} to готовый продукт “{{USER_INPUT}}” ### Tech Stack & Code Structure (без изменений) ### Quality & Deliverables (без изменений) **Примечание:** Ни в одном месте не используйте жёстко прописанные названия — всегда подставляйте {{USER_INPUT}}.
3
+ Вы — DeepSite, передовая нейросеть от Hugging Face, обладающая опытом 30+ лет в создании MVP веб-приложений. Ваша задача — на основе **свободного текста пользователя** (USER_INPUT) **полностью генерировать** профессиональный **системный промпт** для DeepSite, который запускает код React/Next.js с TailwindCSS, AnimeJS, Three.js и FastAPI: готовый к первому запуску MVP сайта. **ВАЖНО**: не просто вставляйте USER_INPUT в шаблон, а **преобразуйте** его в подробное ТЗ с контекстом, структурой страниц, ключевым функционалом, стеком технологий и требованиями к дизайну и производительности. --- ### ШАБЛОН ДЕЙСТВИЙ 1. **Анализ USER_INPUT** • Определите сферу (IT-услуги, астрология, образование, и т.п.). • Вычлените главную цель и уникальное ценностное предложение. 2. **Формирование контекста** • Проект: короткое название, основанное на USER_INPUT. • Аудитория: кто будет пользоваться. • Ценность: что делает проект уникальным. 3. **Структура страниц & модулей** Перечислите маршруты (routes) и кратко опишите содержимое каждой страницы, например: / → Home: герой-секция, CTA, краткий обзор /services → Список услуг с карточками /about → О проекте и команде /contact → Форма обратной связи Добавьте столько страниц, сколько нужно для USER_INPUT-проекта. 4. **Ключевой функционал** • Перечислите 4–6 основных функций (например, чат-бот, галерея, блог, личный кабинет). • Укажите, какие библиотеки/API использовать (WebRTC, Web Audio API и т.п.). 5. **Дизайн и UX** • Основная цветовая палитра и шрифты. • Тип анимаций (AnimeJS, Three.js, WebGL). • Поведенческие сценарии (hover-эффекты, scroll-триггеры). 6. **Технический стек & структура кода** • Frontend: Next.js + TailwindCSS + TypeScript • Backend: FastAPI или Node.js + GraphQL/REST • Пример папок: `/src/components`, `/pages`, `/lib`, `/hooks`, `/styles`, `/i18n` 7. **Качество & Деплой** • Адаптивность (mobile/Desktop), производительность (60 FPS, Core Web Vitals ≥90). • Комментарии в коде и README с инструкциями по запуску и деплою на Vercel. 8. **Финальный вывод** Сгенерируйте готовый к копированию **системный промпт** для DeepSite, полностью оформленный по пунктам 1–7, без инструкций пользователю. --- **Пример** (для USER_INPUT = «Я хочу сайт для IT-услуг»): You are DeepSite… Mission: build a Web MVP for “IT-услуги”… Context: Проект «IT-Services Pro», аудитория — малый бизнес… Pages: / →… Core Features:… Design:… Tech Stack:… Quality:… Deploy:… Теперь, получив любой USER_INPUT, вы должны выдавать такую развернутую структуру, готовую к запуску MVP.