Что это
Промпт — это запрос, который вы пишете нейросети: чат-помощнику, программе для картинок или для кода. От того, как он сформулирован, зависит, получите вы толковый ответ или пустую отговорку.
Библиотека промптов — сайт, где такие запросы собраны в одном месте. Их можно листать, искать, копировать одним нажатием, сохранять себе и добавлять свои. Есть разделы и метки, голосование, комментарии, личные подборки и закрытые запросы, которые видите только вы.
Сразу скажу главное: сам сайт мы не придумывали. Это известный открытый проект prompts.chat, у которого лицензия позволяет разворачивать собственную копию. Мы взяли его и поставили у себя на отдельном адресе. Что именно сделано нами, разберу ниже.
Зачем это нужно
Хороший запрос к нейросети пишется не с первого раза. Человек, который только начинает, обычно не знает, с чего начать, и получает средние ответы. Готовая подборка решает эту проблему: берёте запрос, подставляете свои слова и пользуетесь.
Второе соображение — язык. Исходный проект англоязычный. Нам нужна была версия, которую откроет русскоязычный человек и сразу поймёт, что перед ним. Поэтому русский язык у нас основной, а в исходной подборке описания к запросам могли быть на английском или пустыми: для этого мы и написали скрипты, о них ниже.
Третье — собственный, независимый экземпляр. Он лежит на нашем сервере, со своей базой данных и без чужой рекламы.
Как устроено
Основа — готовая. Сайт написан на Next.js и React, данные хранятся в базе PostgreSQL. Проект работает в контейнерах, то есть запускается как набор изолированных коробочек: одна для самого сайта, одна для базы и ещё одна отдельная, о ней расскажу дальше. Наружу сайт отдаёт веб-сервер nginx, а шифрованное соединение обеспечивает он же. Так написано в конфигурации запуска.
Исходная подборка лежит в файле в самом проекте. В нём 2008 запросов: 1687 текстовых, 300 структурированных (где запрос оформлен как небольшая анкета с полями) и 21 для работы с картинками. Такой набор входит в исходный проект. Сколько запросов на живом сайте сейчас, я по файлам подтвердить не могу: при заполнении базы они подтягиваются с сайта исходного проекта, и число могло измениться.
Что сделано нами, по файлам настроек и разметке:
- Оформление и название. Сайт называется «V3Ko Prompts», основной цвет — голубой неон на тёмном фоне, плоский стиль. Убраны логотипы и ссылки исходного проекта, реклама спонсоров и блок достижений.
- Язык. Включены русский (по умолчанию) и английский. Исходный проект знает семнадцать языков, но мы оставили два.
- Вход. Только по электронной почте и паролю, регистрация открыта. Входы через сторонние сервисы отключены.
- Исправление ошибки. Раньше вход не срабатывал, если человек писал адрес почты с другим регистром букв, чем при регистрации. Теперь адрес приводится к одному виду.
- Описания по-русски. Мы написали два скрипта: один переводит английские описания запросов на русский, второй сочиняет описание там, где его не было или оно из одного слова. Работает это через нейросеть DeepSeek: она читает текст запроса и пишет одно-два предложения. Скрипты можно запускать повторно, уже готовые описания они пропускают.
- Отдельный экземпляр для программного доступа. У проекта есть возможность подключать библиотеку к нейросетевым помощникам (протокол MCP). Мы обнаружили, что запросы к этому адресу ломали остальные страницы сайта: они начинали отдавать ошибку. Обойти это внутри проекта не вышло, поэтому мы запустили вторую копию приложения только для этого адреса, а nginx направляет туда именно этот трафик.
- Забота о работе сайта. Есть ежедневное резервное копирование базы: копия хранится у нас семь дней и на Яндекс.Диске четырнадцать дней. Есть сторож, который проверяет здоровье контейнеров, перезапускает зависший и присылает сообщение в Telegram. Журналы ограничены по размеру, у контейнеров стоит потолок по памяти.
Всё остальное — страницы, поиск по разделам и меткам, голосование, история изменений запросов и заявки на правку — принадлежит исходному проекту, и мы этого не переписывали.
Что уже работает
Сайт отвечает по адресу prompts.v3ko.ru, я проверил это при подготовке статьи. Внутри:
- листание и поиск по разделам и меткам;
- копирование запроса в один клик;
- регистрация и вход по почте и паролю;
- личные подборки и закрытые запросы;
- голосование, комментарии и таблица лидеров;
- история изменений запроса и заявки на правку, когда кто-то предлагает улучшение;
- страницы на русском и английском;
- резервные копии и сторож на случай сбоя.
Лицензия у исходного проекта двойная: программа распространяется свободно, а сами запросы отданы в общественное достояние, то есть ими можно пользоваться как угодно.
Что пока не работает
Список честный, потому что иначе это была бы реклама.
- Умный поиск и создание запросов с помощью нейросети выключены. Для них нужен платный ключ от OpenAI, у нас его пока нет. В настройках это отмечено словами «пока без OpenAI ключа». Значит, поиск идёт только по словам и меткам, а не по смыслу.
- Тексты самих запросов по-русски не переведены. В проекте нет средства, которое переводит сами тексты, только описания. Открыв запрос, вы, скорее всего, увидите английский текст. Описания переведены нейросетью автоматически и вручную не вычитывались: неточности возможны.
- Повторять заполнение придётся вручную. Когда мы подтягиваем новые запросы из исходного проекта, описания снова остаются английскими или пустыми, и оба скрипта нужно запустить заново. Автоматически это не происходит: в самих скриптах запуск после каждого обновления отмечен как ручной шаг.
- Языков только два. В браузерной части остался полный список языков и английский по умолчанию: настройки, которые мы задаём для сервера, туда не попадают. Мы обошли это, но не убрали до конца.
- Вход только по почте и паролю. Входа через другие сервисы нет.
- Программный доступ для помощников держится на обходном решении. Две копии приложения вместо одной, и стандартная проверка здоровья для второй непригодна, для неё пришлось придумывать свою. Причину поломки мы пока не устранили.
- Автоматических проверок под наши доработки нет. В папке с проверками один файл, и он относится к исходному проекту.
- Наши изменения лежат поверх снимка исходного проекта и не оформлены в отдельную историю, поэтому по ним сложно проследить, что и когда менялось.
- Кое-что в документации осталось от исходного проекта и к нам не относится: например, цифры о звёздах на площадке для кода и сведения о числе языков. Верить этим цифрам мы не предлагаем, только настройкам и коду.