×

Як я написала чат-бот для Telegram за допомогою СhatGPT — та інші експерименти

Усі статті, обговорення, новини про AI — в одному місці. Підписуйтеся на DOU | AI!

Привіт! Мене звати Анастасія, я QA Engineer в компанії PandaDoc. Мені завжди цікаво щось автоматизувати, тож відколи я дізналася про ChatGPT, не можу від нього відірватися.

Я шукаю ефективне застосування цієї технології для своєї роботи та життя. Про це пишу у своєму Telegram-каналі. У цій статті хочу з вами поділитися моїм досвідом написання чат-бота для Telegram за допомогою ChatGPT та іншими спробами застосування.

ChatGPT — чат-бот зі штучним інтелектом, розроблений лабораторією OpenAI. Являє собою велику статистичну модель мови, оптимізовану для ведення діалогів та налагоджену з допомогою технік навчання з учителем та навчання з підкріпленням. В основі прототипу лежить модель OpenAI GPT-3.5 — покращена версія GPT-3. © «Вікіпедія»

Телеграм бот з інтеграцією з DALL-E

В мене є базове знання Python та досвід використання цієї мови для написання автотестів на проєкті. Також я вже писала одного бота для Telegram 2 роки тому. Тоді це в мене зайняло близько тижня.

Бот з допомогою СhatGPT був написаний за один вечір. А аватара для бота створив на моє замовлення DALL-E.

Ідея: я хотіла створити бота, який би був інтегрований з DALL-E. Тож я могла б з Telegram генерувати картинки. На той момент я не читала документацію DALL-E, а також не знала, що там є тріал період, який швидко закінчиться =)

Загалом DALL-E мені подобається набагато менше ніж Midjourney. Але в нього є API.

DALL-E (стилізований запис — DALL-E), а також DALL-E 2 — створені шляхом машинного навчання нейронні моделі, розроблені компанією OpenAI за фінансової підтримки Microsoft, призначені для створення цифрових зображень на основі описів природною мовою. © «Вікіпедія»

Процес. Перший етап — запит

Я попросила ChatGPT написати мені код на Python.

prompt: Hi. Could you write me a code for telegram bot? This bot integrates with dall:e API. This bot needs to create an image from the input words.

Code:

import requests
import json
import telegram

# Replace YOUR_TELEGRAM_BOT_TOKEN with your actual bot token
bot = telegram.Bot(token='YOUR_TELEGRAM_BOT_TOKEN')

# Replace YOUR_DALLE_API_KEY with your actual DALL-E API key
headers = {'Authorization': 'Bearer YOUR_DALLE_API_KEY'}

def handle_message(message):
    # Extract the text of the message and use it as the input for the DALL-E API
    text = message.text
    data = {'prompt': text, 'model': 'image-alpha-001', 'num_images': 1}
    response = requests.post('https://api.openai.com/v1/images/generations', headers=headers, json=data)
    response_json = response.json()

    # Extract the generated image URL from the response
    image_url = response_json['data'][0]['url']

    # Use the Telegram API to send the generated image back to the user
    bot.send_photo(chat_id=message.chat_id, photo=image_url)

# Set up a message handler function to process incoming messages
updater = telegram.ext.Updater(bot=bot)
updater.dispatcher.add_handler(telegram.ext.MessageHandler(telegram.ext.Filters.text, handle_message))

# Start the bot
updater.start_polling()

Другий етап — правки

Далі я попросила додати кнопку «start again» та welcome message. Але код не працював. Нагадаю, що ChatGPT «застряг» у 2021 році і поки далі не йде. Тому інфа в нього застаріла. Я повідомила йому, що код не працює та показала помилку.

І отримала таку відповідь з новим кодом:

It looks like you are using an outdated version of the python-telegram-bot library. In version 12.0 and later of the library, the telegram.ext module has been removed.

To fix this error, you will need to update your code to use the new API provided by the python-telegram-bot library. Here is an example of how you can update your code to use the new API.

❗️ Важливо! Так, за час нашого спілкування він знову використовував стару бібліотеку. Також він міг просто забути рядок коду, який був до цього, і не внести його. Він завжди вибачається та виправляє свої помилки. Іноді не з першого разу =)

Третій етап — заключний

Коли все вже працювало і я бавилася з додаванням кнопок, прикладів, а також додала статистику. Усі зміни були досить приємними. Я просила ChatGPT написати тільки змінений код, а не весь, щоб не витрачати час на це.

Бота я нікуди не хостила, оскільки тріал період був витрачений на гру з DALL-E мною та моєю мамою =)

Крім того, хероку більше не безоплатний, і я поки не знайшла гарного рішення для безкоштовного хостингу. Буду рада порадам.

Фінальний код

Фінальний код виглядає ось так. Код я не змінювала, залишила таким, як написав бот. Тільки на українську мову переклала та видалила непотрібну кнопку start again.

Код знаходиться на гітхаб. Гарний readme файл був також створений за допомогою ChatGPT. Його можна брати, змінювати токени та бавитися.

Про отримання токена від Telegram є мільйон туторіалів, там все просто, робиться через @BotFather.

Для отримання токену для DALL-E, потрібно зареєструватися тут та згенерувати токен.

Додаткові спроби використання

Виправлення методу Python

В мене був написаний метод з використанням змінної index. Я попросила його переписати, використовуючи enumerate.

Написання баги

Не знаю, як цим користуватися в реальності. Бо щоб це вийшло добре, потрібно надати дуже багато інфи. Швидше вже самому її завести. Але пише він класно.

Лист англійською

ChatGPT дуже круто пише листи англійською. Навіть якщо дати йому опис українською:

Just for fun

  1. Його можна попросити написати гороскоп =) Виходить чудово! Це просто чудова функція для тих, хто їх пише:
  2. Для Овна цей рік буде пов’язаний з пошуком нових можливостей та розвитком професійних навичок. Ви можете очікувати успіху у справах, які пов’язані з лідерством та проєктуванням. Але не забувайте, що навіть у справах, які вам сподобаються, потрібно дбати про рівновагу, щоб не втратити контроль над ситуацією.

  3. Я створила детективну історію для свого Telegram-каналу.
  4. Написання prompts для генераторів зображень.
  5. Створення квізів.

Невеликий лайфхак

Якщо ви бажаєте зберегти ваш чат, є можливість зробити це у markdown-файлі.

Для цього у Chrome DevTools на вкладці console запускаємо даний код:

function h(html) { return html.replace(/<p>/g, '\n\n').replace(/<\/p>/g, '').replace(/<b>/g, '**').replace(/<\/b>/g, '**').replace(/<i>/g, '_').replace(/<\/i>/g, '_').replace(/<code[^>]*>/g, (match) => { const lm = match.match(/class="[^"]*language-([^"]*)"/); return lm ? '\n```' + lm[1] + '\n' : '```'; }).replace(/<\/code[^>]*>/g, '```').replace(/<[^>]*>/g, '').replace(/Copy code/g, '').replace(/This content may violate our content policy. If you believe this to be in error, please submit your feedback -- your input will aid our research in this area./g, '').trim(); } (()=>{ const e=document.querySelectorAll(".text-base");let t="";for(const s of e)s.querySelector(".whitespace-pre-wrap")&&(t+=`**${s.querySelector('img')?'You':'ChatGPT'}**: ${h(s.querySelector(".whitespace-pre-wrap").innerHTML)}\n\n`);const o=document.createElement("a");o.download="Conversation with ChatGPT.md",o.href=URL.createObjectURL(new Blob([t])),o.style.display="none",document.body.appendChild(o),o.click()})();

Знайдено тут.

Інші сервіси, які я спробувала:

  • Tome.app — сервіс для створення презентацій за допомогою ChatGPT та DALL-E. Є безкоштовні кредіти на погратися.
  • Midjourney — сервіс для генерації зображень. Кращий за DALL-E. Є безкоштовний тріал на 25 генерацій. Далі підписка від $10.
  • Chatsonic — ChatGPT на максималках. Є тріал.
  • D-id.studio — анімація аватарів та генерація синтетичного голосу. Є безкоштовний тріал. Є українська мова.

Мої висновки

Це дуже прикольна штука =)

Плюси:

  • вона може допомогти з рутинними задачами. Так, наприклад, я надсилала йому список питань з відповідями та просила переформатувати це у python dict. Це дуже зручно;
  • він може бути дуже корисним для тих, хто вивчає якусь мову програмування. Це схоже на парне програмування. Я дізналася нове, і це відбувається у дуже цікавому форматі;
  • він пише коментарі, що допомагає у розумінні коду;
  • підходить для маленьких задач;
  • класно знає англійську =) Та пише на ній круті імейли та описи.

Мінуси:

  • він робить помилки, як наслідок, наступний пункт →
  • без знання мови програмування хоча б на базову рівні буде дуже складно;
  • не забуваємо про NDA. Не треба його «годувати» вашим продакшн кодом;
  • він застряг у 2021. Наразі вже є на базі ChatGPT сервіс writesonic, в якому є оновлені дані. Але я з ним ще не бавилася;
  • якість тексту та інформації українською мовою дуже посередня.

Свої спроби, ідеї та тести з AI я описую та проводжу у своєму Telegram-каналі. Приєднуйтесь =)

Буду рада дізнатися, хто як використовує цю технологію, або інші AI-сервіси.

👍ПодобаєтьсяСподобалось39
До обраногоВ обраному15
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підкажіть будь ласка, якщо така помилка що потрібно поправити ?
PS C:\Users\olenat\PycharmProjects\pythonProject1> python chatbot.py
File “chatbot.py”, line 51
bot.polling(none_stop=True, interval=0)
^
SyntaxError: invalid syntax

Спробуйте render.com, він безкоштовний та схож на heroku.

Крім того, хероку більше не безоплатний, і я поки не знайшла гарного рішення для безкоштовного хостингу. Буду рада порадам.

Як альтернативу www.heroku.com використовую railway.app — якщо не виходити за ліміт RAM, CPU, то виходить безплатне рішення для простеньких ботів

Дякую! При нагоді спробую!

А статтю часом не ChatGPT також написав? :)

Його українська програє моїй 😉, на відміну від англійської.

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

Так. Тестив, дійсно, результати українською набагато гірші. Що й не дивно, враховуючи базу «корму» для ШІ відносно мов. До речі гарний лайфхак для тих, хто не сильний в англ

Буде дуже смішно, якщо виявиться що на іншому кінці сидить спеціально навчена команда індусів і симулює просунутий штучний інтелект. Чого тільки не зробиш заради мільярдних інвестицій. А у Елізабет Холмс напевно багато достойних учнів.

Нагадали мені. Я коли була мала і їхала на фунікулері на подолі, то уявляла що там сидять чоловіки і тягнуть той шнур, щоб ми могли їхати вверх та вниз =)

Занадто швидко відповідає як для людини

Надто коректна граматика та пунктуація для такого варіанту 😉

I would suggest to join the line from the beginning

І за мене виходь

О, мабуть перша стаття від представників куа, яка дійсно цікава)

Роздрукую цей коментар та повішу собі у рамочці =)))))
Дякую! Приємно що вам сподобалася стаття!

Хоча відмічу, що загалом не згодна, бо є цікаві статті від куашників. Просто можливо вони цікаві більш вузкому колу читачів.

Дуже круто, що справжні тех спеціалісти не займаються лудизмом, як ілюстратори, які уже в хрестовий похід готові іти. ЧатГПТ — це чекає нас всіх. Або вчимося з ним працювати і додаємо до свого інструментарію або на базар як совкові «інженери» в 90ті.

Для себе уже намітив купу питань, які спробую вирішити як тікі чатгпт відкриється для нас. Всі рутині роботи, по типу пошуку АРІ і формування всяких супер запитів пора давно уже перенести на плечі ШІ. Це звільнить час, який можна буде присвятити саме розробці продукта.

І цікаво, чому для нас закрили доступ?

Да він і код гарно рефакторить, і тести пише. І це не маючи повного контексту. Можна тільки уявити скільки буде можливостей коли у нього буде можливість ознайомитися з кодовою базою проекта і внутрішніми вікі. Думаю така можливість буде в платній версії для бізнесу.

Скептики зараз напишуть: «Да він помилки робить, неправильный код генерить в деяких запитах! Від нього більше шкоди ніж користі». Да і пофіг, краще допилити його код ніж по stackoverflow лазити і самому писати. Ніхто ж не буде його код без перевірки в продакшн кидати.

Згодна. Я також це бачу як наступний крок. Мені здається що великі компанії будуть просто створювати AI відділи та тренувати AI під свої потреби, щоб слідкувати за секьюрністью.

Наразі я думаю що компаніям було б непагано провести мітінги з поясненням NDA для співробітників, з приводу використання chatgpt3. Бо є в мене підозра що вже багато чого туди витекло )

Крім того, хероку більше не безоплатний, і я поки не знайшла гарного рішення для безкоштовного хостингу. Буду рада порадам.

можеш спробувати render.com, писав пару слів про порівняння з heroku
dou.ua/forums/topic/40607

Дякую! Як буде нагода — спробую

Дякую за список корисних сервiсiв, додав у нотатки

Привіт усім!
Мені приємно що ви прочитали статтю!

У мене є ідея створити чат де можна буде спілкуватися на тему AI та ділитися корисною інформацією.

Я бачила такі чати на інших мовах і це дуже класно працює.

Тож якщо ви хочете спілкуватися на цю тему, то ласкаво прошу

t.me/ G__YIKZxcBczNDBk

Назва тестова). Далі оберемо разом.

Підписатись на коментарі