Российские нейросетевые инструменты уже прочно вошли во все сферы жизни: узнать информацию из интернета или провести математические расчёты через чат или вслух с помощью отечественного ИИ — уже обычное каждодневное действие.
Но общаться с ИИ через чат в формате "вопрос-ответ" — технология уже не самая интересная. Куда интереснее ИИ-агенты, которые не просто дают советы, а действуют для решения задачи, поставленной человеком. И у Сбера есть уже 2 решения для разработки с помощью ИИ-агентов: GigaStudio и GigaIDE, а также ИИ-ассистент GigaCode для других IDE.
Развитие ИИ в разработке
Доля человека в рутинных задачах по созданию программных продуктов планомерно сокращается весь компьютерный век (скоро это будет реально целый "век", кстати): сначала программы были заложены аппаратно, и требовалось спроектировать новую электросхему для новой программы, затем человечество пришло к перфокартам, которые давали возможность гибкого ввода каждый раз новой программы в вычислительное оборудование, ну а затем, шаг за шагом, мы пришли к текстовому программированию.
И на самом деле, когда слово в исходном коде программы, написанное на человеческом языке, через несколько аппаратно-программных посредников становится единицами и нулями в вычислительном ядре процессора — это не меньшее достижение цивилизации, или даже "чудо", чем разработка через нейросетевых агентов.
А главное — сохраняется фундаментальный тренд: зачем программисту тратить уйму времени на составление инструкций для компьютера, если мы можем дать ему более совершенный инструмент и ускорить разработку ПО. А раз ускорить — значит удешевить. Ну а раз удешевить — это привлекает инвестиции, а заодно делает хорошие программные решения доступнее для человечества.
Перфокарты, конечно, я не застал, но на личном опыте программирования наблюдаю интереснейшую эволюцию процесса создания ПО:
- Ещё в начальной школе я покупал и скачивал книги по программированию: разного рода учебники и самоучители, из которых я узнавал об основах структуры программы, и из которых перепечатывал примеры. (К слову, примерно в то время я ходил на курсы по программированию, где учили сначала писать программы правильно на листочках, а уже потом вбивать их в компьютер.)
- Потом книги отошли на второй план, и я стал копировать код с популярных ресурсов с вопросами и ответами от программистов, а также из документации.
- Следующим эволюционным скачком стала возможность генерировать куски кода через нейросеть, как через чат, так и через ИИ-автодополнение в строке среды разработки. И на этом этапе российские нейросети уже стали хорошим помощником в разработке.
- И вот теперь можно ставить задачу нейросети и получать на выходе уже готовый продукт. Да, пока с определёнными ограничениями, но тем не менее ИИ-агенты творят чудеса.
Что будет пятым пунктом — очень интересно)
В целом, можно графически отобразить эту эволюцию следующим образом:
Нейросеть-расширение GigaCode
Что можно искать в интернете через чат с нейросетью, например, GigaChat, которую я использую примерно каждый день, — уже давно понятно. И, в целом, написать кусок кода по запросу (или целое одностраничное приложение из одного файла) нейросеть в режиме чата уже, безусловно, может.
Так почему бы не интегрировать чат с ИИ прямо в среду разработки? В Сбере так и сделали: создали расширение для различных сред разработки, включая VS Code, JetBrains, Android Studio и других.
На практике это означает, что можно, например, открыть пустой файл, написать запрос в боковой чат, и одной кнопкой вставить код в пустой файл. Далее можно дорабатывать код по частям через запросы в чате, вставляя новые куски кода или заменяя предыдущие.
Например, попробуем создать одностраничный графический редактор, который может осуществлять обрезку фотографий. Составим запрос, подробно указав свои требования (промт составил 73 слова), и скормим его расширению VS Code. Сгенерировался код из 322 строк, который получилось одним кликом вставить в созданный вручную пустой файл.
Не скрою, что после первой генерации кода потребовались некоторые доработки и исправление ошибок, да и вариация получилась «творческой», но в целом всё получилось весьма достойно, ведь я совершенно не влезал в сам код:
И круто тут то, что эта штука действительно работает: я обрезал фотку, пусть и примитивно, и скачал кадрированное изображение. Можно ли сделать круче, добавив всякие комфортные штуки — конечно можно, и можно это делать в таком же режиме, нет предела совершенству.
Среда разработки с ИИ-агентом GigaIDE
Можно заметить, что процесс разработки при использовании GigaCode требует ручных действий с кодом, даже если они нам сейчас не нужны, и мы хотим "программировать" обычными указаниями на русском. И в GigaIDE — собственной среде разработки от Сбера, которая работает в том числе на россйиских ОС — доступен ещё более крутой уровень автоматизации: можно просто открыть пустую папку, написать аналогичный запрос, и... нейросеть всё сделает сама, предлагая пользователю правки в файлах или выполнение консольных команд. Пользователю остаётся только соглашаться или отказываться от предлагаемых действий, которые будут совершены с системой от его имени.
Результат — такой же достойный. Только больше автоматизации по запросу.
Облачный ИИ-агент GigaStudio
Если предыдущие решения требовали ПК со средой разработки (пусть даже облачной, такая у Сбера тоже есть, но пока без ИИ-агента), то вот следующее решение ещё более интересное: GigaStudio работает по запросу полностью самостоятельно, в облаке, создавая и репозиторий для хранения исходного кода, и поднимая виртуальный сервер, и создавая код приложения, и запуская сервер со свеженаписанным кодом. Причём работает это даже со смартфона, что вообще невообразимо круто!
В создаваемом репозитории поддерживается единственно возможная структура NPM-приложения, а агент просто каждый раз переписывает его главные файлы и фиксирует изменение в ветке для разработки. Это можно потом использовать и для разработки в ручном (или предыдущем) режиме, и для управления версиями.
Недостатки сегодняшних ИИ-решений для разработки
На сегодняшний день я вижу, что ИИ-агенты в таком исполнении имеют 3 слабых места:
Недостаточная гибкость архитектуры и технологий
Думаю, это "узкое место" весьма временное, но не могу его не отметить: в GigaStudio используется только заданная архитектура NPM-приложения, для запуска которого нужен сервер. Даже если просить систему генерировать, например, одностраничное html-приложение, пока такое не разрешено, хотя единичная html-страница — классный формат для маленьких приложений без сервера, которые можно выкладывать, например, на GitVerse Pages.
Отсутствие серверной базы данных
А вот это уже проблема более серьёзная: "настоящие" приложения при автоматизации реальных бизнес-процессов (для создания которых нанимают разработчиков) должны где-то сохранять данные. Вероятно, это уже вопрос экономический, ведь если добавить сохранение в облачную БД — творения ИИ-агента, как и самую такую облачную БД, можно будет использовать в реальных бизнес-задачах и создавать серьёзные коммерческие проекты. Вероятно, в рамках бесплатного ИИ-агента мы это не увидим.
Но было бы совершенно честно и оправданно поднимать бесплатную временную базу данных, чтобы можно было создать приложение, и просить деньги за сохранение её состояния.
Ручное тестирование
И самый серьёзный недостаток: у знакомых с разработкой читателей наверняка уже созрел вопрос, автоматизируется ли тестирование такого приложения самим ИИ-агентом, — так вот, ответ — совершенно НЕТ. Это означает, что ИИ-агент ведёт себя как программист, который написал теоретически верный код, отчитывается об успешном выполнении задачи, а вот что будет, когда код откроют и попробуют выполнить в нём все требуемые действия — лотерея.
Получая новую доработку от агента, следует её протестировать и зачастую отправлять на доработку, так как вероятность, что что-то сделано ошибочно, недоделано или даже что-то стало хуже, немаленькая. Хотя в целом общее наращивание качества и функционала происходит, но не без ошибочных доработок, которые надо иметь в виду. И для скорейшего исправления ошибок необходимо уже разбираться в программировании, давая ИИ советы.
Что в итоге
Что уже сегодня можно на 100% в работающем виде создать ТОЛЬКО через российские ИИ-агенты (без вмешательства в код и реального программирования) — это лендинги, сайты-визитки и небольшие сервисы типа обрезки фото/видео, редактирования векторных изображений, конвертации файлов, разного рода калькуляторы — в общем, маленькие приложения с хранением данных разве что на устройстве пользователя.
Для реальных задач, для автоматизации бизнес-процессов с сохранением результата в базу данных (пока что и временно) нужны навыки программирования. Да и ручное тестирование пока никто не отменял, хотя я уверен, что близок тот день, когда ИИ-агент сначала применит изменения, а потом запустит внутри себя невидимый браузер, в котором проверит их, нажимая невидимой мышью на кнопки и анализируя изображение, которое становится результатом клика. Но это пока что, видимо, дороговато.
Спасибо, что прочитали, подписывайтесь на канал, у меня много интересного об импортозамещении в электронике и ПО