Как я, не зная ни строчки кода, писал скрипт для чатбота с помощью 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.
Копируем текст в чат. Получаем результат:
Чатик подавился.
Лимит у него. Не переваривает длинный текст.
Начинаю вводить по кусочкам. Он начинает на основе каждого кусочка пытаться что то сообразить и долго писать мне про них. Пришлось приструнить:
Ожидаемо я несколько раз скормил ему слишком крупный кусок кода и он опять выдавал ошибку о переполнении. И данную ошибку нельзя отменить. Чат зависает и нужно начинать все с начала!
Когда в пятый раз запарываешь простую операцию по копированию кода.
В итоге я плюнул на огромный кусок кода на JavaScript, который не влезал целиком и решил оставить только HTML код, идущий до него. На удивление, этого хватило чатику чтобы сделать правильные выводы:
Кажись нашел.
Далее я попросил его проверить остальные части кода и убедиться, что более нигде упоминание текущей карты не встречается. Он начал показывать мне куски кода, где могло быть это описание и заявлять что тут его тоже нет. В итоге выдал:
Штош, круг подозреваемых сужен до единственного. Можно брать тепленьким.
А вот и код пошел!
Идем качаем питон, ставим. Для того чтобы записать код используем блокнот Notepad++.
Копируем код в блокнот, сохраняем в формате питоновского скрипта. Запускаем - шиш! Не установлены библиотеки для обращений к HTML страницам. Спрашиваем у Чатика как поставить библиотеки:
Открываем командную строку Windows, вставляем туда строчку.
Кажись поставилось.
Запускаем скрипт
Все что выдает скрипт - надпись Operation Locker. Не смотря на то, какая карта сейчас на сервере. Очевидно, чатик забыл, что надо пойти по ссылке и узнать какая все таки карта сейчас запущена. Да и в тексте кода что-то никакой ссылки не видно. Ладно, попробуем починить:
Уже интереснее.
Код ожидаемо не запустился потому что появилась новая библиотека requests, которую мы тоже устанавливаем с помощью PIP.
Запускаем еще раз:
Ано живое.
Скриптик показывает имя текущей карты. Это уже успех ящитаю. Идем пить чай, лечим нервы и думаем о тожестве технологий.
Поразмыслив о высоком вспоминаем, что помимо карты нас еще интересует сколько же бедолаг на ней сейчас подвергают друг друга избиению, ведь бегать втроем на сервере контрпродуктивно. Возвращаемся к чатику и требуем дополнительных данных:
Сразу не отходя от кассы просим сделать один скрипт из двух:
Запущаем. Получаем ж*пу с ручкой:
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
Скриптец выдает нужные параметры, но очевидно, что использовать формат 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$ в месяц, посему тестировать ея пока не желаю.
Всем удачи, берегитесь ИИ, оно умнеет)).
Разбираем вопросы с собесов по Python
Что такое динамическая типизация ?
Динамическая типизация - это подход к типизации, при котором типы переменных определяются во время выполнения программы, а не на этапе компиляции. С динамической типизацией тип переменной связывается с данными во время выполнения на основе их значения и контекста использования. Это означает, что переменная может содержать данные любого типа, и ее тип может изменяться в процессе выполнения программы.
Пример:
В этом примере переменная x сначала содержит целое число, затем строку, а затем список.
Тип переменной определяется автоматически во время выполнения программы на основе значения, присвоенного переменной.
Преимущества динамической типизации включают гибкость и удобство использования. Однако это также может привести к потенциальным ошибкам во время выполнения, если переменная содержит неожиданные данные, и затрудняет статический анализ кода на этапе компиляции.
Хочу посоветовать отличный канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)
Программистам пора на покой?
Devin AI отличается от обычных программистов. Этот инновационный ИИ разработан стартапом Cognition и считается первым в мире инженером-программистом ИИ. Но какие именно преимущества это дает и как оно повлияет на будущее кодирования? Как он изменет игру...
Devin AI отличается от обычных программистов. Этот инновационный ИИ разработан стартапом Cognition и считается первым в мире инженером-программистом ИИ. Но какие именно преимущества это дает и как оно повлияет на будущее кодирования?
Devin AI, проект стартапа Cognition, вызвал настоящий шок в технологическом мире. Этот ИИ - не просто еще один помощник по программированию, он создан с целью стать полноценным инженером-программистом, способным управлять проектом от идеи до реализации. Но что стоит за ним? Давайте взглянем на его возможности и изучим потенциальную технологию, которая лежит в его основе.
Что способен делать Devin?
В отличие от традиционных помощников по программированию на базе искусственного интеллекта, таких как GitHub Copilot, которые предлагают фрагменты кода и предложения, Devin работает на совершенно новом уровне.
Вот его главные отличия:
1. Независимое выполнение проектов: Если вы дадите Devin четкую цель, например, создание платформы электронной коммерции, он способен взять на себя полный цикл разработки. Он пишет чистый код, исправляет ошибки и даже разворачивает готовый продукт.
2. Превосходное планирование и предотвращение проблем: Говорят, что Devin обладает удивительной способностью предвидеть потенциальные проблемы и организовывать процесс разработки таким образом, чтобы обеспечить максимальную эффективность.
3. Самообучение и совершенствование: Постоянно обновляясь и развиваясь, Devin учится на своем опыте, улучшая свои навыки программирования и способность решать проблемы.
4. Отладка на профессиональном уровне: Devin способен находить и исправлять ошибки в своем собственном коде, что экономит драгоценное время разработчиков на отладку.
И многое другое...
Тестирование Devin:
Devin успешно прошел тестирование на площадке SWE-Bench, где агенты решают реальные проблемы GitHub, обнаруженные в проектах с открытым исходным кодом, таких как Django и Scikit-learn.
Devin правильно решает 13,86%* сложных проблем, что значительно превышает предыдущий результат в 1,96%. Даже при предоставлении точных файлов для редактирования лучшие предыдущие модели справляются только с 4,80% проблем.
Потенциальное влияние Devin: волна изменений в технологической отрасли
Появление Devin в качестве первого в мире инженера-программиста ИИ вызвало необычайный резонанс в технологической отрасли. Его возможности могут потенциально революционизировать различные аспекты разработки программного обеспечения и оказать воздействие на бизнес, разработчиков и даже пользователей. Рассмотрим некоторые значимые последствия:
Повышение производительности разработчиков:
- Освобождение от рутинных задач: Devin способен автоматизировать повторяющиеся задачи кодирования, такие как создание шаблонного кода или базовых функций. Это позволяет разработчикам сконцентрироваться на стратегическом мышлении, творческом решении проблем и инновациях.
- Ускорение циклов разработки: Скорость и эффективность, которые обеспечивает Devin, могут значительно сократить время разработки. Это может привести к более быстрому запуску продукта и более частым итерациям на основе обратной связи пользователей.
- Уменьшение размера команды: В некоторых проектах возможность Devin выполнять значительную часть процесса разработки позволяет компаниям работать с более компактными командами разработчиков.
Демократизация разработки программного обеспечения:
- Снижение барьера вхождения: Удобный интерфейс Devin и его способность генерировать код на основе простых инструкций могут поставить на поток даже тех, у кого ограниченные знания в области программирования, и позволить им создавать базовые приложения.
- Рост гражданских разработчиков: Люди в компаниях без технического образования, например, менеджеры продукта или маркетологи, смогут использовать Devin для создания прототипов своих идей или простых инструментов для оптимизации рабочих процессов.
- Появление инноваций из неожиданных источников: Сделав разработку приложений более доступной, Devin стимулирует инновации со стороны более широкого круга людей и команд, что приводит к более разнообразному спектру программных решений.
Преимущества для бизнеса и потенциальные риски:
- Ускорение выхода на рынок: Благодаря Devin компании могут быстрее представлять свои продукты и услуги на рынок, что потенциально дает им конкурентное преимущество.
- Снижение затрат на разработку: Более быстрые циклы разработки и более компактные команды могут привести к существенной экономии затрат для бизнеса.
- Изменение набора навыков разработчиков: Поскольку Devin берет на себя многие рутинные задачи, разработчикам приходится адаптироваться и развивать новые навыки, уделяя больше внимания таким областям, как дизайн-мышление, пользовательский опыт и сложное решение проблем.
Воздействие на технологическую сферу:
- Наблюдается стремительное развитие программного обеспечения: Благодаря эффективности Devin, возможно значительное увеличение количества разработанных программных приложений, что приведет к созданию насыщенного и конкурентоспособного рынка.
- Фокус на пользовательском опыте: Благодаря ускоренным циклам разработки компании могут уделять более приоритетное внимание тестированию и итерации пользовательского опыта, чтобы выделиться на перегруженном рынке.
- Эволюция роли разработчиков: С развитием искусственного интеллекта, такого как Devin, роль разработчиков может эволюционировать в направлении управления этими инструментами, управления сложными проектами и обеспечения общего качества и безопасности программного обеспечения.
Возможные потери рабочих мест:
- Автоматизация повторяющихся задач:
Способность Devin выполнять рутинные задачи кодирования, такие как написание шаблонного кода или базовых функций, может сделать некоторые задачи начинающих программистов устаревшими.
- Уменьшение размера команд: В случае менее сложных проектов эффективность Devin может позволить компаниям работать с более компактными командами разработчиков, что потенциально может привести к сокращению рабочих мест.
- Изменение набора навыков: По мере того, как искусственный интеллект берет на себя рутинные задачи по кодированию, спрос на разработчиков с такими специфическими навыками может снизиться.
Важно помнить, что это лишь потенциальные последствия. Как Devin окончательно сформирует технологическую индустрию, будет зависеть от его дальнейшего развития, его интеграции в существующие рабочие процессы и от того, как заинтересованные стороны будут адаптироваться к этому меняющемуся ландшафту.
Является ли Devin ИИ будущим?
Разработка Devin представляет собой значительный прогресс в области использования искусственного интеллекта в кодировании. Но важно помнить, что он все еще находится в стадии разработки. Несмотря на то, что Devin может справиться с многими задачами, сложные проекты все равно могут требовать человеческого опыта.
Будущее разработки программного обеспечения, вероятно, связано с сотрудничеством, при котором инструменты искусственного интеллекта, такие как Devin, расширяют возможности человека. Это может привести к созданию более эффективной и инновационной среды разработки, приносящей пользу как предприятиям, так и пользователям.
Понравилась статья? 📑
Подпишись и оставь комментарий ✅
Написал свой игровой движок с Lua как скриптовым языком
Всем привет. Относительно недавно мне стало интересно написать свой фреймворк для 2д игр, чтобы собственно их и создавать. Пишу всё это дело на java - вот скриншот типичного кода:
Внутренности
И вот, что мы получаем:
Результат
Я также написал примитивный модуль для физики, всё это можно найти в документации.
Если вам интересно, можете посмотреть проект здесь.
Благодарю за прочтение
Сможете найти на картинке цифру среди букв?
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Django ORM VS SQLAlchemy ORM! Пробуем, сравниваем, разбираемся! Часть 2 из 3
Вторая часть видео, где я сравниваю работу с ORM Django и SQLAlchemy!
Моя группу в ТГ, где я предсказываю курс гречки:
https://t.me/davaite_pro_it