www.fgks.org   »   [go: up one dir, main page]

Как стать автором
Обновить

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

Уровень сложностиПростой

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

Скриншот из бота https://t.me/chatgpt_karfly_bot
Скриншот из бота https://t.me/chatgpt_karfly_bot

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

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

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

  • Аккаунт 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-4 и GPT-4 Turbo.

  • Поддержка работы в чатах телеграмм.

  • Генерация изображений.

  • Транскрипция голосовых сообщений в текст.

  • Подсветка кода в ответах ChatGPT.

  • Поддержка Markdown.

  • 15 различных личностей ChatGPT: психолог, Илон Маск, художник и т.д.

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

  • Отслеживание баланса OpenAI.

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

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

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

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

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

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

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

  • Перейдите на страницу регистрации нового аккаунта TimeWeb и создайте новый аккаунт. Вы можете использовать быструю регистрацию через аккаунты ВК или Google.

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

  • Нажмите на кнопку «Заказать» справа сверху чтобы создать сервер.

2. Деплой

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

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

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

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

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

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

Выполните команду в консоли 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

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

Выполните команду в консоли 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. Буду рад ответить на любые комментарии :)

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.