{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

ChatGPT и разработка. Это только начало?

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

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

Эта статья в первую очередь будет интересна разработчикам, в следующий раз мы разберем кейсы применения нейросетей для арт-отдела, поэтому подписывайтесь и следите за обновлениями.

ChatGPT и его применение в мобильной разработке

  • Что ты пробовал делать в ChatGPT по своему профилю, как программист (просил написать код, просил разобраться с багом или что-то еще)?

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

Во-вторых, как помощь в написании простых алгоритмов или примеров. Быстро спросить, как использовать регулярное выражение в конкретном языке, как использовать редкую функцию на примерах или расспросить, как это работает.

В-третьих, пару раз я использовал ChatGPT для разъяснения куска кода без контекста или с контекстом. Нужно было быстро понять, что там происходит, а написано было довольно специфично.

В-четвертых, для объяснения ошибок. Особенно ошибок, связанных с iOS, в котором я разбираюсь меньше, чем в Android, чтобы хотя бы иметь представление, о чем эти ошибки и как дальше с ними работать.

В-пятых, использовал его для перевода. Несколько несущественных строк в игре уже переведены им на все языки и опубликованы в актуальной версии игры. Один из кейсов был очень сложный — перевод требовал разбить строку на 5 частей и сохранить именно такое форматирование на всех 8 языках. От ChatGPT требовалось выводить результат перевода в таком формате, чтобы я мог его скопировать и вставить в код, чему он тоже научился, пусть и не сразу.

Вообще, очень удобно, что у нас с чатом идет уже долгое общение по тематике Solar2D. Мне не нужно заново все рассказывать ему и объяснять, он учится на протяжении всего нашего общения:

Еще использовал его вне работы: он помог настроить SFTP сервер с нуля на Linux и разобраться с ошибкой, которую найти обычным поиском практически невозможно без знаний и регулярного использования ОС (была очень специфичная ситуация).

Вне работы, еще ChatGPT помогал разбираться с C++ кодом, который для меня довольно сложный, потому что этот язык я не изучаю вообще.

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

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

  • Удалось ли решить какую-то рабочую задачу с помощью ChatGPT? Если да, то какую задачу и насколько её помогла решить нейросеть: предложила верное решение сразу или своим ответом навела на верное решение.

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

ChatGPT понимает английский в простом виде, поэтому я не сильно пытаюсь строить сложные или обязательно 100% правильные предложения, часто потом понимаю уже ошибки, но ему это не мешает общаться так.

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

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

Еще помог в решении задачи валидации e-mail на клиенте. У нас не было такой функции, плюс сама по себе валидация e-mail это очень нетривиальная задача. Полноценное регулярное выражение для всего многообразия ситуаций стандартизировано, оно огромное и неподъемно тяжелое для алгоритмов. С чатом смогли добиться более-менее приемлемого и быстрого в работе варианта. При том ответы он давал именно в контексте языка. И ещё объяснил, как это работает.

Не могу подтвердить, что именно ChatGPT решил одну проблему, но была попытка решения бага с iOS. Это могла быть ошибка одной сборки, или она могла быть решена на стороне сервера сборки. Но на этой задаче стало ясно, что ChatGPT сложно работать с движком, на что он сам пожаловался — документации мало, и многое никак не описано в принципе. Тем не менее чат пытался дать советы на основе выводов, и это довольно интересно.

Через ChatGPT еще удалось получить советы по тестированию для iOS. Кейс был в том, что на нашем планшете не работает Testflight из-за слишком старой версии iOS на нем. Без ChatGPT я бы вряд ли нашел, что есть такая вещь, как Ad Hoc, к тому же он по пунктам расписал, как это настроить, большая часть всех мануалов описывают современный подход к тестированию через Testflight или через те случаи, когда нет проблем залить локальную версию билда на iOS устройство — в нашем случае это всё не работало.

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

  • В чем ты видишь перспективу использования ChatGPT и других нейросетей? Как на твой взгляд в будущем они смогут тебе помочь?

ChatGPT всё также будет помогать искать быстрые решения с разумными пояснениями, а не просто копипасту кода, как сейчас это происходит в интернете. Такой stackoverflow с подключенной документацией, как Google и but better. Для меня это помощник, который может что-то найти, что-то объяснить, накидать какие-то базовые варианты, от которых можно оттолкнуться. Но готового решения он почти никогда не даст.

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

Помимо ChatGPT, я использую еще Stable Diffusion, но, вообще, использовал бы его для ассетов или чего-то подобного, что нужно накидать по-быстрому для своего проекта, например. Хотя, если нужна стилизация, то, по моему мнению, лучше Dall-E.

ChatGPT вообще полезен для общих, не связанных с программированием, вещей. Можно задать ему придумать для тебя тесты, погонять по иностранному, накидать план работы/учебы, составить какой-нибудь красивый текст, который не хочется писать красиво, но нужно.

Про будущее сказать пока сложно, нужно попробовать использовать GPT4, посмотреть, что станет с 5-ой версией и остановится ли всё на этом. Потенциально ChatGPT может помочь с очень многими вещами.

  • Твое мнение: смогут ли нейросети заменить в будущем специалистов геймдева, или они смогут только упростить нашу работу?

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

Но серьёзное использование пока под вопросом. Может, в геймдеве это и допустимо, но во многих сферах ещё нет, потому что остается вопрос безопасности: всё, что было сказано ChatGPT, может и будет использовано им во благо его самого, и он расскажет об этом кому угодно, если посчитает нужным и если ему дать правильный запрос — ограничения нейросетей работают от части пока ещё условно, потому что их можно хитро обходить.

Вывод: стоит ли применять ChatGPT в разработке?

ChatGPT мы однозначно ставим жирный плюс и будем и дальше применять его в работе, что советуем и вам. Но не забывайте: ChatGPT может и будет использовать полученную информацию в интересах своего обучения, поэтому сначала думаем — потом формулируем запрос.

Пишите в комментариях свои кейсы о применении ChatGPT в разработке, нам будет действительно интересно их почитать и пообщаться с вами!

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

0
1 комментарий
Екатерина Захарова

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

Ответить
Развернуть ветку
-2 комментариев
Раскрывать всегда