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