catterpiller

Пикабушник
Дата рождения: 10 октября
10К рейтинг 4 подписчика 57 подписок 12 постов 3 в горячем
Награды:
10 лет на Пикабу
4

Как я, не зная ни строчки кода, писал скрипт для чатбота с помощью ChatGPT

Дисклеймер:

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

Получился длинный пост. Если вы как и я не программист - пропускайте куски кода и читайте только комментарии Chat GPT к этому коду. Так же можно для интереса посмотреть комментарии в коде, начинающиеся с "#" там он описывает что выполняет каждая строчка этого кода.

Так же с chatgpt я имел дело впервые и запросы к нему могли быть не оптимальными.

Прелюдия

Итак, недавно попалась мне на глаза статейка, что ChatGPT спокойно прорешивает задачки по программированию с сайта leetcode, где выкладывают разного уровня сложности задачки для прогеров. Попалась и запала где то в закуток создания. А еще новость прошла, что недавно ЧатЖПТ версии 3,5 открыли всем желающим в пользование без регистраций и смс.

Сам я поигрываю порой в Battlefield 4 и люблю побегать в особый режим "Hardcore" на одной определенной карте "Operation Locker". Есть один сервер, где гоняют эту карту с этим режимом и присутствует достаточное количество игроков. Но на беду когда я захожу на страницу сервера, либо матч уже заканчивается либо идет другая карта. И вот подумалось мне: а как бы вот так сделать, чтобы мне приходило уведомление, мол карта ваша началась и народу - тьма. Заходите будьте любезны.

Вот тут и вспомнил я про волшебную коробчонку, что за любую задачу возьмется и размотает на раз-два. Стало мне интересно, а сможет ли обычный непрограммист по запросу получить рабочий продукт? Терять нам нечего, давай думаю поковыряю я его, авось и накодит мне что-нибудь!

К действию!

Для начала нужно было подключиться к чату и проверить что он действительно работает.

https://chat.openai.com - открылся (не без впн) и к моему удивлению начал мне отвечать без всяких регистраций.

Далее нужно было сформировать задачу. Начнем с основного - какие ключевые данные нам нужно получить? Есть страница, на которой мы видим данные сервера: https://battlelog.battlefield.com/bf4/servers/show/pc/3adab5... .

С этой страницы нам нужно получить данные о текущей карте и количестве игроков.

Опа. Оказывается в этой свободной версии Чатик не может ни обращаться по сторонним адресам, ни открывать файлы. Поразмыслив пришел к решению, что нужно скормить ему текст веб страницы прямо в чат. Заходим на страницу сервера, жамкаем правой кнопкой мыши и выбираем - "Показать код страницы". Получаем нехилый кусок HTML кода:

И такого еще страниц на 10.

И такого еще страниц на 10.

Копируем текст в чат. Получаем результат:

Чатик подавился.

Чатик подавился.

Лимит у него. Не переваривает длинный текст.

Начинаю вводить по кусочкам. Он начинает на основе каждого кусочка пытаться что то сообразить и долго писать мне про них. Пришлось приструнить:

Ожидаемо я несколько раз скормил ему слишком крупный кусок кода и он опять выдавал ошибку о переполнении. И данную ошибку нельзя отменить. Чат зависает и нужно начинать все с начала!

Когда в пятый раз запарываешь простую операцию по копированию кода.

Когда в пятый раз запарываешь простую операцию по копированию кода.

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

Кажись нашел.

Кажись нашел.

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

Штош, круг подозреваемых сужен до единственного. Можно брать тепленьким.

Штош, круг подозреваемых сужен до единственного. Можно брать тепленьким.

А вот и код пошел!

А вот и код пошел!

Идем качаем питон, ставим. Для того чтобы записать код используем блокнот Notepad++.

Копируем код в блокнот, сохраняем в формате питоновского скрипта. Запускаем - шиш! Не установлены библиотеки для обращений к HTML страницам. Спрашиваем у Чатика как поставить библиотеки:

Открываем командную строку Windows, вставляем туда строчку.

Кажись поставилось.

Кажись поставилось.

Запускаем скрипт

Все что выдает скрипт - надпись Operation Locker. Не смотря на то, какая карта сейчас на сервере. Очевидно, чатик забыл, что надо пойти по ссылке и узнать какая все таки карта сейчас запущена. Да и в тексте кода что-то никакой ссылки не видно. Ладно, попробуем починить:

Уже интереснее.

Уже интереснее.

Код ожидаемо не запустился потому что появилась новая библиотека requests, которую мы тоже устанавливаем с помощью PIP.

Запускаем еще раз:

C:\Users\Admin>python C:\Temp\scriptBF4_01.py

OPERATION METRO 2014

C:\Users\Admin>

Ано живое.

Ано живое.

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

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

Сразу не отходя от кассы просим сделать один скрипт из двух:

Сразу не отходя от кассы просим сделать один скрипт из двух:

Запущаем. Получаем ж*пу с ручкой:

C:\Users\Admin>python C:\Temp\scriptBF4_01.py

Traceback (most recent call last):

File "C:\Temp\scriptBF4_01.py", line 24, in <module>

players_text = players_element.find('h5').text.strip()

AttributeError: 'NoneType' object has no attribute 'find'

Жалуемся чатику:

Если вы думаете, что я понимаю что он мне пишет, то вы ошибаетесь.

Если вы думаете, что я понимаю что он мне пишет, то вы ошибаетесь.

Сохраняем, запущаем:

C:\Users\Admin>python C:\Temp\scriptBF4_01.py

Название карты: PEARL MARKET

Текущее количество игроков на сервере: неизвестно

Вот так вот. Неизвестно. А еще искусственный интеллект называется...

Надо что то с этим делать. Взываем к совести:

"Конечно!" Давайте обновим. Какого единорога сразу то нельзя было нормально сделать?!

Ну что ж...

Стартуем.

Стартуем.

C:\Users\Admin>python C:\Temp\scriptBF4_01.py

Текущая карта на сервере: PEARL MARKET

Количество игроков на сервере: 64 / 64

Ано живое! ч.2

Ано живое! ч.2

Скриптец выдает нужные параметры, но очевидно, что использовать формат 64/64 будет не удобно. Нужно довести до очевидной цифиры. Требуем с Чатика:

Результат:

Количество игроков на сервере: 64

Воооот. Уже лучше! Теперь надо чтобы скрипт делал запросы на страничку сервера с определенной периодичностью и обновлял выводимые данные:

Сохраняем, запускаем.

C:\Users\Admin>python C:\Temp\scriptBF4_01.py

Текущая карта на сервере: PEARL MARKET

Количество игроков на сервере: 58

Текущая карта на сервере: PEARL MARKET

Количество игроков на сервере: 57

Текущая карта на сервере: PEARL MARKET

Количество игроков на сервере: 54

Итак, скрипт с определенной периодичностью обращается на страницу сервера и сообщает какая карта и сколько игроков там играют.

Лимиты поста ограничивают мой творческий фонтан. Если кому-нибудь будет интересно что тут написано, то сделаю вторую часть о том, как я прикручивал эту трихомудию к Телеграм-боту.

Первые выводы:

Можно ли заставить ChatGPT написать нужный вам код?

- Да, можно.

Сможет ли это сделать любая блондинка без логического мышления?

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

Говорят, что версия 4.0 гораздо умнее, но она стоит 20$ в месяц, посему тестировать ея пока не желаю.

Всем удачи, берегитесь ИИ, оно умнеет)).

Показать полностью 23
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества