GitHub Copilot теперь может сообщать разработчикам, когда его предложения совпадают с кодом в публичном репозитории

GitHub Copilot изменил то, как разработчики пишут свой код. Однако он также может создавать проблемы, когда создает код, похожий на то, что уже доступно в другом публичном репозитории. В 2022 году GitHub запустил функцию, которая позволяла пользователям автоматически блокировать предложения совпадающего публичного кода. По словам представителя GitHub, эта система срабатывала бы менее чем в 1% случаев. Но иногда разработчикам может понадобиться увидеть, что это за фрагменты кода — либо чтобы использовать их (в рамках лицензионных ограничений, установленных их компаниями), либо, возможно, использовать всю библиотеку, из которой взят этот фрагмент.

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

GitHub продемонстрировала эту функцию еще в ноябре прошлого года, но, очевидно, на ее выпуск потребовалось немало времени.

Как рассказал генеральный директор GitHub Томас Домке, Microsoft, GitHub и большинство корпоративных клиентов Copilot использовали оригинальную функцию блокировки, но он также отметил, что это довольно грубый инструмент. «Он дает вам мало контроля, чтобы самим решить, хотите ли вы взять этот код и приписать его к лицензии с открытым исходным кодом. Он фактически не позволяет вам обнаружить, что может существовать библиотека, которую вы могли бы использовать вместо синтеза кода», — сказал он. «Это мешает вам исследовать эти библиотеки и отправлять запросы на их использование. Вы можете воспроизводить все, что уже существует в каком-то репозитории с открытым исходным кодом».

Домке указал, что это часто относится к общим компьютерным алгоритмам, таким как сортировка, которые имеют тенденцию существовать во многих разных местах. Теперь разработчики могут либо отклонить код, либо использовать его напрямую — при условии, что библиотека это позволяет — либо попросить Copilot переписать код так, чтобы он больше не совпадал с оригинальным кодом.

На данный момент невозможно видеть результаты, соответствующие только определенным лицензиям, но команда активно ищет отзывы, чтобы понять, запрашивают ли пользователи такую функцию.

«Мы позволяем людям понять совпадение, а затем пойти и исследовать или принять правильное решение», — сказал Домке. «Я думаю, это восполняет пробел, который был в первоначальном решении».

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

В основе этого лежит очень быстрая поисковая система (GitHub говорит, что хочет поддерживать задержку на уровне 10-20 мс), которая может быстро находить совпадающий код и его лицензию. На данный момент фрагменты совпадающего кода перечисляются в том порядке, в котором находит их поисковая система. В своем первоначальном анонсе прошлого года GitHub заявила, что разработчики должны иметь «возможность сортировать этот список по лицензии репозитория, дате фиксации и т.д.», так что возможно, что позже они добавят эту функциональность.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *