Изначальная идея
Да, про эту нейросеть сейчас слышно отовсюду, как она пишет текста песен, сдает экзамены, пишет куски кода, но я подумал, а сможет ли она сама целиком завершить проект под моим руководством?
Изначально я собирался просто подкинуть ей идею и наблюдать за созданием полноценного продукта, но всё оказалось немного сложнее и направлять её пришлось куда чаще чем мне бы того хотелось, но пока я этим занимался обнаружил несколько полезных функций которыми, возможно, буду пользоваться в работе.
Тема проекта
Я хотел чтобы тему придумала она сама, но её идеи были слишком расплывчаты и как подать их же ей - я не понимал, и попытки успехом не увенчались, поэтому я решил обойтись обычным портфолио вымышленной личности, но и личность, которую она могла успешно создать по моему запросу она не могла запомнить.
Начало работы

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

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

Небольшое наблюдение, почему-то если написать на русском "продолжи код", то шанс на то, что она продолжит писать именно код - выше, а на английском ломается и пишет код обычным текстом. (или мне просто так везло, результат всегда непредсказуем)
Переписываем проект на React
Я решил, что будет неинтересно просто попросить её сгенерировать HTML (с чем она отлично справилась) и поэтому решил переписать всё на фреймворке. Сначала я выбрал Vue.js, но с ним она справлялась с трудом, делала кучу ошибок, выбирала очень странные подходы которые мне даже не удавалось загуглить, поэтому я перешёл к реакту. И сходу попросил её переписать весь код самостоятельно. (предварительно я попросил её рассказать мне как создать проект с React и TypeScript, так что за создание проекта ответственна тоже она, я лишь исполнял инструкции, разбивал на файлы и т.д)

С вашего позволения я не буду вставлять в статью все скриншоты, переписывание всей структуры на React заняло 5-6 длинных скриншотов, но покажу интересные моменты ниже.


Почему-то она не стала разбивать код на компоненты и сделала всё в один файл, что как бы лишает перенос из HTML в React какого-либо смысла, но я получил первый результат!

Начало долгого и мучительного процесса
Передо мной (или перед ней) стояла цель разбить файлы на компоненты, и в принципе, она поняла мою просьбу, но постоянно зависала в процессе, забывала какие-то детали, затирала данные которые ранее сама и написала. Например вот, она удалила данные из state и код начал выдавать ошибку:

Я решил целиком скопировать ошибку и отдать ей, без объяснения, что надо с этим делать и, на удивление, она поняла в чем проблема и начала её исправлять.

Теперь надо опять попросить заполнить пустые данные

В целом, кое как, очень сильно стараясь и постоянно зависая, она разбила код на несколько файлов, которым сама и дала названия:
App.tsx
AboutMe.tsx
Projects.tsx
Resume.tsx
Reviews.tsx
Contact.tsx
По какой-то причине Header и Footer она выносить в отдельные файлы отказалась, но да и ладно. Теперь мне было интересно возможно ли заставить её написать стили самостоятельно. По началу я дал лишь наводку:

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

Она положила глобальные стили в App.module.css который не был подключен, попросив её подключить файл (add styles connection to the App), она, внезапно, прописала классы хедеру, навбару и футеру. Чтож, идей как заставить писать её CSS у меня почти не осталось, мне хотелось чтобы она стилизовала страницу, а не создавала пустые классы, и вдруг она очень хорошо отреагировала на следующий запрос:

В принципе, она прописала почти всем блокам padding-и, где-то окрасила текст и больше ничего делать не стала, а я решил перестать её мучать. Давайте посмотрим, что наш интеллект смог написать почти за часа два:

