Рубріки: Machine Learning

На что способен новый ИИ-ассистент для кодеров Copilot X: первые впечатления

Сергій Гузенко

Мы продолжаем следить за новыми инструментами для разработчиков на основе генеративного ИИ. Сегодня в поле нашего зрения попал один из самых интересных и перспективных экземпляров – Copilot X.

Это полноценный цифровой ассистент для кодеров на базе GPT-4, который может помочь с написанием нового кода, рефакторингом, автотестированием – и вообще, юз-кейсов ему придумывают немало. Пора взглянуть на Copilot X, чтобы оценить его современные возможности и потенциал. 

Что такое Copilot X

Искусственный интеллект автодополнения кода Copilot был запущен командой Github еще в 2021 году, задолго до волны хайпа вокруг ChatGPT. Но совсем недавно, в марте, он получил большое обновление с умным чатом. Второй пилот понимает естественный человеческий язык и встраивается непосредственно в IDE, чтобы на 100% понимать код разработчика и контекст его проекта. 

В GitHub говорят, что с помощью ИИ кодеры даже смогут кодировать без клавиатуры, с помощью голосовых команд. До этого, наверное, еще далеко, но Copilot действительно дает новый опыт разработки – он помогает быстрее разобраться в документации, провести рефактор или автотесты, мгновенно создать новый шаблон с нуля. 

Как это работает?

Оценить этот опыт могут не все, доступ к Copilot X предоставляется только по листу ожидания, ведь сейчас он на этапе закрытой беты. Однако мы можем ориентироваться на первые обзоры и отзывы счастливчиков, уже пользующихся новым сервисом. 

На практике второй пилот интегрируется в IDE – точно известно о поддержке Visual Studo и VS Code. Вероятно, в дальнейшем появится поддержка JetBrains и Neovim.

Ютубер glich.stream вживую провел с новой технологией несколько экспериментов. Его цель заключалась в том, чтобы испытать возможности чата в реальных задачах разработчика. 

В первом кейсе кодер попытался использовать Copilot X, чтобы с нуля создать расширение GitHub CLI, используя Go. Поэтому он просто написал свой запрос чату на естественном языке, как он обращался бы за помощью к живому человеку: “Как мне создать расширение GitHub CLI с помощью Go?”. И в ответ чат-бот предлагает ему пошаговую инструкцию с примером кода.

Советы Copilot выглядят релевантными, особенно если представить, что эти советы адресованы новичку в Go. Да, помощник рекомендует использовать библиотеку Cobra для определения команд и соответствующую библиотеку для взаимодействия с API Github. Ассистент также сгенерировал шаблон кода – по крайней мере, с него можно начать, хотя первое решение не является оптимальным и требует определенной ручной доработки. Примечательно, что если код не работает, бот извиняется и предлагает разработчику альтернативные решения или пакеты.

Кодер призывает быть осторожным с использованием ИИ для создания проектов с нуля. Фактически мы не знаем источники инструментов, которые может предлагать бот, и это может стать вектором кибератаки для различных злоумышленников.

Во втором эксперименте glich.stream попытался применить чат-бот Copilot, чтобы разобраться в уже существующем коде. В качестве образца была взята часть исходного кода Twitter, который не так давно обнародовал Илон Маск. 

Кодер задает боту крайне короткий вопрос: что делает этот код? И Copilot в ответ начинает его описание в стиле “Капитана Очевидность”. Вряд ли это будет полезно разработчику, который стремится к полученному понятному контексту. 

Очевидно, боту требуются более предметные запросы. Разработчик в конце концов задает ему вопрос о первой попавшейся сущности в коде: “What is Stitch?”. И получает действительный полезный ответ. Copilot предполагает, что речь идет о псевдониме типа или пользовательском классе, определенном еще где-то в кодовой базе. Кроме того, бот прекрасно проявил себя, создав краткую информацию из Readme. Следовательно, если проект хорошо структурирован и наделен качественным Readme, то Copilot может сэкономить уйму времени и предоставить удобную навигацию. 

Наконец, третий эксперимент касался использования Copilot X для рефакторинга существующего кода. Как образец glich.stream использовал утилиту поиска стартовых репозиториев на Github, созданную несколько лет назад – ей как раз не помешает рефактор определенных функций и методов. 

Для начала Copilot смог на естественном языке описать параметры проекта, точно объяснить сущность кода. Это уже хороший результат. Кодер решил поручить Copilot то, с чего начал бы рефактор: заменить библиотеку Axios на интерфейс Fetch, применить async/await вместо promises. Искусственный интеллект в целом справился, к тому же помог разработчику выявить несовместимость Fetch с устаревшей версией Node.js.

Автотестирование с помощью Copilot X

Разработчик Райан Вуд в своем блоге описывает свой опыт использования бота для генерации тестов. Он попросил Copilot X попытаться сгенерировать юнит-тесты для написанной им функции, и ИИ смог сгенерировать под его запрос большую часть шаблонного кода и тестовые данные. При этом они соответствовали тем данным, которые разработчик употреблял в тестах в том же файле. “Столкнулся” бот на генерации точного SQL-запроса, который функция отправила бы на сервер, но это было легко устранить. 

В общем, Copilot показал хорошие результаты в генерации тестов, однако, как и в других задачах, ИИ нуждается в контроле и направлении. Разработчики должны быть готовы тратить время на ручную проверку и поправку сгенерированного кода для полного покрытия тестами.

Отзывы о Copilot X

Наши разработчики, которым удалось прикоснуться к Copilot X, говорят, что он прекрасно демонстрирует себя в генерации шаблонного кода, особенно когда учится на уже готовых образцах. Он “на лету” подстраивается под ваш стиль кодинга, следует синтаксису и быстро начинает выдавать результаты, которые вы легко можете воспринять за свои. ИИ также готов без подсказки применять те же пакеты, которые вы уже применяли выше, в этом же файле. А иногда может предложить и что-то от себя, за пределами очерченных вами инструментов. 

В то же время, в работе с нешаблонным кодом Copilot X скорее мешает. По крайней мере, на формулировку релевантного запроса под такую ​​задачу может уйти непропорционально много времени. Впрочем, его задача лежит в другой плоскости: Copilot вполне способен взять на себя шаблонную работу с учетом контекста проекта. Он незаменим с заполнением различных JSON-данных, построением простых элементов в React и т.д. Единственная проблема – со временем ты начинаешь слишком сильно ему доверять. 

Вероятно, с Copilot X можно извлечь гораздо больше пользы, если глубоко изучить его возможности и научиться формулировать релевантные запросы. Это, безусловно, мощный ассистент – интегрированная в IDE “консультация по гуглу”, инструмент автоматизации и генератор идей. Впрочем, на “убийцу профессии” он не похож. По крайней мере, пока он в состоянии беты, в самом начале своего жизненного цикла.

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Останні статті

Токсичные коллеги. Как не стать одним из них и прекратить ныть

В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…

07.12.2023

Делать что-то впервые всегда очень трудно. Две истории о начале карьеры PM

Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…

04.12.2023

«Тыжпрограммист». Как люди не из ІТ-отрасли обесценивают профессию

«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…

15.11.2023

Почему чат GitHub Copilot лучше для разработчиков, чем ChatGPT

Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…

13.11.2023

Как мы используем ИИ и Low-Code технологии для разработки IT-продукта

Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…

07.11.2023

Университет или курсы. Что лучше для получения IT-образования

Пару дней назад прочитал сообщение о том, что хорошие курсы могут стать альтернативой классическому образованию.…

19.10.2023