GitHub Copilot для AutoCAD.Net

Автор Тема: GitHub Copilot для AutoCAD.Net  (Прочитано 2126 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 823
  • Карма: 168
    • Мои плагины к Автокаду
GitHub Copilot для AutoCAD.Net
« : 08-11-2024, 08:04:13 »
Есть ли у кого-нибудь опыт использования Copilot для помощи в создании C#-кода плагинов? Есть ли смысл за него платить 100$ в год? (Бесплатной версии похоже нет?) Есть ли рекомендации/статьи как лучше к нему обращаться, где полезно задействовать?
Судя по его рекламе там все про корпоративную разработку и автоматизацию тестов, то есть то, что вообще не нужно программисту-одиночке.
Я пробовал помучить бесплатный ChatGPT - опыт довольно сомнительный, API AutoCAD он не знает и фантазирует что попало. Но все же иногда получается применить его код после переписывания под реальные методы из API. Зато понимает по-русски.

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 389
  • Карма: 21
Re: GitHub Copilot для AutoCAD.Net
« Ответ #1 : 08-11-2024, 19:45:49 »
Опыта нет.
А Вы думали, что ChatGPT это сверхразум? Его просто натаскали на бекэнд и фронтэнд, и стали везде рекламировать. Я думаю не надо объяснять почему его натаскивали именно на такой тип работы. Опять же, какие тесты? Вы попробуйте напишите тесты к бекэнду где крутят круды и тесты к плагину AutoCAD, где ещё навороченный интерфейс на WPF.
В специфике написания различных плагинов к *CAD, САПР, нет альтернативы как писать самому.

Оффлайн Валерий Ивлев

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Re: GitHub Copilot для AutoCAD.Net
« Ответ #2 : 11-11-2024, 15:00:01 »
Я пробовал помучить бесплатный ChatGPT
Как я знаю, для первые пяти (могу ошибаться) запросов он использует GPT-4o "omni" которая довольно сносно отвечает. Конечно часто и галюцинирует, но все зависит от правильного запроса. Лучше спрашивать по-английски.

Оффлайн avcАвтор темы

  • ADN Club
  • *****
  • Сообщений: 823
  • Карма: 168
    • Мои плагины к Автокаду
Re: GitHub Copilot для AutoCAD.Net
« Ответ #3 : 29-12-2024, 13:42:51 »
Сам спросил, сам отвечаю :) Итоги тестового месяца:
- Никакой рекламируемой бесплатной версии нет. И даже, чтоб начать пробный месяц, надо заранее ввести данные своей карты и согласиться, что деньги будут списываться без спроса.
- После активации на сайте и логина в VS появляется новая панель с перепиской с ботом. Кроме того появляются черепки (иконки Копилота) во многих панелях. Например, в панели ошибок. И главное -  в редакторе кода появляются предложения кода (серым, как и обычные подсказки). И даже комментарии он пытается завершить (на русском!)
- Заявлена какая-то помощь по поиску своего кода в решении, но все панели поиска остаются без изменений.
- Заявлена помощь в отладке, но я не заметил вообще ничего такого.
- Можно выбрать режим GPT40 или о-1. Разницы никакой я не заметил.
Опыт использования:
- Главный бонус в сравнении с ЧатГПТ - Копилот знает мой код и не требуется в вопросах к нему полностью описывать задачу. Можно упоминать классы, методы и переменные из кода и он понимает о чем речь. Он может сочинить новый метод для моего класса с вызовами старых методов и других моих классов. Это радикально упрощает запросы и расширяет сферу использования.
- Подсказки комментариев не о том, что я хочу написать. Ни разу за месяц не попали в тему.
- Подсказки кода постоянно мельтешат перед глазами, перемещают последующий код, на экране все шевелится, отвлекает внимание. Само содержимое всегда бредовое, но требует отвлечься и проанализировать его код - то или не то. Я полностью сбиваюсь с мысли, забываю, что сам задумывал. В результате эти подсказки сильно замедляют работу. Надо отключать... или привыкать.
- Ответы и подсказки содержат колоссальное количество ошибок. Он путает количество аргументов функций, путает типы переменных и аргументов. Но это сразу видит компилятор. Казалось бы, в чем проблема запустить проверку на компилируемость кода? Но гораздо хуже, что код содержит логические ошибки. Например, создаю хелпер для вытягивания региона в солид. Пишу заголовок хелпера, но мне сразу выдает подсказку на весь код (похоже взял фрагмент функции из другого файла, который я только что редактировал). По мимо того, что он подставляет в Extrude вектор вместо угла, он скопипастил создание солида с оператором using. То есть метод будет всегда возвращать уничтоженный солид. Гениально! Хорошо, что я заметил.
- Нельзя сказать, что его код совсем бесполезен. Он подсказал мне несколько фич, которые я не знал или забыл. Для примера: что DotProduct векторов положительный, когда векторы смотрят в одну полусферу; что перпендикулярный Vector2d можно построить простой перестановкой X и Y. Но вот заставить его сделать рабочий код для перемещения точки перпендикулярно линии, я так и не смог. Сначала он двигал вдоль линии, потом показал мне как получить перпендикуляр, но так и смог выбирать нужное направление из двух перпендикуляров. В сложном логическом выражении он придумал простой вариант с XOR с правильной расстановкой NOT (очень тяжелая задача для моего мозга). А в длинном (но простом) выражении предложил его уcложнить до полного маразма, вставив вместо пачки || изощренный оператор switch с where. То есть на базе его кода можно создать свой полезный код, но его ВСЕГДА надо очень тщательно проверять и ПЕРЕПИСЫВАТЬ. Это не ускорение программирования, но упрощение поиска решений.
- Перевожу плагины на 5 языков. Написал в коде строку по-русски и в окне Копилота пишу: переведи на остальные языки. То есть не говорю, что переводить, не копирую русскую строку, не говорю на какие такие "другие" языки переводить. И, вуаля, получаю код со строками на 5и (нужных!) языках, готовый к вставке. Не надо даже кавычки и переносы вставлять. И перевод качественный, не хуже Google (по крайней мере на английский). И даже лучше Google - Копилот использовал именно те термины, как я переводил в соседних строках (например, паз = slot, а не groove). Черт, это ж просто офигенно!! Могу еще долго ругать, но придется платить :)