Полный плюс вайб: что такое вайб-кодинг и как его для него применять ИИ
Эксперты Т1 очерчивают границы возможностей современных нейросетей для написания кода в зрелых продуктах.
Вайб-кодинг по определению — это метод программирования, который основан на использовании больших языковых моделей и искусственного интеллекта для генерации программного кода на основе текстового запроса пользователя. Часто используется для быстрых экспериментов, поиска идей или прототипирования. С ростом популярности ИИ выросла и популярность вайб-кодинга: нейросети помогают на лету генерировать код и проверять гипотезы без долгой подготовки.
Мы решили узнать, можно ли использовать такой подход при работе в большом ИТ-холдинге над зрелыми продуктами, есть у вайб-кодинга подводные камни, а также для каких задач ИИ подходит лучше всего, у трех специалистов Т1 — задавали вопросы, а после собрали этот материал. Отвечали:
Вспомогательные сервисы против рутины
Профессионалы в ИТ используют ИИ для ограниченного круга задач. В главную очередь, для небольшой автоматизации. Например, нам нужно распарсить большой неструктурированный файл — превратить набор сырых данных в понятные программе объекты: строки, таблицы, списки, словари и так далее. Это задача на 50 строчек кода, с которой ИИ справится за пару минут, а мы получим на выходе документ для работы.
Ещё одна вещь, с которой ИИ справляется легко — небольшие Telegram-боты. Например, для отправки изображений через внешний API, бронирования услуг или автоматического ответа на часто задаваемые вопросы. Делается это буквально за 1–2 запроса к нейросети. По нашим оценкам, в 90% случаев чат-боты собираются именно через ИИ.
Третий тип посильных для ИИ задач — тесты. Можно попросить нейросеть создать данные для нагрузочных тестов, чтобы проверить тот код, который сама же модель написала. Это сокращает время на придумывание значений, что может быть и сложно, и уж точно неинтересно.
И последнее направление, где стоит активно вооружаться ИИ — MVP и хакатоны. Их объединяет тот факт, что разработчику нужно показать концепт функционала продукта и за ограниченное время проверить гипотезу. Если она подтвердится, можно качественно переписать всё с нуля, если нет — ничего страшного, так как мы потратили на задачу меньше времени, чем если бы писали всё вручную.
В целом, можно ориентироваться на бенчмарк в 100 строчек кода от ИИ для готового продукта. Причем после тщательной проверки и полного понимания, что каждая строка значит. В основном же функционал ИИ для вайб-кодинга ограничивается вспомогательными одноразовыми задачами.
С глобальными продуктами, где нужно хорошо продумывать архитектуру и вопросы безопасности, ИИ не помощник. Максимум, что можно здесь выжать из нейросети — использовать его как энциклопедию и просить подсказать какие-то концепции, о которых мы, возможно. не знаем. Но знакомиться с ними и во всем разбираться в данном случае всё равно придется самим.
Как правильно формировать запрос к нейросети
Перед тем, как отправлять запрос нейросети, полезно поставить себя на её место. Представьте, что к вам приходит коллега с задачей. Прежде, чем приступить к работе, вы задаете ему ряд уточняющих вопросов, чтобы погрузиться в контекст. То же самое и с нейросетями.
В промпте должно быть явно указано:
- что именно вы хотите от кода — точно сформулированный финальный результат;
- на каком языке программирования писать;
- какое окружение предполагается;
- где должен запускаться код;
- если нужна сопутствующая документация, тоже это указываем.
Для нейросети нет само собой разумеющихся вещей. Если код нужен на Windows или на Linux, то так мы и пишем. Будут ли это удаленные сервера, работа в контейнерах или нет, какая версия языка, баз данных и библиотек используется — чем больше уточнений, тем лучше. Потому что, например, в зависимости от разных версий библиотеки код тоже будет различаться.
Если этого не сделать, то бот может быть написан для старой версии Telegram и не работать в текущем приложении как надо. Конечно, профессионал быстро поймет, в чем проблема, и уточнит запрос, но для новичка подобное может стать задачей на несколько часов.
Полезно показать нейросети конкретный пример, если он есть, когда похожая задача выполнялась разработчиками. Например, если мы уже соединяли ранее базу данных с векторной базой, а сейчас ту же самую базу нужно соединить с другой сущностью, можно поделиться наработками с нейросетью, чтобы она лучше поняла, как вы работаете. Но с примерами нужно быть осторожными из соображений информационной безопасности: реально действующий в продуктах код в ИТ-холдинге Т1 и у других крупных вендоров запрещено передавать код внешним нейросетям, так как существует риск учетки кодовой базы конкурентным компаниям. Исключение составляют нейросети, которые одобрены в контуре компании. В ИТ-холдинге Т1, к примеру, такая есть.
Для исправления ошибки обычно достаточно передать её текст ИИ — нейросеть, как правило, после со всем справляется сама. Что касается уточняющих запросов внутри чата, то здесь иногда полезно открыть чистый лист и попросить помочь с задачей заново с учетом уточняющих промптов. У ИИ есть так называемое контекстное окно — в какой-то момент нейросеть переключается только на исправление текущих ошибок, но совершенно забывает про начальную задачу. Это контекстное окно — ещё одна причина, по которой нейросети не стоит доверять большие задачи и продукты.
«Недавно я тестировал модели, которые автоматически создают и дописывают проект по промптам. Спустя несколько итераций уточняющих запросов нейросеть предложила начать всё сначала и выдала команду, которая удаляет всю папку проекта. Как минимум, из-за таких случаев нельзя бездумно забирать код у нейросетей через copy-paste. ИИ не несёт никакой ответственности за последствия, поэтому и проверка здесь обязательна»,
Вайб-кодинг не заменяет профессионализм
Недостаток контекста — одна из причин, почему нейросети выдают некорректные решения, и вайб-кодинг должен работать в связке с пониманием и верификацией живого человека. Так что copilot и остальные инструменты лишь дополняют разработчика, а всех пользователей можно условно разделить на три категории:
- Те, кто ничего не знают и используют генераторы кода. Здесь вайб-кодинг часто приводит к краху, а нейросети совсем не помогают.
- Те, кто имеют базу в программировании, понимают контекст и умеют править код.
- Те, кто обладают глубокой экспертизой и понимают архитектуру решения. Для них ИИ и вайб-кодинг становится ускорителем и помогает генерировать нужный код с минимальным числом ошибок.
«Однажды я попросил сгенерировать скрипт, который настраивал инфраструктуру на сервере. Сначала показалось, что код написан правильно, он круто работает, но иногда возникают какие-то проблемы. Когда стал разбираться, увидел, что решение не подтягивало некоторые переменные из аргументов, а просто само их инициировало. Из-за этого и появлялись баги. Нейросети не хватило контекста, чтобы изначально верно сгенерировать код. Но, благодаря пониманию каждой строчки кода, я смог быстро исправить вручную»,
Всё это показывает, что ИИ не является волшебной кнопкой для вайб-кодинга, но может эффективно использоваться специалистами в ИТ разного уровня. Для новичков ключевой здесь является образовательная функция: нейросеть может и написать код, и помочь разобрать его на составляющие, и дать выжимку по решениям на GitHub с пояснениями и примерами. Это улучшит понимание предмета и позволит перейти с первого на второй и третий уровни, где ИИ уже становится действительно полезным.
Второй вывод состоит в том, что ИИ сильно меняет рутину профессионалов в ИТ. Зачастую они не только пишут сами, но и выступают в роли консультантов для нейросетей — дают советы, направляют, корректируют, оценивают, пока система сама программирует.
Вместо заключения: список полезных продуктов
В финале приведем список решений, которые помогут в вайб-кодинге. Для парного программирования с AI-помощником могут быть полезны следующие сервисы:
Для UI-прототипирования можно использовать https://lovable.dev/ и https://replit.com/. И не забывайте заглядывать в рейтинг LLM-моделей на openrouter.ai, чтобы работать с самыми совершенными на данный момент нейросетями.