Codeium: автодополнение кода при помощи AI
Рассказываем про Codeium — AI-инструменте, который дополняет код вместо разработчика. Показываем примеры на коде Python.
8К открытий10К показов
Всем привет! Меня зовут Тимофей, я Python Engineer с опытом в 3+ года.
Сейчас происходит быстрый рост популярности различных AI-инструментов, начиная с ChatGPT и заканчивая расширениями для IDE и редакторов кода. Именно сегодня мы поговорим об одном из таких расширений, встречайте: Codeium: AI Coding Autocomplete for Python, Javascript, Typescript, Java, Go, and more.
Ремарка: Все примеры из статьи написаны на языке Python.
Данный инструмент умеет автодополнять код на основе ваших комментариев. Работает это примерно так: вы начинаете писать комментарий, например Create a class called User
, и после этого плагин начинает предлагать вам автодополнение:
После, соглашаемся на следующие автодополнения, объявляем класс Class User:
, нажимаем Tab и происходит магия! Получаем следующий сниппет:
На всякий случай, буду оставлять исходный код:
Весьма неплохо! Мы получили базовую конструкцию на основе указанных в комментарии классовых атрибутов.
Но все не так радужно, как могло бы показаться на первый взгляд. К сожалению, плагин не умеет работать со сторонними библиотеками(что не удивительно), следовательно не умеет в автоимпорты. Вот, например, что я получил при запросе Create dataclass User
:
В Python dataclass — это класс, предназначенный только для хранения значений данных. Они ничем не отличаются от обычных классов, но обычно не имеют других методов. Чаще всего они используются для хранения информации, которая будет передаваться между различными частями программы или системы.
То есть, по факту я не хотел инициализировать никаких атрибутов, потому что это бессмысленно. В реальной задаче я бы установил нужную библиотеку и использовал декоратор @dataclass-json
для хранения данных в json формате и передавал бы эти данные дальше по функциям.
Попробуем еще. Попросим создать все тот же класс User, но с указанием type hints у атрибутов и методов:
Чуда не произошло. Да, плагин не умеет работать с питоновскими тайп хинтами.
Для меня это было ожидаемо. Давайте в последний раз попробуем сгенерировать что-нибудь интересное, используя плагин. Например простую функцию, которая будет принимать список и возвращать новый список с уникальными элементами из первого:
А вот это уже будет поинтереснее! Плагин сгенерировал рабочий код и даже мини-тесты написал ?
Данный плагин позиционирует себя примерно так:
Нужно внести изменения в незнакомый язык или кодовую базу? Вместо того, чтобы тратить часы на изучение всех синтаксических и стилистических деталей, пишите комментарии на естественном языке и позвольте Codeium сделать свою работу.
После того, как я покопался в плагине все встало на свои места. Не нужно ожидать, что при помощи данного инструмента вы сможете генерировать какие-то сложные конструкции или же использовать сторонние библиотеки.
Я думаю, что плагин отлично справляется с генерацией базовых шаблонов. Например, вы можете описать классовые атрибуты или же функцию и что она должна возвращать. Codeium сгенерирует базовый сниппет с готовым кодом за вас.
На мой взгляд инструмент достаточно интересный, а что главное доступный для всех и не требующий танцев с бубном при установке. Впрочем, можете установить данное расширение для своей IDE и пощупать его сами.
Также, хотел отметить, что на сайте продукта есть интересное и подробное сравнение работы самого плагина с похожими инструментами, вроде Github Copilot или же tabnine.
Установить плагин вы можете тут.
Благодарю за внимание! Если вам понравилась статья, приглашаю подписаться на мой новый телеграм-канал, в котором я рассказываю о закулисье ИТ и разработке на Python глазами практикующего инженера.
8К открытий10К показов