Как использовать ИИ в программировании? Рассказывает разработчик

Своим опытом укрощения ИИ поделился Алексей Мартынов, программный директор Яндекс Практикума. Он рассказал, какие нейросети пригодятся разработчику и для чего. А еще на реальном кейсе показал, как их использовать, и дал советы новичкам.

Как использовать ИИ в программировании? Рассказывает разработчик Программирование, Обучение, IT, Личный опыт, Нейронные сети, Искусственный интеллект, Длиннопост, Блоги компаний

Какие нейросети я рекомендую для работы программисту

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

Пожалуйста, соблюдайте правила общения в блогах компаний

Лига программистов

1.6K поста11.5K подписчиков

Добавить пост

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества