Как стать автором
Обновить

Комментарии 27

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

Обязательно прочитаю Ваш пост вечерком. У меня есть идея непростого пэт-проекта на Python с анализом xml, возможно и правда можно его реализовать с привлечение chatGPT.

Это правда, но с позиции инструмента лишь в том, что про это нужно помнить.
Такой же ответ выдаст ваш коллега разработчик - зачастую не запустить, содержит только ключевые пункты API, не компилируется, может содержать фактологические и логические ошибки.

ясен хрен. любой чатЖПТ - это тупо база данных, набитая человеками. просто перебором выдает какой-то вариант.

Не совсем

Для программиста версия 3.5 не годится, а 4 и 4o прежде всего хороша для обучения.

Например, я в первый раз в жизни хочу сформировать CI/CD pipeline.

Есть вариант изучать документацию от сих до сих, это утомительно и если эта задача не основная, делается в конце дня, все становится слишком сложно.

Второй вариант гуглить примеры со Stackoverflow. Раньше я так и делал, но тоже требует перелопачивания кучи лишней информации.

Наконец новый стиль - GPT-4. Для начала можно загрузить куски уже существующих в проекте ананлогичных пайплайнов и попросить GPT объяснить что в них зачем. С этим GPT справляется великолепно. Затем просим подсказать как записать отдельные команды для каких-то частных целей с объяснениями. Это проще чем нагуглить эти же команды. Потом появляются вопросы типа "а вообще зачем это" и "а почему не делают так..." и на эти вопросы обычно тоже у GPT есть неплохие ответы. Цель достигнута - что-то заработало, почти все понятно. Можно пробежаться документацию, примеры и оценить не упущено ли что-то с GPT. В итоге все получается в несколько раз быстрее с намного меньшей мозговой энергией чем с гуглом (как минимум, не нужно копаться в списках параметров, чтобы написать нужную команду).

Еще отлично помогает сориентироваться в незнакомой области. Например, коллеги что-то обсуждают в чате, но у тебя вообще нет опыта в этой области. С помощью гугла довольно сложно собрать нужную для понимания информацию. Но если загрузить кусок чата в GPT и попросить пояснить, почти всегда быстро и эффективно можно въехать "о чем вообще эти люди говорят".

Если кратко, для программиста GPT хорош:

  • чтобы быстро сориентироваться в незнакомой технологии;

  • чтобы не копать долго мало-знакомый синтаксис.

Может объяснять построчно и делать саммари. Можно заставить перепроверять выданные ответы, не соглашаясь с ними. Тогда либо Ой простите и другой по сути ответ, либо Ой простите и тот же ответ с синтаксическими коррекциями. Предел знаний выявляется через 3-4 такие итерации, ответы начинают зацикливаться.

НЛО прилетело и опубликовало эту надпись здесь

+

Обидно, наверное, осознавать, что ты половину времени занимаешься тем, что может нагенерить чатгпт.

А можно спросить. каким образом меряли?
Начиная со снижения производительности труда на 30-40%, заканчивая ошибкой в 10%-30%

НЛО прилетело и опубликовало эту надпись здесь

Аналогичную политику применили и у нас. Буст до 50% для мидлов и лидов на типовой код в 4о. По джунам не очевидно, они бывают плавают в понимании ответов и постановки задачи.

НЛО прилетело и опубликовало эту надпись здесь

По вопросам кодогенерации:

  1. Да, генерирует код и 4 и 3.5 с ошибками, скорость генерации и качества разная.

  2. Написал уже несколько проектов (с++, Python, c, Kotlin) с помощью gpt, некоторые даже целиком только сам чат писал код. Проекты рабочие, грамотно написанные (в аспекте кода и архитектуры) так что этой "игрушкой" уже можно пользоваться очень неплохо, если научиться.

Ситуация усугубляется тем, что ChatGPT не в состоянии проверить код, который сам и создаёт.

Вот в чём проблема внедрить механизм самопроверки кода?

Даже я такой написать могу (если не напишет OpenAI, придётся самому, видимо)

Куда больше мешает, имхо, проблемы со связью: из-за любых перебоев с инетом, особенно, когда надиктовываешь ИИ очень длинные сообщения голосом, примерно в 40-60% в самом конце "Sorry, unknown error" и всё заново. Когда буквально каждая вторую длинную команду (около минуты-двух в реальном времени голосом) приходится перенадиктовывать заново - это очень тормозит разработку и кушает нервы. Процент перенабора слишком высокий - вот если бы кто-то создал модуль для него, который кэширует данные, которые ты надиктовал (используя нативное приложение) было бы круто, но, видимо, и это придётся самому, либо ждать когда OpenAI решится, а ведь такой модуль написать тоже несложно.

Когда заказываю код, я требую и тесты для него. Затем кидаю ошибки в тестах, если возникают. Так получаю уверенность.

Рекомендую TDD

Насколько можно доверять ответам ChatGPT?

