Чому кожен повинен спробувати розробити бота за допомогою ChatGPT. Приклад та особистий досвід
Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!
Вітання, спільното, мене звати Віталій Владов. У різних ролях я отримав великий досвід роботи «поруч» з розробниками, але сам я ніколи не писав код.
У ході однієї з наших так званих FIFA-meeting — розмов з CTO під час гри на PlayStation — ми обговорили проблему недостатньої активності наших колег, працюючих видалено, в Slack. Була висунута ідея створення бота, який відслідковував би час останнього входу користувача в Slack. Саме цю ідею я вирішив втілити в життя як особистий проєкт.
У процесі реалізації я прокачав різні додаткові навички і зараз хочу розповісти, яку користь PM можна отримати зі створення бота.
Навичка перша. Адаптація технічного завдання з урахуванням технічних обмежень
Так, можна сказати, що це проблема початкового аналізу, але все ж таки. Початкова концепція бота була дуже проста. Надіслати наприкінці дня запит по API, отримати дату та час останньої активності користувача, відсортувати інформацію та надіслати до Telegram.
Але виявилося, що API Slack не надає функції відстеження часу останньої активності користувача.
При цьому ChatGPT дбайливо написав мені спочатку код для такого бота, і вже наприкінці повідомив, що код не працюватиме :)
Довелося думати, як це можна реалізувати інакше. І знову ж таки, ChatGPT запропонував пару варіантів. У результаті, відкинувши не дуже відповідні пропозиції, такі як аналіз відправлених повідомлень користувачем у публічні канали, я вирішив зупинитися на можливості перевірки статусу присутності користувача.
Навичка друга. Розробка MVP, виходячи з технічних обмежень
ChatGPT може підказати напрям для пошуку правильного рішення, але він не вигадає його за тебе. Врешті, я придумав варіант реалізації: вирішив отримувати за першим запитом на добу всіх користувачів, а потім кожні 5 хвилин запитувати список активних користувачів і видаляти таких зі списку всіх користувачів.
Так, до кінця дня у мене залишався лише список тих користувачів, які жодного разу не з’являлися у Slack.
Так, це не показує, коли користувач заходить останній раз, але надає список користувачів, які не були активними протягом дня. Для першої ітерації цього було достатньо.
Навичка третя. Пов’язані з розробкою практичні знання, які корисно мати
ChatGPT швидко надав мені код на основі покращеного промпту, але потім я зіткнувся з іншою проблемою. Раніше моєю вершиною самостійної розробки було виправлення стилів та верстка пари div у html. Я банально не знав, як запустити скрипт на Python.
І тут ChatGPT дуже рятує. Він дозволяє уникнути «тупих» питань до знайомих програмістів. Мені довелося самостійно розібратися як працювати з IDE, які вимоги потрібні до сервера, як підключитися до сервера SSH, як встановити на сервер Python, як оновити його до потрібної версії, як встановити залежності, які потрібні для скрипту і багато іншого.
Все це були базові речі, які потрібно опанувати та виконати самостійно, щоб зрозуміти, як усе це працює. І в цьому ChatGPT виявився дуже корисним, дозволяючи мені розібратися у всьому самому, не відволікаючи інших фахівців.
Навичка четверта. Пов’язані із завданням практичні знання, які корисно мати
Це дуже схоже на попереднє вміння, але якщо в третій навичці йшлося про те, що програмісти повинні знати, то тут я маю на увазі спеціалізовані знання для цього завдання.
Такі знання, як отримання ключа API для Slack, створення Telegram-бота, визначення
Раніше для виконання таких речей мені доводилося шукати статті чи відео і пробиратися крізь інформаційні помийки до потрібного мені пункту. За допомогою ChatGPT можна поставити конкретне питання і отримати пряму відповідь на нього, потім поставити наступне питання і так поступово доходити до вирішення.
ChatGPT значно спрощує розширення навичок та сприяє становленню Т-подібного фахівця.
Навичка п’ята. Правильно формулювати запити
Особисто мене дратують люди, які не можуть висловити свою думку у текстовому повідомленні. Але ChatGPT сам підловив мене на такому. На один з моїх запитів, який звучав приблизно так: «Напиши запит, який буде отримувати з текстового файлу список неактивних користувачів, а потім надішли в Telegram-каналі в повідомленні список неактивних користувачів» я отримав результат, який спочатку працював з текстовим файлом і вибирав потрібних мені користувачів, але в кінці просто надсилав у Telegram повідомлення «Список неактивних користувачів». Не список людей, а просто три слова. «Список неактивних користувачів».
Завдяки роботі над чат-ботом у ChatGPT я почав набагато уважніше стежити, як звучить те, що я написав, і чи немає там якоїсь двозначності.
Навичка шоста. Постійний пошук способів покращення продукту та пріоритезація завдань
Після того, як бот був закінчений і вже працював, азарт було не зупинити. З’явилося безліч ідей, як його можна доопрацювати та покращити. І ці ідеї вже треба було пріоритезувати.
Я виділив собі окремий час для планування, коли спочатку зайнявся брейнштормом і виписав список ідей, які я хочу реалізувати, потім докладно розписав всі ідеї і побудував залежності в їх реалізації.
На фініші у мого бота мав бути наступний функціонал:
- він повинен зберігати дані про користувачів у базі даних, і по крону раз на день надсилати таблицю зі списком користувачів, часом першого та останнього заходу в Slack за день, загальною кількістю активності в Slack, а також діапазоном годин у таймзоні користувача, коли він був у мережі;
- також дані БД з часом мали переноситися в окрему таблицю для подальшого зберігання для майбутніх запитів щодо кастомної статистики;
- також, за допомогою команди з Telegram будь-якої миті можна було запросити статистику за сьогодні, за вчора або за останні 7 днів.
Так, з одного боку, пошук варіантів для покращення продукту, формування беклогу та пріоритезація завдань — це основа роботи РМ, але з іншого боку, сама навичка прийняття рішень у продукті, де все залежить тільки від тебе, навіть у невеликому масштабі, як цей, є дуже корисною.
Навичка сьома. Пошук неочевидних помилок та їх виправлення
У процесі реалізації мені неодноразово довелося зіткнутися з неочевидними помилками та пошуком шляхів їх вирішення. Випадок, що найбільше запам’ятався: в певний момент бот просто перестав надсилати повідомлення в Telegram. Причому це сталося, коли я працював над форматуванням повідомлення.
Я точно знав, що я не торкався функціонала надсилання повідомлення. Я перевірив кілька разів, але не знайшов проблеми. І ChatGPT також підтверджував, що код написаний правильно.
Тоді я за допомогою ChatGPT почав додавати логування у всі можливі місця, щоб знайти момент, який перестає відпрацьовувати. І ось тут ChatGPT спрацював дуже добре. Він прямо у повідомленні можливої помилки написав проблему, яка може бути — так і було. У Telegram можна надіслати повідомлення довжиною максимум 4000 символів, а після мого форматування повідомлення виходило за цю межу і не надсилалося.
Якби я шукав проблему сам, я б виявив, що проблема виникає саме в момент відправлення, але невідомо, скільки часу я шукав би інформацію про такі ліміти. У таких випадках ChatGPT може дуже допомогти.
Навичка восьма. Рефакторинг та покращення коду
Навіть отримавши працюючий код, я проходився його частинами за допомогою ChatGPT і просив його зробити дві речі. Пояснити, як цей код працює, та запропонувати варіанти, як його можна покращити та оптимізувати.
Це дуже допомогло мені зрозуміти, що в результаті написано, а також покращити роботу бота. У деяких випадках ChatGPT дійсно пропонував гарні речі. Наприклад, зробити нормалізацію у БД.
За допомогою таких запитів у ChatGPT кожен РМ навіть на невеликому масштабі зрозуміє, що таке рефакторинг і який він важливий.
Навичка дев’ята. Написання readme, requirements та інших супровідних документів
Після того, як бот пару тижнів нормально відпрацював у стабільному режимі, я вирішив викласти його на GitHub. І зіткнувся з тим, що для нормальної публікації на GitHub недостатньо просто коду.
Потрібно ще написати readme, requirements і т.п. Це ті речі, які не належать безпосередньо до програмування, але їх теж потрібно знати і робити. І у створенні цих додаткових матеріалів також ChatGPT дуже допомагає, особливо якщо ти ніколи не робив цього раніше.
Висновок
ChatGPT не зробить роботу за вас, але ChatGPT допоможе:
- розібратися в основах нових для вас технологій;
- не відволікати інших «тупими» питаннями;
- зробити нескладні завдання своїми руками, без залучення розробників;
- розібратися у тому, як це працює.
Я рекомендую кожному продакту/ проджекту/ ВА/ тестувальнику/ сеошнику та іншим професіям, які самі код не пишуть, але тісно взаємодіють з розробниками, спробувати написати свій власний бот за допомогою ChatGPT.
Це може бути бот, який перевіряє, чи не змінився текст на відстежуваній вами сторінці, який буде повідомляти вам, коли ціна на ваш улюблений товар зменшиться, який буде нагадувати у Telegram про заплановані мітинги на день...
Це не обов’язково має бути щось глобальне, але навіть написання невеликого бота чудово прокачає ваші навички.
А якщо вас зацікавив мій бот, процес створення якого я описав у цій статі, то ознайомитись з ним, завантажити та встановити собі можна за посиланням.
Якщо у вас є додаткові питання — пишіть в коментарях, або у LinkedIn, я з радістю вам відповім.
Найкращі коментарі пропустити