Мероприятие в Западной Африке: какие чат-бот инструменты помогли нам разослать билеты в 2 раза быстрее?

В исследовании State of Chatbots пишут, что 69% пользователей предпочитают чат-ботов, а не коммуникацию через отдельные приложения. Приложение надо скачивать, проходить регистрацию с вечными паролями, а потом и обновлять. В бот написал и сразу получил ответ — без суеты. Но чтобы создать такого бота, нужны мощные инструменты.

Мероприятие в Западной Африке: какие чат-бот инструменты помогли нам разослать билеты в 2 раза быстрее?

В статье рассмотрим, какие инструменты помогают в создании ботов, которые:

  • увеличивают трафик топовой ритейл сети России до 4 валидных чеков на 1 участника акции,
  • рассылают билеты на мероприятие в Западной Африке.

Почему мы выбрали React JS?

React JS — это JavaScript-библиотека для создания пользовательских интерфейсов. Это про то, что видит и с чем взаимодействует юзер. Главная фишка — компонентный подход.

  • Компонентная архитектура. Разбивает интерфейс бота на небольшие и независимые элементы. Это упрощает разработку и обновление — каждый компонент можно легко изменять и переиспользовать. И спокойно создавать модульный код.
  • DOM. Мгновенно обновляет только нужные элементы интерфейса и при этом минимизирует затраты.
  • Реактивный подход. Чат-бот реагирует на изменения и обновляет интерфейс в режиме реального времени. Например, мгновенно отображает новое сообщение в чате без перезагрузки.
  • Мультиплатформы. React JS поддерживает веб- и мобильные устройства и даже настольные приложения. Можно создавать мультиплатформенные чат-боты.
  • Экосистема. React JS включает в себя разные инструменты, такие как Redux для управления состоянием бота и React Router для навигации. Они упрощают разработку сложных функций — обработку диалогов, обмен данными и интеграцию.
<i>Чат-бот на React JS для ведущей розничной сети России </i>
Чат-бот на React JS для ведущей розничной сети России 

Шпаргалка по инструментам

Поговорим про инструменты, которые мы активно используем в разработке ботов. Тут все — от Rabbit MQ до PostgreSQL. Разберём, что они такого сделали, чтобы попасть в список мастхэв-инструментов.

Rabbit MQ

Rabbit MQ — это инструмент, который передаёт сообщения между компонентами или системами.

Как он работает?

  1. Отправитель помещает сообщение в очередь Rabbit MQ.
  2. Rabbit MQ сохраняет сообщение внутри очереди.
  3. Получатель забирает сообщение из очереди и обрабатывает его.
  4. Rabbit MQ отслеживает процесс передачи и гарантирует доставку.

Почему он классный?

  • Надёжность и отказоустойчивость. RabbitMQ доставляет сообщения даже при сбоях или перегрузках.
  • Масштабируемость. Распределяет нагрузку между приложениями и серверами. Огромное количество запросов — не помеха.
  • Интеграция. RabbitMQ легко интегрируется с Node.js и ASP.NET,
  • Асинхронная обработка. Приложение не заблокируют из-за длительных операций.

Redis

Redis — это быстрое хранилище данных типа «ключ‑значение» в памяти с открытым исходным кодом.

Почему он классный?

  • Быстродействие. Redis — эксперт по высокой производительности и кэшированию. Инструмент хранит данные в оперативной памяти — вы мгновенно получаете доступ к ним. Также запросы обрабатываются быстрее.
  • Кэширование. При получении запроса бот проверяет релевантное значение в Redis-кэше и возвращает результат. К основным данным не обращается. В итоге сокращается время ответа и снижается нагрузка на БД.
  • Поддержка. Строки, списки, хеш-таблицы, множества и сортированные множества. Бот может хранить и обрабатывать различные данные, а также искать, сортировать и фильтровать.
  • Отказоустойчивость. У Redis встроенная поддержка репликации и кластеризации. В случае сбоя приложение переключается на реплику.

Node JS

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

Почему он классный?

  • Однопоточная и событийно-ориентированная архитектура. Node.js работает в одном потоке, используя асинхрон и обратные вызовы (callbacks). Польза в том, что вы обрабатываете несколько запросов одновременно и ввод-вывод не блокируется. Это повышает производительность.
  • Высокая масштабируемость. Node.js работает с горизонтальным масштабированием. Добавление дополнительных серверов для распределения нагрузки — не проблема.
  • Экосистема модулей. Доступна через систему управления пакетами npm. Процесс разработки в разы быстрее, так как вы используете готовые модули — обработку текстов, интеграцию с внешними сервисами или работу с БД.
  • Поддержка WebSocket. Коммуникация между клиентом и сервером в режиме реального времени.
<i>В чат-боте можно играть</i>
В чат-боте можно играть

ASP.NET

А тут у нас платформа для разработки веб-приложений. По опыту скажем — проекты разработанные на ASP.NET легко масштабируются, супербыстрые и тянут до 1 000 000 активных пользователей.

Почему он классный?

  • Безопасность. Проверка подлинности и авторизации, защита от атак типа CSRF и XSS, а также механизмы шифрования данных.
  • Базы данных. ASP.NET даёт доступ к различным БД через Entity Framework. Это упрощает коммуникацию с хранилищем данных бота. Также можно использовать ORM-инструменты для создания и управления структурами данных.
  • Расширяемость. Готовые решения для обработки нетипичных задачах. Всё благодаря NuGet.
  • Любая платформа. Развёртывайте боты на Windows, Linux или macOS.

Entity Framework

Entity Framework — это ORM (Object-Relational Mapping) фреймворк. Он удобный — управление данными происходит через объектно-ориентированный подход.

Почему он классный?

  • Простота. Высокоуровневый API взаимодействует с БД, используя объекты и запросы на языке LINQ (Language Integrated Query). Работать намного легче.
  • Автоматическая генерация моделей данных. Создание модели данных (Entity) на основе существующей БД. Или новых схем данных на основе классов. Это экономит время и минимизирует ошибки.
  • Поддержка провайдеров БД. Entity Framework поддерживает более 30 провайдеров БД — PostgreSQL, SQL Server, MySQL, Oracle и т.д. Выбор огромен — среди списка точно найдёте подходящую под ваш проект систему.
  • Миграции. Механизм обновляет БД автоматически.

PostgreSQL

Это мощная БД. Одна из самых крутых вещей в PostgreSQL — открытый исходный код. Ещё она тянет 1 терабайт данных, те. миллионы записей или гигабайты текстовых данных.

Почему он классный?

  • Реляционная модель. Определяет структуру и связи между элементами бота — можно превращать данные в таблицы.
  • Хранение и обработка данных. Благодаря оптимизированной архитектуре и индексированию, доступ к данным быстрее, а производительность выше.
  • Надежность. Транзакционная поддержка, целостность данных, резервное копирование и восстановление, а также обработка ошибок. Всё это способствует сохранности данных и отказоустойчивости чат-ботов.
  • Расширяемость и гибкость. Благодаря набору типов данных, пользовательских функций и индексированию, PostgreSQL адаптирует БД под уникальные потребности проекта.
  • Интеграция. PostgreSQL — это не только хранение данных. Сегодня разработано более 100 интеграционных решений для взаимодействия с БД. Например, CRM, ERP и CMS. Всему виной широкая популярность PostgreSQL.

Заключение

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

99
Начать дискуссию