Как легко создать чат-бота для сайта и мессенджера

заглавная картинка

Привет!

В одной из прошлых статей мы делились списком полезных ботов в Telegram. Сегодня мы решили продолжить тему и разобрать, чем полезны чат-боты, как создать бота в Телеграм и самостоятельно развернуть его. 

Сегодня интегрировать чат-бота можно в любое приложение, мессенджер, соцсеть, на сайт и т. д. Они используются везде, где нужно автоматизировать диалог в формате “вопрос-ответ”, разгружают менеджеров и сокращают человеко-часы рутинной работы.
Так, например, благодаря введению бота “Аси” “Одноклассники” смогли сэкономить 42 миллиона рублей в год. Что еще может чат-бот:

  • Персонализировать общение. 
  • Отправлять транзакционные сообщения.
  • Уменьшить время ожидания клиентов.
  • Находить информацию в базе.
  • Автоматизировать бизнес-процессы.
  • Геймифицировать клиентский опыт.

Какие чат-боты бывают

Для удобства мы разделили чат-боты по функциям. Первый часто используемый вариант – это чат-бот для продаж

Он консультирует покупателей, помогает оформить заказ и сообщает о его статусе. 

Tripster чат-бот

Например, подобный Telegram-бот работает у сервиса Tripster.

Второй вариант – лид-бот, собирающий заявки с сайта автоматически. Он пригодится, если пользователю нужно помочь разобраться в услугах и выбрать подходящую. Пример такого бота – на сайте школы “Умскул”:

умскул

Он ведет диалог с пользователем: узнает у него важные данные – от класса, в котором учится школьник, до номера телефона. 

С помощью такого бота компания увеличила конверсию в телефонный разговор из начала диалога на 24% за 3 месяца.

По принципу бота-информатора работают многие чаты компаний. Например, в боте Skillbox можно получить онлайн-консультацию по услугам компании, узнать о скидках и акциях.

skillbox чат

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

Пример такого решения – чат-бот в приложении “Т-Банка”:

Т Банк чат

А теперь расскажем, какие технологии и инструменты используются для создания чат-бота: от самого простого к чуть более сложному.

Как создать чат-бот: технологии

Существует три способа создания чат-ботов. Это покупка готового решения, конструктор и написание чат-бота с нуля. 

Приобрести готового бота можно на любой из онлайн-площадок, например, на Just AI. Там вы найдете решения для интернет-магазинов, ресторанного бизнеса и чего угодно.

Создать чат-бот самостоятельно можно с помощью конструктора – это довольно просто. К популярным конструкторам относятся Botmaker, Aimylogic, PuzzleBot, Leadtex, Bot Kits и т. д. Сервисы позволяют настроить логику использования сразу на сайте, прописать сообщения и начать пользоваться. 

Когда нужно проработать подробный сценарий, подойдет платформа n8n. Этот сервис облегчает написание бота с нуля и экономит время на написание кода. 

Установить эту платформу на ваш сервер в Бегете можно через маркетплейс. 

Попробовать n8n

Ну а если вам нужен бот со сложными функциями, можно создать его с нуля на Python, JavaScript, NodeJS и пр. 

Например, написать код для бота в Telegram можно на JavaScript: для разработки хватит его базовых навыков – здесь рассказывается, как создать чат-бота на JS, используя библиотеку node-telegram-bot-api, и научить его базовым командам. 

А как развернуть чат-бота на VPS, мы пошагово разберем чуть ниже 🙂

В целом самостоятельная разработка позволяет подключить ChatGPT в качестве инструмента для написания кода и создать чат-бота бесплатно без навыков программирования.

Развернуть чат-бота можно на VPS: для этого подойдет даже минимальная конфигурация с 1 Гб памяти. 

Теперь, как и обещали, разберем, как самостоятельно создать бота.

Как развернуть Telegram-бота на VPS

Мы подробно разберем, как развернуть чат-бота на сервере VPS с Ubuntu 24.04. В качестве языка программирования мы выбрали Python – именно он используется для таких задач чаще всего, да и в мире он лидирует по популярности. 

Для начала подключитесь к серверу по SSH либо воспользуйтесь терминалом в панели управления. Мы будем использовать приложение “Терминал”.

Авторизуемся на сервере под пользователем root и создадим пользователя tgbot, через которого будем работать дальше:

adduser tgbot

Дважды укажите для пользователя пароль, остальные данные можно не заполнять – нажмите Enter, чтобы пропустить ввод.

Добавим нового пользователя в группу sudo:

usermod -aG sudo tgbot

Больше пользователь root нам не потребуется. Отключаемся командой exit или сочетанием клавиш Ctrl+D.

Вновь подключимся к серверу, однако для входа будем использовать пользователя tgbot.

Затем перейдем к установке Python и зависимостей проекта. Python версии 3.12 уже установлен на сервере:

$ python3 -V
Python 3.12.3

