В прошлый вторник Qlik анонсировал кое-что интересное – Qlik открыл код двух своих чат-ботов для Telegram. Теперь они полностью open source и открыты для улучшений. По этому поводу расскажу о первом чат-боте – QlikBotNet. Ему вы можете задать, например, такой вопрос: «Какой у нас средний чек в декабре?», и он пришлет данные и диаграмму, если такая имеется. Интересно? Тогда подробности =)

QlikBotNet: Что умеет?

QlikBotNet – чат-бот для Qlik Sense для мессенджера Telegram. По сути – это прослойка между мессенджером Telegram и продуктами Qlik (Qlik Sense и Qlik NPrinting), которая помогает взаимодействовать с аналитикой на ходу. Дали чат-боту голосовую команду (можно даже не печатать): «Какие у нас продажи по направлению «Матрешки» в декабре?», и получили в чат конкретную цифру и сопутствующую диаграмму. Похоже, что будущее ближе, чем мы думали.

Функционал QlikBotNet:

  • Запросы на естественном языке (natural language).
  • Доступ с значениям KPI
  • Доступ к мерам и получение текущих значений
  • Доступ к измерениям и получение KPI, основанных на этом измерении
  • Получение связанных диаграмм прямо в Telegram
  • Получение отчетов прямо в Telegram
  • Поддержка 6 языков – русский (!), английский, испанский, португальский, итальянский, французский
  • Поддержка Qlik Sense
  • Поддержка Qlik NPrinting
  • Выставление оповещений (пока только запланировано)
  • Получение связанных новостей (пока только запланировано)
  • Поддержка других мессенджеров (пока только запланировано)

Пользовательские сценарии, или как QlikBotNet сможет помочь пользователям Qlik Sense:

  • Первый сценарий мы уже рассмотрели – срочная аналитика. На совещании или на бегу можно задать срочный вопрос на обычном, человеческом языке, а в ответ получить нужные цифры и диаграмму.
  • Удобный доступ к отчетам Qlik NPrinting. Чат-бот показывает все доступные пользователю отчеты NPrinting – их можно сразу скачать и открыть, прямо из Telegram.
  • Быстрый доступ в Qlik Sense по какой-то конкретной мере. Можно выбрать интересующую меру из master items прямо в Telegram, а бот покажет в ответ кнопку «Анализ», нажав на которую вы попадете в нужное приложение с нужным фильтром в Qlik Sense Hub
  • Получение оповещений по данным. Но это только когда они появятся – функционал заявлен, так что, надеюсь, это будет скоро, т.к. функция реально полезная.

Собственно, общение с чат-ботом будет выглядеть как-то так (только еще и на русском):

QlikBotNet

QlikBotNet

QlikBotNet

QlikBotNet

QlikBotNet

QlikBotNet: как устроен?

Этот раздел с разъяснениями я взял у разработчика чат-бота, Zhu Wuzhong. Для начала – о технологиях. Как пишут разработчики-сотрудники Qlik, «несмотря на свое Windows происхождение, .NET был выбран, потому что некоторые пакеты NuGet действительно очень полезны при создании чат-бота»:

QlikBotNet

  • Telegram.Bot осуществляет коммуникацию между Бот-платформой Telegram и вашей программой
  • QlikSense.NetSDK отвечает за задачи, связанные с Qlik Sense (например, открытие приложений, управление пользователями, выставление фильтров, master items и т.д.)
  • ApiAiSDK отвечает за запросы к сервису Google API.AI, который теперь называется dialogflow. Это платформа обработки естественного языка от Google (natural language processing platform, NLP).
  • Microsoft.Cognitive.LUIS отвечает за запросы к Microsoft LUIS. Это платформа обработки естественного языка от Microsoft (natural language processing platform, NLP).

Теперь немного об анатомии чат-бота QlikBotNet:

QlikBotNet

Если вы откроете проект с QlikBotNet на Qlik Branch или GitHub, вы найдете там 6 проектов. Кратко пробежимся по ним:

1. QlikBot: запускает процесс создания новой службы бота, после чего запускается QlikTelegram.

2. QlikTelegram: отвечает за коммуникацию между Telegram и остальными службами. Когда он получает сообщение, он проверяет, является ли пользователь администратором, и решает, обрабатывать ли команду дальше. Если он получает специальную команду, он сразу обрабатывает ее и отправляет ответ получателю. Если сообщение требует обработки естественного языка, он перенаправляет сообщение на обработку QlikConversationService.

3. QlikConversationService: отвечает за всю обработку естественного языка. Она же – natural language processing, она же NLP.Так вот, модель NLP (Гугловая – Dialogflow или Майкрософтовская – LUIS) натренирована понимать вопросы. Например: «Каковы наши продажи сегодня?» или «Какое значение у показателя <любой ваш KPI>?». Когда он получает сообщение, он передает его в QlikNLP на обработку. Получив обработанный ответ, он получает объекты от Qlik Sense Server. После того, как он получил все необходимое от Qlik Sense, он передает сообщение в QlikTelegram.

4. QlikNLP: Соответственно, здесь обработчика NLP два – один для Google, другой для Microsoft.

5. QlikSenseEasy: Это вспомогательный элемент для Qlik Sense, построенный на Qlik .NET SDK. Отвечает за задачи, связанные с Qlik Sense (например, открытие приложений, управление пользователями, выставление фильтров, master items и т.д.)

6. QlikLog: Это вспомогательный элемент, который позволяет собирать полезную информацию – например, когда новый пользователь начинает общаться с ботом. QlikBotNet логирует практически все действия (полученные сообщения, inline сообщения (вызов бота из другого чата), ошибки и пр. Директория, куда пишутся логи, прописывается в app.config-> logFilePath.

QlikBotNet: как установить?

Чат-бот QlikBotNet размещен на GitHub: https://github.com/wuzhong-zhu/QlikBotNet

Здесь я не буду описывать процесс установки и настройки чат-бота – у Qlik есть очень подробное руководство, там же, на GitHub. Оно включает в том числе и процесс создания бота в Telegram: https://github.com/qlik-bots/QlikBotNet/blob/master/Documentation/Installation%20guide%20for%20Telegram%20Bot.V2.1%20-%20Header.pdf

Руководство для пользователя QlikBotNet: https://github.com/qlik-bots/QlikBotNet/blob/master/Documentation/User%20guide%20for%20Telegram%20Bot.V1.0.pdf

Демонстрация на видео, как работают Qlik чат-боты:

Итак, кто хочет завести чат-бота для Qlik Sense? =)

P.s. Не забывайте подписываться на наш канал в Telegram: https://t.me/qrugnews

P.p.s. В следующий раз расскажу о втором кликовском чат-боте, QlikBotNode. Он реализован на Javascript с node.js и пока тоже поддерживает только Telegram, но в ближайших планах – подключение Skype, MS Teams, Cortana, Slack, Google Assistant и Amazon Alexa.