GitHub Copilot предупреждава за неоригинален код

Използването на асистенти за програмиране като Copilot създава някои проблемни ситуации
(снимка: CC0 Public Domain)

Задвижваният от изкуствен интелект асистент GitHub Copilot улесни програмистите, но понякога предлага кодови фрагменти, които вече са в публични хранилища, и това води до основателни претенции от разработчиците.

През 2022 г. GitHub предложи опция за автоматично блокиране на предложения, съдържащи неоригинален код, но в някои случаи програмистите все още смятат за необходимо поне да се запознаят с него. В опит да намери средно положение, GitHub започна да тества функция, която ще даде на потребителите избор.

Сега Copilot не блокира автоматично неоригиналния код, но го показва в страничната лента, позволявайки на разработчика да реши какво да прави с него. С течение на времето тази функция ще се премести в Copilot Chat.

Функцията за блокиране е избрана от повечето корпоративни клиенти на GitHub, включително служители на Microsoft и GitHub, обясни главният изпълнителен директор на платформата Томас Домке, цитиран от TechCrunch.

Но този подход може да се опише като твърде груб – винаги съществува възможността „да възпроизвеждате всичко, което вече съществува в някои хранилища с отворен код”. Често това се отнася за основни алгоритми, като например сортиране, което по правило съществува в голямо разнообразие от проекти.

Сега програмистите имат избор: да откажат предложения кодов фрагмент; да го използвате директно, ако лицензът го позволява; или да помолят Copilot да пренапише фрагмента, за да избегне пълно копие. В момента GitHub работи, за да гарантира, че примерните кодове, предоставени от Copilot, са заимствани само от проекти, чиито лицензи позволяват това.

Вероятността за явно заимстване на код е по-голяма в началото на проекта, когато обемът на контекста е минимален. Докато работите по проекта, Copilot предлага все по-малко фрагменти, съдържащи се в други хранилища.

Функцията се основава на много бърза търсачка – в бъдеще забавянето ще бъде намалено до 10-20 ms. Системата бързо открива необходимия код и посочва неговия лиценз. Фрагментите са изброени в реда, в който ги намира търсачката, но разработчиците ще имат различни опции за сортиране: по дата, тип лиценз и други критерии.

Коментар