Как создать GPT-бота в Telegram

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

Нам потребуется 10 минут и аккаунт в Telegram и OpenAI.

Как создать GPT-бота в Telegram

Давайте рассмотрим как сделать свой бот.

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

  • Аккаунт OpenAI. Чтобы зарегистрироваться нам потребуется почта и VPN. Для регистрации можно использовать и временный анонимный email ящик, вы можете использовать сервисы temp-mail.org или 10minutemail.net. Не забудьте включить VPN перед регистрацией так как регистрация с российских IP невозможна.
  • После регистрации, зайдите в раздел для разработчиков на сайте OpenAI, нажмите на кнопку «Create new secret key» и сохраните ключ в надежное место.
  • Создайте Telegram бота через @BotFather. Выберите username и имя вашего бота. После этого botFather отправит вам API ключ от него. Его тоже нужно сохранить. Подробная инструкция создания тут.

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

  • Переходим на страницу с шаблоном для бота, нажимаем на зеленую кнопку с текстом «Code» вверху страницы, в открывшемся списке выбираем «Download ZIP».
  • Распаковываем архив, переходим в папку с ним. Открываем папку config которая находится в корне папки. Открываем файл config.example.yml с помощью блокнота (или любого текстового редактора) и вставляем туда наши токены.
  • Токен полученный от @BotFather в поле telegram_token, токен полученный от OpenAI в поле open_ai_key. Токены нужно вставить между кавычек.
  • Переименовываем файлы config.example.yml в config.yml и config.example.env в config.env.

Запускаем бота

Перед запуском бота необходимо включить VPN, чтобы бот смог отправлять запросы к OpenAI.

Если у вас Windows 10

  • Переходим в корневую папку проекта (ранее распакованную из архива).
  • Нажимаем на «Файл» в левом верхнем углу проводника, выбираем «Запустить Windows PowerShell», в открывшемся списке выбираем «Запустить в Windows PowerShell».
  • Копируем строчку docker-compose --env-file config/config.env up --build мышью или с помощью ctrl + v и затем жмем «Enter» на клавиатуре. Если PowerShell не позволяет выполнить команду, откройте PowerShell от имени администратора и попробуйте ещё раз. Для этого повторите пункт 2, только выберите в открывшемся списке «Запустить в Windows PowerShell от имени администратора» вместо «Запустить в Windows PowerShell».

Если у вас Linux дистрибутив с DE Gnome

  • Переходим в корневую папку проекта (ранее распакованную из архива).
  • Кликаем правой кнопкой мыши и выбираем «Open in Console».
  • Копируем строчку docker-compose --env-file config/config.env up --build мышью или с помощью ctrl + shift + v и затем жмем «Enter» на клавиатуре.

Бот должен начать работу. Чтобы остановить бота, вам нужно просто закрыть консоль.При повторном запуске бота просто введите docker-compose --env-file config/config.env up --build , шаги выше уже выполнять не нужно.

Как создать GPT-бота в Telegram

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

  • Поддержка GPT-4 и GPT-4 Turbo.
  • Поддержка работы в чатах телеграмм.
  • Генерация изображений.
  • Транскрипция голосовых сообщений в текст.
  • Подсветка кода в ответах ChatGPT.
  • Поддержка Markdown.
  • 15 различных личностей ChatGPT: психолог, Илон Маск, художник и т.д.
  • Возможность ограничить круг пользователей Телеграм которые могут пользоваться ботом.
  • Отслеживание баланса OpenAI.

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

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

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

Деплой бота на Linux сервер

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

Чтобы бот был запущен все время, а не только когда работает ваш компьютер, его нужно развернуть на сервере. Мы будем рассматривать деплой на линукс сервера хостинг провайдера TimeWeb.

1. Создание сервера

  • Перейдите на страницу регистрации нового аккаунта TimeWeb и создайте новый аккаунт. Вы можете использовать быструю регистрацию через аккаунты ВК или Google.
  • Перейдите на страницу создания облачного сервера, выберите любой регион кроме российского в секции «Регион», отключите услугу Бэкапы в секции «Дополнительные услуги». Все остальные поля оставьте по умолчанию.
  • Нажмите на кнопку «Заказать» справа сверху чтобы создать сервер.

2. Деплой

Как создать GPT-бота в Telegram
  • Скопируйте root пароль в секции справа ниже секции «Основной диск».
Как создать GPT-бота в Telegram

Перейдите во вкладку «Консоль» и дождитесь загрузки окна консоли.После загрузки введите «root» и нажмите кнопку «Enter» на клавиатуре, затем вставьте ранее скопированный пароль от пользователя root и нажмите на «Enter» снова.

Если вы видите следующее приветственное сообщение в окне консоли, вы все сделали правильно.

Как создать GPT-бота в Telegram

Вывод консоли:

Как создать GPT-бота в Telegram
  • Выполните следующую команду в консоли nano ./config/config.example.yml. В открывшемся окне вставляем токен полученный от @BotFather в поле telegram_token, токен полученный от OpenAI в поле open_ai_key. Токены нужно вставить между кавычек. Перемещать курсор можно с помощью стрелок на клавиатуре. Жмем ctrl + o и затем «Enter», выходим из редактора в консоль с помощью ctrl + x.

Как все должно получится:

Как создать GPT-бота в Telegram

Выполните команду в консоли mv ./config/config.example.yml ./config/config.yml; mv ./config/config.example.env ./config/config.env. В случае успешного выполнения эта команда не выводит в консоль никаких сообщений.Финальный штрих. Выполните docker-compose --env-file ./config/config.env up --build --detach

Вывод должен быть:

Как создать GPT-бота в Telegram

Выполните команду в консоли mv ./config/config.example.yml ./config/config.yml; mv ./config/config.example.env ./config/config.env. В случае успешного выполнения эта команда не выводит в консоль никаких сообщений.Финальный штрих. Выполните docker-compose --env-file ./config/config.env up --build --detachВывод должен быть:

Если вы правильно выполнили все пункты, бот должен запуститься. Если вы решите перезагрузить сервер, чтобы запустить бота заново выполните cd ~/chatgpt_telegram_bot; docker-compose --env-file ./config/config.env up --build --detach в окне консоли.

Заключение

Надеюсь эта статья была для вас полезна и мой опыт вам пригодится. Если хотите посмотреть как выглядит и работает оставленный шаблон бота, то нажмите @Karfly_gpt_bot. Буду рад ответить на любые комментарии :)

99
7 комментариев

Хорошо, а есть вариант без "подводных камней" ?

1
Ответить

Было бы славно, но к сожалению OpenAI не отдает свои api ключи на благотварительнось :(

1
Ответить

Никогда не думал, что создание бота может быть таким простым

1
Ответить

Да, даже ребенок может сделать. Единственное с подключением к серверу могут возникнуть сложности

Ответить

а Как русифицировать этот бот?

Ответить

имею в виду меню в самом Боте к примеру приветственную фразу и навигацию по режимам и настройкам

Ответить