Как использовать ИИ в программировании? Рассказывает разработчик
Своим опытом укрощения ИИ поделился Алексей Мартынов, программный директор Яндекс Практикума. Он рассказал, какие нейросети пригодятся разработчику и для чего. А еще на реальном кейсе показал, как их использовать, и дал советы новичкам.
Какие нейросети я рекомендую для работы программисту
Github Copilot
Для чего пригодится: ИИ-копилот позволяет быстро разрабатывать и находить проблемы в коде, повышая производительность опытных разработчиков в разы.
Вместе с редактором WebStorm выводит скорость написания кода на новый уровень. Но, конечно, при правильном применении. Новичкам в разработке, вероятно, будет мешать. Но если вы знаете, что вам нужно получить, подготовите контекст и запросите генерацию, то получите строго необходимый результат.
По сравнению с Amazon Whispers эта нейросеть работает несравнимо лучше. Сейчас JetBrains еще предлагает собственный AI-помощник в редакторе, но пока мало успел им попользоваться и не составил точного мнения. Хотя теоретически он должен работать лучше.
ChatGPT-4o
Для чего пригодится: GPT в новой версии отлично справляется с анализом графических изображений, неплохо переводит UML-диаграммы в код. Или, например, может выполнять несложную верстку по изображению.
Чат и до этого был неплохим помощником при проверке кода, генерации болванок и сниппетов. Но теперь, с расширенным контекстом и лучшим распознаванием изображений, обрел много новых вариантов применения.
Автоматизировать работу также поможет YandexGPT. Нейросеть ответит на вопросы по коду, объяснит работу алгоритмов и структуры данных.
Google TensorFlow
Для чего пригодится: это и все остальные решения требуют уже гораздо более глубокого погружения, но меняют сам подход к работе с кодом. Теперь программы — это набор действий, а их порядок может определяться моделями машинного обучения.
Google TensorFlow — это не только про анализ данных, но в том числе и отличное средство для формирования обучаемых программных систем на стыке обычного кода и машинного обучения. Очень производительное API, достаточно удобно встраиваемое в код.
Если вы только начинаете свой путь в разработке, но очень хотите попробовать нейросети в деле, перед этим пройдите наш бесплатный курс по основам программирования, чтобы лучше понимать код. А потом при желании можете освоить бесплатные курсы с базой по Python-разработке и Go.
Насколько нейросети экономят разработчику время
Работать в нейросети в виде чата — самый неудобный способ. Но если использовать API и предоставлять соответствующий контекст для заготовленных и отработанных запросов, то рабочую среду можно автоматизировать очень и очень сильно.
Мало того, в GPT, например, можно создавать агенты, которые могут даже исполнять произвольные действия. Аналогично используя API, можно реализовать и у себя на компьютере или сервере и использовать в повседневной работе. Такое применение устраняет большую часть рутины и может экономить до 60–70% времени, позволяя сконцентрироваться на важных задачах.
А теперь давайте разберем работу с ИИ на конкретном кейсе
Примеров применения нейросетей в программировании много, но мало какой кейс влезет в короткий текст, так как ежедневно используется в больших проектах. Из небольшого — это, например, быстрое прототипирование онлайн-сервиса для обрезки изображений в качестве учебного примера. Использовались Github Copilot и ChatGPT-4o.
```copilot
generate open api swagger defenition for photo crop service with following routes:
— post request for files upload return id for each file
— get request with id parameter for download image preview
— post request for croping array of prevoiously uploaded files by id and crop settings, return task id
— get request for downloading zip archive by task id
```
Генерация промежуточных типов, конфигов, описаний API и прочего значительно улучшает последующие результаты, но их нужно отсматривать и корректировать. После этого можно подготовить и настроить проектную директорию для бекэнда и сгенерировать сервер.
```
With open api defenition in api.yaml file generate routes realisation for express server using multer for file handling. Use unique identifiers for uploaded file names based on uuid package.
```
Причесываем код, устраняем ошибки. При генерации их всегда хватает, но можно скормить его GPT и попросить найти ошибки или предложить улучшения и т. д. Почему не в копилот? Чтобы не загрязнять его контекст, да и непосредственно с анализом и доработкой GPT справляется лучше, а у Copilot генерация первичная на лучшем уровне благодаря проектному контексту.
Подготавливаем заготовку фронта на реакт и генерируем основные компоненты.
Для загрузки:
```
Generate typescript react component for drag and drop uploading single file to the server using this api. Component should have a setFile(fileID) prop callback called when file uploaded and pass file id to them.
```
Для кроп зоны:
```
Generate typescript react component and corresponding styles for display and edit crop zone for uploaded image. Component should accept in props imageUrl, onChange and value for crop zone editing.
```
Вуаля, осталось собрать все это вместе, исправить ошибки и т. д.
Советы программистам, которые хотят освоить нейросети для работы
Не полагайтесь на код который выдает нейросеть, чтобы работать с ним вы должны знать его значительно лучше чем она и работать с ним очень внимательно. Запросы формируйте максимально конкретно: указывайте детали, дополнительный контекст, ограничения и пр.
Используйте нейросети для быстрого прототипирования какого-то решения, после чего его можно декомпозировать уже более детально и прописать требования и ограничения для каждой части. А уже с этими требованиями сгенерировать более годный код.
Не пускайте код от нейросети в прод: в нем изобилуют уязвимости, разного рода ошибки и не самые оптимальные решения. Но это хорошая болванка, чтобы не забивать кучу лишнего.
Не пытайтесь сгенерировать сразу все :) Чем меньшими шагами вы движетесь, тем лучше результат получаете.
Если вы начинающий разработчик, не генерируйте код. Лучше отправлять его части на проверку в нейросеть — вот это будет полезно.
Для тех, кто хочет войти в мир программирования, но пока сомневается, мы приготовили бесплатный тест на профориентацию. Его разработали методисты МГУ и Яндекс Практикума: он проанализирует ваши навыки, опыт и предложит подходящие специальности.
А наши бесплатные курсы помогут узнать о разных профессиях в IT, попробовать себя в них и определиться с направлением.
Реклама ООО «Яндекс», ИНН: 7736207543