Эксперимент с генерацией кода с помощью ИИ

Oct 22, 2024 22:58

Сегодня меня опять потянуло в направлении Web-программирования.
Интерес к информационной безопасности поутих, зато
снова крутится в голове идея сделать движок для сообщества, аналогичный
Pikabu или DTF, в идеале - с поддержкой PWA (и оффлайн-режима), протоколов
IndieWeb и ActivityPub. Ну или для начала прикрутить PWA хотя
бы к IntB.

Смотрел разные инструменты и технологии, и в итоге наткнулся
на Bolt.new - генерацию
приложений с помощью ИИ. К подобному я отношусь довольно скептично,
но всё же решил попробовать. Запросил у него приложение, похоже на стену
в социальных сетях. Увы, оказалось, что Bolt не поддерживает PHP
(эх, вот теперь реально начинаю верить, что PHP может отмереть). Пришлось
соглашаться на то, что дают - Node+Express и better-sqlite3 вместо
просто sqlite. Всякие frameworks типа React или даже Svelte я использовать
не стал, указал, что проект должен быть на чистом Javascript. Код
сгенерировался, но на самом сервере запускаться отказался - какая-то
ошибка с bindings для better-sqlite. Но я просто так не сдался, скачал
проект к себе на компьютер и запустил там. К моему удивлению, заработало!

Правда, изначально в проекте не было почти ничего: ни разбиения
на страницы (хоть какого-нибудь), ни нормальной регистрации пользователя,
ни даже отправки сообщения через AJAX, без перезагрузки страницы.
Можно было только ввести имя пользователя, после чего появлялось
поле для отправки самого сообщения и кнопка рядом с ним. Ну и выделялись
хештеги как ссылки (я сразу написал, что должна быть их поддержка),
но при этом выборки постов по хештегам тоже не было.

Я стал
экспериментировать дальше. Сначала запросил добавку разбиения на страницы
(кстати, не знаю почему, но терпеть не могу его делать, и мои собственные
проекты часто именно на этом этапе и застревают). Сработало как-то
криво: кнопка появилась, но выводиться стало по 4 сообщения, а не
по 10, как я запрашивал. Но вот при нажатии кнопки более старые соощения
не подгружались. Потом запросил отправку сообщения через AJAX, без
перезагрузки страницы - тут всё прошло хорошо. Дальше попросил бота добавить
блок входа пользователя и страницу восстановления пароля, но,
кажется, это оказалось за пределами его возможностей. Точнее, он написал
код, который генерирует/проверяет JWT, сделал форму входа и ссылки
для регистрации и восстановления пароля, но при попытке ими воспользоваться
ничего не происходит. Да ещё сначала выдалась какая-то ошибка. Я
так и не понял, в чём дело: то ли токены для генерации закончились, то
ли задача оказалась слишком сложной для ИИ на данном этапе. Была ещё
мысль дать команду на рефакторинг кода - вынести код для пользователей
и код для постов в отдельные модули из server.js, но из-за того, что
токены кончились, не стал экспериментировать.

В общем, пришёл
к выводу, что пока что писать серьёзный код ИИ не готов. Даже для таких
достаточно простых приложений. Максимум - подойдёт для быстрого прототипирования
или обучения. Интересно, а есть ли self-hosted решения для
таких задач? UPD: Как выяснилось, есть как минимум Tabby, FauxPilot
и FireCode. Возможно, потом попробую…

Зато этот эксперимент
поменял моё отношение к NodeJS. Прежде у меня было мнение, что NodeJS
очень прожорлив в плане потребления памяти и поэтому не подходит
для low load проектов на слабых VDS. Но запустив сгенерированное приложение
у себя на компьютере, обнаружил, что RSS его процесса составляет
всего 60 Мб. Для сравнения, суммарный RSS всех процессов php-fpm на VDS,
где стоит этот сайт - 90 Мб.

Репост с сайта 4xpro.ru.

ии, компьютерное

Previous post Next post
Up