Эксперименты с генерацией приложений с помощью LLM
Вчера в разговоре с JByte зашла речь о том, что специализированные нейросети для генерации UI выдают код на React+Tailwind, и ничего другого не умеют, из-за чего приходится тратить много времени приходится тратить на перевёрстку на чистый HTML+CSS, либо жертвовать чистотой кода, пытаясь скопировать из консоли разработчика итоговый код с кучей лишних тегов и огромными списками классов для каждого. С подачи JByte решил попробовать вместо специализированных LLM нейросети общего назначения, в частности, DeepSeek как наиболее доступный вариант. Раньше у меня было предубеждение, что текстовые нейронки хорошо подходят только для сбора и анализа информации или разговора в режиме диалога, а при попытке генерировать дизайн сайта ничего хорошего из не выйдет, но оказалось, что был не прав. Сначала DeepSeek сгенерировал вполне качественный шаблон страницы блога (правда, совершенно не подходящий конкретно под мой сайт но справедливости ради, в отличие от Backery UI, я не указывал DeepSeekу, что нужно использовать мой сайт в качестве референса). Ещё обнаружилось, что в DeepSeek встроили режим предпросмотра сгенерированного HTML (где-то год назад уже пытался генерировать на нём HTML, но тогда приходилось каждый раз сохранять в файл и открывать локально).
Потом я дал ему другую задачу — сделать стартовую страницу с виджетами трёх типов: простой todo-лист, заметка, набор ссылок. И примерно за час получил работающий аналог Start.Me на чистом HTML+CSS+Javascript без всяких frameworkов весом в 55 Кб (одним файлом без минификации) Причём половина этого времени ушла на мелкие правки в духе «переставь такой-то элемент туда-то». Точнее, пока что готова только интерфейсная часть, без сохранения данных на сервере. В ближайшие дни попробую проверить, сможет ли он написать серверную часть так как надо — с пересылом не просто нового состояния страницы, а списка изменений (да ещё с предварительной буферизацией в localStorage для поддержки оффлайн-режима). Впрочем, даже если не получится, то всё равно экономия времени огромная — ведь больше всего времени у меня как раз уходит на интерфейс. Так что, возможно, в скором времени у меня будет своя self-hosted альтернатива для Start.Me, да ещё и с нормальной поддержкой оффлайн-режима!