Сама постановка вопроса нелепа для тех, кто понимает, что такое ChatGPT и как он работает)
Для меня ожидания человека от ChatGPT и подобных "помощников", а так же "претензии к ним" являются маркерами технической подкованности/адекватности/эрудиции человека (или автора какой-либо статьи :-))

ChatGpt 4 и 4.0 уступают Claude.

Из своего опыта - код, сгенерированный ЧатГПТ (про JS говорить не буду, этим баловался не очень долго, скажу про VBA), в основном работает, но оптимальность сильно хромает, во-первых, полагаю, так сеть научена на VBA в основном пишут любители, а любители оптимизировать его будут последними, пишут как могут. А во-вторых, есть подозрение, что ИИ где-то слизал логику макрорекордера, а потому код слабо от последнего отличается. Одним словом, ускорение процесса получается только для рутинных операций - скармливаешь кусок кода и просишь его переписать с другими параметрами, например, так писал код заполнения словаря или коллекции, а при необходимости повторить его просто просил написать заполнение с другими параметрами из другого места с другими типами данных, например. Вот так помогало сэкономить время. Иногда помогало что-то вспомнить забытое (например, в мелкософтовской справке многие методы не описаны толком, и неясно, как применять, а чатик выдает пример, и если задать вводную правильно, еще и с кодом, который требует минимальной правки.

Одним словом - для того, чтобы это было в помощь, а не в обузу, надо неплохо в целом знать, о чем спрашиваешь. А когда знаний вообще ноль в предмете, то бредогенератор работает по полной. Как-то раз наткнулся на ошибку доступа при вызове JSом какого-то метода из Java. В тырнетике ничего толкового не нашел, спросил чатик, и понеслось - самый близкий к правде был, видимо, первый ответ, потому что потом то ли я не так спрашивал, то ли неправильно описал, но попытка отладить код, предложенный чатгпт с помощью чатгпт завела в тупик. Изложенная на StackOverflow история ошибки с публикацией переписки с ИИ привела к еще большему запутыванию ситуации, потому, полагаю, ни один спец мне там на это за два года так и не ответил.

В этом случае ChatGPT представит базовую реализацию, но не учтёт все нюансы (например, отрицательные веса рёбер) и оптимизации.

Или авторы исследования не знают, о чем пишут, или перевод кривой. Когда авторы спрашивают нейросеть про алгоритм Дейкстры или а-стар, им следовало бы знать, что эти алгоритмы не работают для отрицательных весов, поэтому такое «исследование» бессмысленно. Теоретическая задача оптимизированного построения пути на графе с отрицательными весами ребер решена только год или два назад. В лучших популярных библиотеках типа networkx, реализовавших уйму оптимизаций из научных статей, отрицательные пути не поддерживаются, а в тех библиотеках где поддерживаются, не оптимизированы (потому что в стандартном алгоритме накапливаемые веса не убывающие, на чем и построена оптимизация, а при отрицательных весах сумма оказывается совершенно непредсказуемой). Что касается оптимизаций вообще, то все они основаны на определенных свойствах графов, и не применимы к произвольному случаю. К примеру, в графе детальной дорожной сети много циклов и мы можем свернуть последовательные узлы (соединенные только одним ребром) в один и многократно упростить задачу, но для графа магистральных дорог это только добавит лишнюю сложность.

как реализовать алгоритм Дейкстры для нахождения кратчайшего пути в графе?

В этом случае ChatGPT представит базовую реализацию, но не учтёт все нюансы (например, отрицательные веса рёбер)

Подобная придирка совсем уж не к месту — алгоритм Дейкстры и не рассчитан на отрицательные веса, с ними работает алгоритм Беллмана-Форда.

Алгоритм Беллмана-Форда не универсальный, потому что он не работает на графах с циклами. А это часто необходимо, к примеру, почтальону оптимальнее два раза по улице пройти (по двум сторонам), нежели бегать по диагонали через улицу между четными и нечетными домами. А если разрешить циклы по ребрам с отрицательными весами, алгоритм «разваливается», его нельзя адаптировать для этого случая. Глубока кроличья нора алгоритмов поиска пути :)

Замечу, что ChatGPT хуже всего пишет UI-задачи, видимо из-за того, что любая задача UI содержит множество требований по умолчанию, а ChatGPT про это не знает.

Я пробовал сгенерить код для простого сплиттера на JS (который позволяет перетаскивать границу двух блоков). ChatGPT-4 сгенерировал мне три варианта кода, ни один из которых не работал как ожидается: один не работал совсем, в другом граница дергалась при перемещении, в третьем перемещение затыкалось в случайном месте.

Кто-нибудь пробовал другие ИИ, специализирующиеся на программировании? Я например использую DeepSeek Coder, но по ощущениям он на уровне ChatGPT 3.5. Платить за ChatGPT 4 пока не хочется, потому что есть сомнения, что он намного лучше бесплатного 3.5 или того же DeepSeek Coder, и стоит ли вообще своих денег и заморочек с поиском вариантов для оплаты

Фразу "половина ответов ChatGPT содержит ошибки" можно переписать как "половина кода человека содержит ошибки".

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий