March 20

Как создать GPT-бота в Телеграме 

инструкция от 10 апреля 2023 года!

Как создать Telegram-бота на основе GPT-модели. Потребуются 5 минут, 20 долларов и аккаунты в Телеграме и OpenAI.

После того, как OpenAI стала раздавать доступы к API, в Телеграме появилась куча ботов по типу ChatGPT.

Большинство из них при этом — платные, хотя вы можете создать собственного бота на основе ChatGPT за 5 минут. Бот обойдётся вам примерно в $10 в месяц.

Рассказываем, как его сделать.

Что понадобится

  1. Аккаунт OpenAI. зарегистрировать его можно довольно просто: понадобится VPN и номер телефона США. Для регистрации можно использовать и одноразовый номер, который обойдётся в 20 рублей. OpenAI пришлёт СМС с кодом подтверждения регистрации, и больше номер не понадобится. Не забывайте заходить под VPN, так как OpenAI блокирует аккаунты из СНГ.
  2. После того, как вы зарегистрировали аккаунт, зайдите в раздел для разработчиков на сайте. Нажмите кнопку Create new secret key и сохраните ключ.
  3. Создайте бот в Телеграме через @botFather. Дайте боту имя. После этого botFather пришлёт API ключ от бота. Его тоже нужно сохранить.
  4. Установите Python. Во время установки обязательно выберите пункт «Add python.exe to PATH», чтобы работать с консольными командами.

Получаем код API от OpenAI

Получаем API для Телеграм-бота

Настраиваем GPT-бота

  1. Скачайте готовый код для Telegram-бота на GitHub. Для этого нажмите кнопку Code и в выпадающем меню нажмите Download ZIP.
  2. После того, как архив скачается, распакуйте его в любое удобное место. Желательно, чтобы в пути к папке с ботом не было кириллических символов.
  3. В папке с кодом откройте файл .env.example через текстовый редактор.
  4. В строке OPENAI_API_KEY=»XXX» вместо XXX вставьте ваш ключ OpenAI.
  5. В поле TELEGRAM_BOT_TOKEN=»XXX» вместо XXX вставьте ваш ключ Telegram-бота.
  6. В строке ALLOWED_TELEGRAM_USER_IDS=»USER_ID_1,USER_ID_2″ вместо USER_ID_1,USER_ID_2 вставьте ваш ID Телеграм-аккаунта либо символ *. Если вы укажете ID, доступ к боту будет только у тех пользователей, которых вы вписали в эту строку. Если вы укажете звёздочку, доступ к боту будет у всех желающих.
  7. Сохраните файл и переименуйте его в «.env».

Скачиваем код для бота на GitHub

Неотредактированный файл .env.example

Запускаем GPT-бота через консоль

  1. Откройте консоль. С помощью cd зайдите в папку, в которой находится код вашего Телеграм-бота.
  2. Выполните следующие команды:

Бот должен начать работу. Чтобы выключить бота, просто закройте консоль.

При повторном запуске команды выше выполнять уже не придётся. Просто введите:

Возможности бота на ChatGPT

  1. Поддержка разметки markdown в ответах.
  2. Сброс беседы с помощью команды /reset.
  3. Индикатор набора текста при генерации ответа.
  4. Доступ можно ограничить, указав список разрешенных пользователей.
  5. Поддержка Docker и Proxy.
  6. Генерация изображений с помощью DALL-E с помощью команды /image.
  7. Расшифровка аудио и видео сообщений с помощью Whisper (может потребоваться ffmpeg).
  8. Автоматическое подведение итогов беседы во избежание чрезмерного использования токенов.
  9. Поддержка группового чата со встроенными запросами. Чтобы использовать эту функцию, включите встроенные запросы для вашего бота в BotFather с помощью команды /setinline.
  10. Отслеживание использования токенов для каждого пользователя.
  11. Получение персональной статистики использования токенов и стоимости в день/месяц с помощью команды /stats.
  12. Разделение бюджетов пользователей и бюджетов гостей.
  13. Поддержка GPT-4. Если у вас есть доступ к API GPT-4, просто измените параметр OPENAI_MODEL на gpt-4.

Подводные камни

Доступ к API от OpenAI не бесплатный. Компания даёт $5 бонусом при получении доступа. Этого хватит, чтобы использовать бота пару недель.

После того, как бонусные доллары закончатся, нужно будет пополнить счёт аккаунта OpenAI. Если этого не сделать, по истечении баланса бот работать не будет.

Для личного использования хватит около $10-20 в месяц.

Все популярные нейронки без заморочек: https://gpt-boss.web.app/about/tnutlin