Создадим директорию проекта и перейдем в нее:

mkdir tg_bot && cd tg_bot 

Создадим и активируем виртуальное окружение:

python3 -m venv tgbot
source tgbot/bin/activate

Наш бот будет использовать библиотеку pyTelegramBotAPI, более известную как telebot. Мы выбрали ее, так как она проста в использовании для новичка, отличается богатым функционалом, подробной документацией (в том числе на русском языке) и широким сообществом пользователей. Вы можете использовать любую другую библиотеку. Для экспорта переменных из конфигурационного файла будем использовать библиотеку python-dotenv. Установим указанные библиотеки через pip:

python3 -m pip install pyTelegramBotAPI python-dotenv

Если бот содержит список зависимостей в файле requirements.txt, выполните следующую команду:

python3 -m pip install -r requirements.txt

Для работы чат-бота сгенерируем ключ API Telegram. Откройте официальный бот для создания ботов @BotFather
Запустите его и выполните команду /newbot, укажите название бота и его username (уникальный идентификатор) – в результате вы получите API-ключ:

botfather

Для безопасности токен будем хранить в переменных окружения. В директории, где будут размещаться файлы бота, создайте файл .env и добавьте в него следующую строку:

TELEGRAM_BOT_TOKEN=ваш_токен

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

git clone https://github.com/python-telegram-bot/python-telegram-bot.git .

Вы также можете загрузить или создать файлы через файловый менеджер в разделе “Облако” в панели управления. В нашем случае файлы расположены по пути /home/betutorial/betutorial_bot.

sprutio

Попробуем запустить алгоритм вручную. Для этого в директории, где находится файл main.py, выполним в терминале команду (виртуальное окружение должно быть активировано):

python3 main.py

В терминале видим сообщение о том, что бот запущен, ошибок нет.

~/tg_bot$ python3 main.py
Бот запущен...

Проверим его работу:

бот

Бот будет работать, пока открыт терминал, в котором он запущен. Чтобы запустить его в фоновом режиме, можно воспользоваться утилитами nohup или tmux. Однако в случае перезагрузки сервера он также будет остановлен.

Чтобы бот работал в фоновом режиме и запускался после перезагрузки, настроим его работу в качестве службы systemd.

Создадим файл службы (обязательно с использованием sudo):

sudo nano /lib/systemd/system/tg_bot.service

И вставим в него следующее содержимое, нажав в терминале сочетание клавиш Ctrl+V:

[Unit]
Description=Telegram bot
After=syslog.target
After=network.target

[Service]
Type=simple
User=tgbot
WorkingDirectory=/home/tgbot/tg_bot/
ExecStart=/home/tgbot/tg_bot/tgbot/bin/python3.12 main.py
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Рассмотрим основные параметры:

  • Description – описание службы.
  • User – пользователь, под именем которого запускается алгоритм.
  • WorkingDirectory – рабочая директория проекта.
  • ExecStart – команда для запуска бота.

Обратите внимание, что в поле ExecStart перед файлом бота нужно указать путь к python в venv – в нашем случае это /home/tgbot/tg_bot/tgbot/bin/python3.12. Остальные параметры можно оставить без изменений.

Сохраните файл, нажав сочетание клавиш Ctrl+X, затем введите y и нажмите Enter.

Обновляем все юниты:

sudo systemctl daemon-reload

Запускаем службу:

sudo systemctl start tg_bot.service

И включаем ее:

sudo systemctl enable tg_bot.service

Проверяем состояние службы:

sudo systemctl status tg_bot.service
system ctl status

Видим, что ошибок нет, служба активна и включена (enabled). Это значит, что она будет запускаться при перезагрузке системы.

Для перезапуска службы (например, после внесения изменений в код) используйте следующую команду:

sudo systemctl restart tg_bot.service 

Чтобы проверить, что бот запущен и работает в фоне, вы также можете выполнить команду:

ps aux | grep main.py

Видим, что бот есть в списке процессов:

ps aux

На этом всё, бот готов и работает. Вы прекрасны 🙂

Заключение

Сегодня чат-бот – это и онлайн-консультант, и менеджер по продажам, и комьюнити-менеджер, и оператор технической поддержки. Он решает множество задач бизнеса – от классификации лидов до обработки платежей. С его помощью можно даже решать технические проблемы, например, наладить автоматические уведомления о нагрузке на сервере или оповещения об ошибках.

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

Вне зависимости от того, какой чат-бот вам нужен – для соцсетей, мессенджеров или сайта, развернуть его можно на нашем VPS. 

Если у вас возникли какие-либо вопросы, свяжитесь с нами удобным для вас способом – и мы обязательно ответим. Также ждем вас в нашем официальном Telegram-канале, а обсудить статью или просто пообщаться на любую тему с коллегами по цеху и сотрудниками Бегета вы можете в нашем чате.

10
5009