Итоги
Конечно, сгенерировать реальный проект с помощью нейросети нельзя (пока что), но можно попробовать. Некоторые её решения мне очень нравятся, нравится как она умеет генерировать статические данные и работать с ними, те же JSON-ки я уже генерировал для своих личных целей. Делал через неё простенькие автотесты, чуть подкорректировать и готовы в продакшн. Да и то, что она запоминает то, что она делала пару запросов назад - поражает.
Но пока это всё далеко чтобы полностью заменить программистов, максимум, оно может упросить жизнь разработчику с решением рутинных задач (и это очень круто!)
Ссылка на репозиторий и демо проекта
Комментарии (68)
IvanGanev
29.01.2023 21:35+33А можно было просто одеть варежки и попытаться кодить в них.
Какой смысл в том что ChatGPT умеет создавать сайты если для того что бы он делал то что вам нужно, нужно, ну, самому уметь создавать сайты? Это просто лишняя прослойка, которая только мешает.
Gobl1n
29.01.2023 21:39+8Пока что. И люди, подобные автору, делают так, чтобы это с каждым днем становилось лучше. Им - спасибо.
IvanGanev
29.01.2023 21:49+38Проблемы написания первых строчек кода нету, она совершенно надуманная. Есть куча туториалов про то как создать свой твиттер за четыре часа. Рекрутеры обожают привлекать программистов именно заверениями о том что "проект пишется с нуля". Писать с нуля просто и легко. Реальные проблемы начинаются уже потом.
AlchemistDark
29.01.2023 23:13Когда-то машины и в крестики-нолики играть не умели, но если бы Каспаров никогда не играл с компьютерами в шахматы, то возможно и в го бы Ли Сидоля не обыграли.
Krasovsky
30.01.2023 13:52+3Шахматы, крестики нолики - это все сущности имеющие понятные цели и четкие правила.
Мое мнение - нейросеть не сможет писать код, пока не научится владеть контекстом как человек. А для того, что бы владеть контекстом как человек надо быть человеком, или очень близко к этому
AlchemistDark
30.01.2023 19:51Я не к тому, что если сейчас такие системы не тестировать, не искать приделы их возможностей, то они будут медленнее развиваться. Смогут они «то-то» или «то-то» из того, что не могут сейчас — вопрос открытый. Но если ничего с ними не делать, то точно не смогут.
0x131315
30.01.2023 02:11+15Вот да. Огромный проект с миллионами строк кода. Структура сложная, много говнокода, лютое легаси. Документации, кроме самого кода, нет, как оно работает никто не скажет. Задача поправить там что-то сама по себе простая: берешь и правишь, делов то. Но прежде чем править что-то, сперва нужно во всей этой структуре отыскать место для правки - нужно проанализировать много кода, понять что он делает, в десяток мест залезть с отладчиком, убедиться что происходит именно то, что предполагается. А потом нужно понять что и как в этой структуре можно и нужно изменить, чтобы и требования выполнить, и ничего не поломать, имея ввиду что код может выполнять какие-то неизвестные и неописанные в требованиях на правки функции, да еще и постараться сделать это красиво и надёжно, чтобы не плодить говнокод и упростить поддержку. Что-то в ходе этих изысканий неизбежно вызовет фейспалмы и подвергнется рефакторингу, или даже будут найдены скрытые ошибки в какой-то логике. Вот это вот все превращает простые правки в сложный квест с невероятным сюжетом и неожиданной концовкой.
Вот как в легаси что-то нейронка будет править - даже не представляю. Тут и человеку разобраться сложно. Процедура сродни операции: каждый шаг выверяется и согласовывается с окружающей логикой, постоянный контроль, нужно отдавать себе отчёт что происходит в окружающем коде и как на это повлияют новые правки, не делаешь ли хуже. Потому что цена ошибки высока: одно неверное движение или решение - и целый ворох скрытых багов весело разбегается по огромной кодовой базе.
У машины тут только одно преимущество: она в теории может запомнить весь код, а когда в голове держишь весь код, правки хорошо согласованы. Основная проблема человека: слишком малая ёмкость памяти, если для правки нужно держать в голове слишком много кода, часть его тут же вытесняется и забывается, получается частично что-то делаешь вслепую. Отсюда и все ООП пошло: чтобы абстрагироваться от кода и оперировать как можно меньшим количеством частей в один момент времени, не теряя ничего из виду. Но конкретно у нейронки ресурсов намного меньше, чем у машины: даже если бы она понимала что делает, ей доступно намного меньше ресурсов, чем есть на ее хосте, так что большие кодовые базы тут даже рассматривать не стоит.
А вот что-то небольшое вполне поместится, что в оп-посте и видно: пару маленьких блоков кода, с трудом, постоянно теряя что-то, кое-как осилила. Вот под такие задачи ее и можно использовать: сгенерить один маленький конкретный метод по описанию, проверить код и убедиться что результат устраивает, если нужно поправить, или выкинуть и написать вручную, если выдало какую-то откровенную глупость.
sim31r
30.01.2023 11:17подвергнется рефакторингу
Вот нейронная сеть для этого идеальна будет. Сразу укажет на переменные которые не используются и не влияют на результат. Дублирующийся код. Лишний код в принципе.
solver
30.01.2023 11:51+7Вот нейронная сеть для этого идеальна будет. Сразу укажет на переменные которые не используются и не влияют на результат. Дублирующийся код.
Так это сейчас нормальные IDE безо всяких нейронок делают)
vedenin1980
30.01.2023 11:55+2На базовом уровне это умеют статические анализаторы. На продвинутом уровне — это бывает настолько неочевидно, что даже человек не всегда может это понять (например, неиспользуемое поле, которая хитрым способом берется логером и другим сервисом через серилизацию или рефлексию, неиспользуемый код, которые замедяет выполнение достаточно, чтобы успел отработать полезный код и т.д.).
VSNN
31.01.2023 02:47+1Так уже сейчас IDE имеют функционал подсветки неиспользуемых переменных и мест, где код был продублирован)
IvanGanev
31.01.2023 18:44Многие думают что легаси это обязательно куча не нужного кода. Проблема обычно обратная - что весь этот код зачем-то таки нужен.
Код может быть легаси-вермишелью, и при этом не иметь ни единой лишней строчки. Более того, этот код может прекрасно работать и выполнять бизнес задачу.
Проблемы начинаются тогда когда бизнесу нужно добавить новую фичу. Изменить формат данных, или внести в логику какую-то новую переменную. И тут окажется что, а куда и как вносит изменения что бы все не поломалось?
developer7
01.02.2023 01:25Сколько я таких видел. У таких людей ещё как правило мантра есть- а давайте всё это удалим, и напишем всё с нуля, что бы было всё правильно и красиво.
Wesha
29.01.2023 22:41+17Уже в который раз повторюсь:
С этим вашим ИИ просто появляется очередное звено: в самом начале разработчик писал код низкого уровня (на ассемблере), который транслировался в машинный код, который исполнялся процессором. Потом разработчик стал писать код на языке высокого уровня, который транслировался в код низкого уровня, который транслировался в машинный код, который исполнялся процессором. Теперь разработчик нового уровня будет писать очень-очень подробное техническое задание, которое транслируется в код на языке высокого уровня, который транслируется в код низкого уровня, который транслируется в машинный код, который исполняется процессором....
IvanGanev
29.01.2023 23:07+4Не знаю, может быть, но то что сейчас выдает ChatGPT это явно не про это.
RC_Cat
29.01.2023 23:29+1>Теперь разработчик нового уровня будет писать очень-очень подробное техническое задание
Лишняя абстракция, кмк. И что делать с поддержкой кода написанного ИИ?
Kreastr
30.01.2023 00:45Говорят оно умеет находить ошибки в коде. Какого рода ошибки - не знаю. Лично не проверял. Но в целом было бы логично предположить, что достаточно мощная сеть сможет найти типовые логические ошибки на уровне статического анализатора. Опять же для этого даже можно сделать искусственный датасет из случайных ошибок добавленных в рабочие проекты на уровне AST и проверенные существующими статическими анализаторами (чтобы сообщение об ошибке было чуть более информативным).
0x131315
30.01.2023 02:20Поддерживать вручную, на большее в ближайшем будущем явно не стоит рассчитывать. Как с нейросетями для художников: можно получить простенькую заготовку по описанию, но допиливать и поддерживать ее придется самому.
В крайнем случае можно попробовать скормить фрагмент кода сетке для анализа - сомнительно что это поможет, но вдруг? В любом случае с большими фрагментами кода такое не получится - их нужно уже осмысливать, сверять с требованиями к коду и здравым смыслом.
Получается просто генератор заготовок - какие-то простенькие алгоритмы можно накидать по-быстрому с помощью нейронки, но без ручной проверки результата все равно не обойтись: выдать оно может что угодно, в том числе явную глупость и мусор. Прям как за джунами бдить. Но джуны быстро эволюционируют, учатся, и результат выдают на несравнимо более сложных задачах и намного более связный - с ними в теории намного проще и стабильнее, чем с сеткой, должно выходить.
johnfound
30.01.2023 02:33+9И что делать с поддержкой кода написанного ИИ?
Разве не ясно? Дополняем техзание, а ИИ пишет все с нуля.
zhulan0v
30.01.2023 09:37+2Вот да, мне кажется, что вся эта история изменит низы рынка, где разработка и так по факту часто одноразовая, без поддержки. И вот на этом рынке операторы нейронок будут генерить одноразовые приложухи, не подлежащие правкам и в случае обновления требований просто генерить всё заново, это хотя бы выглядит экономически целесообразно.
sim31r
30.01.2023 11:28И наоборот, по имеющемуся коду генерировать ТЗ. Берем программу конкурента, получаем ТЗ, дополняем и получаем программу с новым кодом, которую продаем по демпинговой цене. Это может вообще всё поменять.
zhulan0v
30.01.2023 15:49Тут шаг генерации ТЗ лишний, тогда уже проще писать сразу - сделай мне твиттер на питоне =)
FirExpl
30.01.2023 10:45И вот тут TDD раскроет себя во всей красе. Разработчик будет писать не ТЗ, а тесты и иногда делать точечные правки в результат работы нейронки
vedenin1980
30.01.2023 12:02Разве не ясно? Дополняем техзание, а ИИ пишет все с нуля.
Для этого нужно, чтобы ИИ всегда писал идеально, а так не бывает (точнее придется сначала написать идеальную операционку и идеальные драйверы и т.д). Рано или поздно написанное ИИ натолкнется на какой-нибудь баг в чужом софте и выдаст ошибку 8276 (потому что где-нибудь что-то пошло не так) и ИИ ничего с этим сделать не сможет, а программист отладить программу тоже не сможет.
Tantacula
31.01.2023 01:49Если эта абстракция пишет за минуту код, который вы напишете за полчаса, для бизнеса это серьезная экономия. А чтобы легче было поддерживать, можно попробовать декомпозировать свой запрос и сгенерировать простые блоки, а не просить "написать соцсеть". Хотя через несколько лет и это скорее всего будет под силу.
smx_ha
30.01.2023 00:14+6Вы пропустили один этап, уже давно разработчик прежде чем писать высокоуровневый код, вначале пишет более высокоуровневый запрос в Гугл или Stackoverflow :) Chatgpt просто развитие этого этапа, ничего нового по сути, просто более продвинутый уровень поисковика. Причем пока что это именно поисковик, потому что если выйдет какой то новый язык/фрэймфорк то chatgpt не сможет на нем писать пока не появится достаточное количество материалов написанных человеком и обработанных chatgpt
Wesha
30.01.2023 02:51+6уже давно разработчик прежде чем писать высокоуровневый код, вначале пишет более высокоуровневый запрос в Гугл или Stackoverflow
"Отучаемся говорить за всех" (c)
Rive
30.01.2023 07:57+4Уже пытались добавлять дополнительные звенья - например визуальное программирование), дальше специфичных областей типа геймдева они не пошли.
По какой-то причине текст на языке программирования пока остаётся наиболее гибким и удобным интерфейсом ввода сложных команд (хотя он эволюционирует, конечно).
Wizard_of_light
30.01.2023 10:07+4текст на языке программирования пока остаётся наиболее гибким и удобным интерфейсом ввода сложных команд
Это у компиляторов пока не хватает ресурсов распарсить естественный язык и задать уточняющие вопросы по неясным моментам, поэтому мясным мешкам приходится втискиваться в прокрустово ложе формальных языков. Но по сравнению с пробиванием дырочек в перфокартах прогресс таки заметен.
developer7
30.01.2023 15:26+3Вся проблема в том что естественный язык он общий. А в программировании приходится описывать все случаи.
Например есть человеческая фраза: «Не лезь в розетку — убъёт!»
В программировании будет выглядеть так:
Не лезь в розетку — убъёт!
ЕСЛИ ты электрик — то можешь лезть
ЕСЛИ в розетки есть напряжение 220 и ты электрик — не лезь
ЕСЛИ ты электрик но в перчатках — то лезь
ЕСЛИ напряжении 10kV и ты в перчатках — не лезь
ЕСЛИ напряжении 10kV и ты используешь клетку Фарадея и специальный уравнивающий щуп…
И т.д. миллион вариантов
Что бы не писать миллион букв (привет бейсику )) просто всё заменяется на X,Y,Z и прочие переменные, а условия на операторы if,for и другие.
И вуаля! Получаем язык С. На котором удобно писать программы и понимать их. И не нужны никакие прослойки.
vkni
31.01.2023 20:44О глупости «программирования на естественном языке» — https://habr.com/ru/company/jugru/blog/656173/
Естественный язык можно распарсить, просто уточняющих вопросов будет слишком много, вы задолбаетесь отвечать на что-то типа «может ли такси провозить > +9223372036854775809 или < -9223372036854775808 пассажиров?».
Компилятор должен генерировать абсолютно работающий код, при любых условиях. У него нет права на ошибку, т.к. инструкции выполняются со скоростью 10^9 штук в секунду.
developer7
01.02.2023 01:28Глянул статью и увидел классную картинку из классной книги, которую мне посчастливилось в детстве получить. Ностальгия… Ещё там был крутой компьютер нарисован в виде ноутбука. Раскроешь книгу — и представляешь как будто за реальным компом сидишь.
toivo61
30.01.2023 12:07Оптимист!
... который транслируется в байткод, который исполняется виртуальной машиной, которая исполняется... гипервизор ...
Dartess
29.01.2023 22:45+1Есть вещи которые быстрее попросить сгенерировать нейронку. Например, если у тебя есть только понимание общих концепций и нужно потратить большое количество времени на восстановление / изучение нужных для задачи вещий. Или наоборот, когда у тебя есть отличное понимание задачи и возможность её хорошо формализовать, но нет желания тратить время на реализацию.
Пример 1 на моей практике: понадобилось быстренько поправить поведение ios-аппа, а я в swift ни бум бум (и никто в компании ни бум бум). В итоге сели с нейросеточкой и за день бизнес-задачу закрыли. Сколько я бы времени потратил, разбираясь в концепциях свифта и ios-приложений, боюсь представить. Навскидку несколько недель. Думаю, столько же, если бы я сказал что не могу сделать, и нужно искать аутсорс. Но там бы ещё денег потратили.
Пример 2 на моей практике: понадобилось написать специфичное правило на eslint-а. Опыт написания правил у меня был, но давно, поэтому гуглить все вещи, вспоминать базовую структуру и тд я не стал, попросил сгенерировать нейронку, она же набросала документацию и тесты, буквально за 15 минут основная часть была готова. А я свой ресурс потратил уже только на шлифовку, правку документации и добавление недостающих тест-кейсов.
Вот какой смысл в том что ChatGPT умеет делать что-то, что можешь сделать и ты сам. Экономия ресурсов - времени и "мыслетоплива".Wesha
29.01.2023 22:57+25понадобилось быстренько поправить поведение ios-аппа, а я в swift ни бум бум (и никто в компании ни бум бум). В итоге сели с нейросеточкой и за день бизнес-задачу закрыли.
А раз Вы, как сами признаётесь, "ни бум-бум", то откуда Вы знаете, что, использовав непонятный Вам код, Вы не внесли в своё приложение как минимум уязвимость, а как максимум — бэкдор?
edtech
30.01.2023 03:40+4Если человек знаком с другим языком программирования, то код становится уже не совсем непонятным, и можно попробовать понять его логику, прежде чем копи-пастить. Конечно, гарантий безопасного кода никто не даст, но в этом нельзя быть уверенным, и, если написать код самостоятельно, наспех изучив Swift, или в случае аутсорса. Картинка не отражает реальности, на практике ChatGPT хорошо справляется с большим числом несложных задач.
Wesha
30.01.2023 09:40+1Помнится, в моё время добрые люди любили подбрасывать новичкам пару строчек абсолютно неудобочитаемого текста на перле, который при выполнении разворачивался в
rm -rf /
. Особо добрые рекомендовали из-под рута запускать.
alexshipin
30.01.2023 09:55+3Пример 1 на моей практике: понадобилось быстренько поправить поведение ios-аппа, а я в swift ни бум бум (и никто в компании ни бум бум). В итоге сели с нейросеточкой и за день бизнес-задачу закрыли. Сколько я бы времени потратил, разбираясь в концепциях свифта и ios-приложений, боюсь представить. Навскидку несколько недель. Думаю, столько же, если бы я сказал что не могу сделать, и нужно искать аутсорс. Но там бы ещё денег потратили.
Ура, менеджмент на высоте, иметь приложение под iOS, но не поддерживать его.
У вас была простая задача, раз вы за сутки смогли её решить не имея опыта в данном языке, но с которой полноценный разработчик на Swift справился бы за несколько часов (
минут).Пример 2 на моей практике: понадобилось написать специфичное правило на eslint-а. Опыт написания правил у меня был, но давно, поэтому гуглить все вещи, вспоминать базовую структуру и тд я не стал, попросил сгенерировать нейронку, она же набросала документацию и тесты, буквально за 15 минут основная часть была готова. А я свой ресурс потратил уже только на шлифовку, правку документации и добавление недостающих тест-кейсов.
"Повторение - мать учения"
И в первом и во втором случаях вы показали только то, что ChatGPT подходит как справочник и помощник в решении самых редких и очень простых но затратных по времени потребностей, и не более того.
Да, я соглашусь, что иногда легче попросить нейросеть, чем разбираться самому.
Но, в тоже время, осуждаю, так как человека (коллегу, друга, знакомого) попросить легче (не надо объяснять как маленькому ребенку каждое слово, чтобы получить нужный результат), да и разобраться самому будет в плюс (развитие, кругозор, опыт и т.д. и т.п.).-----
Короткий итог исправленной цитатой из первого комментария
Это просто лишняя прослойка, которая только мешает...
ChatGPT - пока прослойка, которая мешает тем, кто умеет, и будет подсказывать тем, кто не знал/забыл.
ChatGPT пытается быть "Готовым домашним заданием по программированию", но его уровень на ближайшее время - "Справочник по забытым простым решениям" (либо любой другой удобный, но схожий по смыслу, для вас вариант названия)
MRD000
29.01.2023 23:30+1Недавно нужно было написать быстрый скрипт, который получает список задач от nomad. Еще я обычно использую requests в python, но поскольку не я пишу, а AI, решил попросить написать с urllib (встроена, не нужно устаналивать на всех серверах). Я думаю, что сам бы я долго копался все это с нуля писать. С ChatGPT вместе за примерно 10 минут получилось без изучения особенностей nomad API и какой там base url и т.п.
Мне лично было приятнее так.0x131315
30.01.2023 02:23+1А если потребуется что-то изменить в ее коде, который ты не понимаешь?
IvanPetrof
30.01.2023 04:21+1Оно умеет и в обратную сторону.
Кидаешь в неё кодом и говоришь что нужно доработать. Существующий chatgpt, конечно, ограничен размером контекста. Но даже в таком виде он умеет в реверсинжениринг небольших примеров кода. Подождём следующей версии.
PrinceKorwin
30.01.2023 07:17Можно попросить объяснить код словами. И GPT объяснит как этот код работает.
Wotar
31.01.2023 14:37-1Какой смысл писать в 70-ьіх программьі с графикой. Фотошоп все равно не получится. Ой постойте...
Какой смьісл учить фотошоп, пару раз тьікнул в него, а Монна Лиза не нарисовалась... Ой постойте...
Какой смьісл учить программирование, ведь ни когда ии не сгенерит код/графику/пройдет игру лучше. Ой постой...
Какой смьісл создавать летающий аппарат тяжелее воздуха ( вставить шаблон ).
Какой смьісл Королеву изобретать ракету и пулять деревенского и его собак в космос ( вставить шабдон )
Какой смьісл вьіводить каракули вместо картинок, назьівать єто письменностью, и говорить, что так лучше? Заждіть...
Какой смьісл соберать и тьікать в землю семена, вместо охотьі? Ой заждіть.
Який сенс в тому круглому ободу? ...
Вся історія цивілізації це зміни та подолання протиріч!!! Як я змінив ворожу р на гарну Українську за один цей текст, чого і всім адептам тої мови бажаю ((;. Немає сенсу ТІЛЬКИ ВІЙНА ТА ЇЇ АДДЕПТИ ЗАГАРБНИКИ. Все א
Wesha
31.01.2023 21:30Какой смьісл Королеву изобретать ракету и пулять деревенского и его собак в космос
Алё, гараж, Королёв вообще-то изобрёл межконтинентальную баллистическую ракету. А потом ради шутки вместо ИЗДЕЛИЯ в неё посадили деревенскую собаку, и всё заверте... /s
ogregor
31.01.2023 16:12Нейросеть это всего лишь инструмент в руках мастера. Мне надо было реализовать анимацию шейка в своем React Native проекте. Я бы конечно сделал и сам, но она сделала это за пару секунд. Мне осталось только впихнуть ее решение в код приложения.
vmkazakoff
29.01.2023 21:55+8По какой-то причине она забыла, что существуют другие файлы
Сейчас делаю рабочий инструмент (не для кода, для обучения) на гыпытыке. Первое с чем столкнулся - оно обнуляется после каждого моего запроса. Как же так, ведь в чате оно поддерживает контекст... Но нет - оказывается в чате в каждом запросе уходит не только последний вопрос, но и история (и вопросы, и даже ответы). Только вот незадача - у модели есть ограничение на вход (сложно описать, примерно 4-6к букв, лучше почитать доку про их токены) и в какой-то момент общения история перестает помещаться и начинается так называемый дрифт. Собственно оно у вас и было.
Вместо пруфов: https://community.openai.com/t/getting-chatgpt-to-remember-previous-chat-messages/38106/ и https://thoughtblogger.com/continuing-a-conversation-with-a-chatbot-using-gpt/
FulgerX2007
29.01.2023 22:47+8Автор написал сайт с помощью ChatGPT потому что сам разбирается в том что OpenAI генерирует если это будет делать человек который с этим не знаком то он далеко не уйдёт.
codecity
30.01.2023 00:21+7У меня так и получилось. Хотел чтобы оно сконфигурировало Kuber. Дает примеры когда, но они не работают почему-то. Разобраться почему не работает оно не может - даю ему текст ошибки - а ответов оно корректных не дает, как бы водит по кругу. Если бы я был знаком с конфигурацией k8s, то, наверное, понял в чем проблема, возможно там мелочь была. Но пока оно мне ничем не помогло - пришлось смотреть примеры в доке.
johnfound
30.01.2023 02:39+1Можно написать простой чат бот, который будет давать задание chatGPT, и потом мучать его пока код не заработает. Тоесть спрашивать – «этот код в каком файле»? «А вот здесь ошибка компиляции.» И т.д.
NNikolay
30.01.2023 05:06+9Меня терзают смутные сомнения... очень становится похоже как менеджер-бот терзает разработчика-бота, а он терзает джуна-бота.... слишком похоже на реальную жизнь
sim31r
30.01.2023 11:34И система может уйти в цикл бесконечный. Чат бот может забраковать хороший код из-за предупреждения компилятора и пропустить кривой код, но которой без ошибок тестов и компилятора пройдет.
johnfound
30.01.2023 15:21Хороший код с предупреждениями компилятора не бывает. А вот, плохой код без предупреждений компилятора, увы да, бывает.
Но конечно, это зависит от того как реализован чат бот–начальник. Там какая-то интеллигентность понадобиться тоже. Но на много порядков проще чем chatGPT.
vedenin1980
30.01.2023 15:27Хороший код с предупреждениями компилятора не бывает
Почему? Зависит от того как сделан компилятор и конкретного случая. Иногда предупреждения могут быть параноидальными, а некоторые правила эффективнее нарушить, чем соблюдать.
Если бы предупреждения всегда приводили к плохому коду — им просто сделали бы ошибками компиляции.johnfound
30.01.2023 19:21Если бы предупреждения всегда приводили к плохому коду — им просто сделали бы ошибками компиляции.
Ну уж нет. Плохой код и неработающий код, это две большие разницы.Ошибки выдаются когда код совсем нерабочий и не может быть скомпилирован в принципе. А предупреждения, это когда код рабочий, но плохой. Что может выражаться произвольными последствиями.
А я говорил именно о плохом коде.
developer7
30.01.2023 15:40+1Неправда. Во первых никогда не бывает абсолютных утверждений. И это абсолютно. Шутка.
Во вторых. Например я никогда не оставляю код с предупреждениями. И в 99% случаях они правильные. Но всегда есть нестандартные случаи. Например навскидку:
Компилятор C# всегда ругается на не инициализированные переменные. Но проблема в том что он не смотрит вглубь кода больше чем на 1 уровень. И если инициализация будет после двух if — он этого не увидит.
Опять же у меня в практике был случай когда статические классы инициализировать через рефлексию — тоже была ругань. Ну и так по мелочи.
Опять же если речь про C# — то это живой язык и там чуть лине через день прилетают обновы. И порой прилетает такое — что вполне рабочий код становится жёлтым на половину. А всё потому что решили ввести новое предупреждение — не помню что, что то с null связано было. Пришлось отключать это через настройки глобально.
NNikolay
30.01.2023 05:04+4Примерно через год на Хабре будет статья какого-нибудь чувака с галеры - "Как ChatGPT год писал код вместо меня и закрыл 100500 тикетов." Запомните этот твит!
ht-pro
30.01.2023 12:14+1Можно сделать основной вывод из статьи: разработчикам, в данный момент, бояться нечего.
davidaganov21 Автор
30.01.2023 12:29+4Прошло несколько дней с момента как я написал статью, за это время успел еще поиграться с нейронкой. Пример того, что я её просил:
1) Спросил про то, что такое замыкание
Получил ответ с абстрактным кодом
2) Попросил дать практический пример
Привела в пример подсчет количества нажатий на кнопку
3) Написал код без замыкания с тем же функционалом, скопировал его в диалог с ней и спросил почему нельзя использовать подобный подход
Ответила в 3 развернутых пункта почему в подобной ситуации лучше использовать замыкание.
Так же нашёл расширение CodeGPT для VSCode и теперь генерирую в один комментарий простенькие шаблоны для реакт компонентов, благодаря чему с нуля сделать хороший типизированный компонент, для условной кнопки, занимает у меня минуты 2 после того как она выдала свой вариант.
Она умеет генерировать СВГ. Об этом я вообще нигде не видел ещё. Попросил сделать её кнопку для бургер-меню, а она написала простенькую свг-иконку внутри кнопки. Как по мне это идеально когда делаешь какой-нибудь тестовый проект и не хочется тащить какой-нибудь пак иконок или искать свгшку в интернете.
Найти нужное API. Например попросить сделать запрос к гитхабу за каким-то определенным репозиторием. Или сказать "напиши запрос чтобы получить курс биткоина", и она сама подберет API и напишет запрос.
Короче, подключить её к рабочему процессу уже сейчас можно, и порой что-то простенькое сделать быстрее через неё. Программисты всё ещё нужны, как минимум пару раз она забывала поставить в конце скобочку))
trabl
30.01.2023 14:06На самом деле я заметил что ChatGPT стал работать хуже, я не знаю почему, но у меня это именно так. Если раньше я закидывал код и просил исправить ошибки и выдать рекомендации по оптимизации, всё было ок. Сейчас меня просит скинуть код повторно, скидываю, начинает мне рассказывать что делает этот код, ок. Прошу исправить ошибки, снова просит скинуть код, и так по кругу)). Опять же, если раньше по просьбе выдавала весь код целиком, то теперь ограничивается примерами. И заставить вывести весь код целиком очень проблемно. У меня у одного так?)
davidaganov21 Автор
Прошло несколько дней с момента как я написал статью, за это время успел еще поиграться с нейронкой. Пример того, что я её просил:
1) Спросил про то, что такое замыкание
Получил ответ с абстрактным кодом
2) Попросил дать практический пример
Привела в пример подсчет количества нажатий на кнопку
3) Написал код без замыкания с тем же функционалом, скопировал его в диалог с ней и спросил почему нельзя использовать подобный подход
Ответила в 3 развернутых пункта почему в подобной ситуации лучше использовать замыкание.
Так же нашёл расширение CodeGPT для VSCode и теперь генерирую в один комментарий простенькие шаблоны для реакт компонентов, благодаря чему с нуля сделать хороший типизированный компонент, для условной кнопки, занимает у меня минуты 2 после того как она выдала свой вариант.
Она умеет генерировать СВГ. Об этом я вообще нигде не видел ещё. Попросил сделать её кнопку для бургер-меню, а она написала простенькую свг-иконку внутри кнопки. Как по мне это идеально когда делаешь какой-нибудь тестовый проект и не хочется тащить какой-нибудь пак иконок или искать свгшку в интернете.
Найти нужное API. Например попросить сделать запрос к гитхабу за каким-то определенным репозиторием. Или сказать "напиши запрос чтобы получить курс биткоина", и она сама подберет API и напишет запрос.
Короче, подключить её к рабочему процессу уже сейчас можно, и порой что-то простенькое сделать быстрее через неё. Программисты всё ещё нужны, как минимум пару раз она забывала поставить в конце скобочку))