Awakari в Telegram

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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

Что такое Awakari

Важнейшая вещь в Авакари - это подписка (subscription). С помощью подписки пользователь задает критерии поиска среди сообщений. Но вместо повтора поиска для новых сообщений, в Авакари новые сообщения инициируют поиск подходящих подписок. После чего система доставляет сообщение по всем подходящим подпискам. Такой подход позволяет избежать polling и доставлять сообщения пользователям немедленно.

Для этого используется так называемый Reverse Search Index в дополнение к привычной Publish/Subscribe функциональности.

Источники данных

Допустим, Авакари умеет эффективно фильтровать информацию. Но откуда в Авакари поступают новые сообщения? В теории можно использовать всё, что угодно, СМИ, мессенджеры, социальные сети, сообщения от всевозможных умных устройств. Прямо сейчас уже доступно два способа - ленты новостей в формате RSS/Atom и публичные каналы в телеграм.

RSS

На данный момент в систему поступают обновления из 43-х популярных лент новостей. Здесь есть наука, новости, собственно сам Хабр (куда же без него), финансы, обзоры фильмов, обновления популярных Youtube-каналов на разных языках и многое другое.

Список легко пополняется и предложения по новым источникам охотно принимаются. Так что если вы знаете интересную RSS/Atom ленту, то присылайте автору статьи. Либо можно сразу предложить Pull Request вот сюда: https://github.com/awakari/producer-rss/tree/master/helm/producer-rss/templates (тут же находится актуальный полный список текущих используемых на входе лент новостей).

Публичные Telegram каналы

Интеграция с телеграм для Авакари является очевидной. Поэтому система также получает сообщения из некоторых популярных и публичных телеграм каналов. По аналогии с лентами новостей, здесь также есть наука, вакансии по всему миру, новости, различные товары, анонсы фильмов, криптовалюты, арабский, корейский, хинди... Всего 38 каналов на момент написания статьи. Также приветствуются предложения к добавлению. Актуальный список находится здесь: https://github.com/awakari/producer-telegram/blob/master/helm/producer-telegram/values-demo-0.yaml

Telegram бот

Телеграм-бот @AwakariBot является основным интерфейсом пользователя. Он позволяет управлять своими подписками, публиковать собственные сообщения в систему и самое важное, читать сообщения по подпискам. Доступные функции делятся на две категории:

  1. Приватный чат с ботом - управление подписками и публикация сообщений.

  2. Группа с ботом - выбор подписки (или нескольких) для чтения сообщений в данной группе.

Чтобы начать работу с ботом, начните с приватного чата и просто нажмите кнопку "START".

Приватный чат

Выглядит следующим образом:

Основные функции доступны в виде кнопок внизу.

Кнопка "Subscriptions" - для получения статистики использования подписок. Также присылает список всех подписок пользователя. Каждая подписка в списке также представляет из себя кнопку, нажатие которой выводит детальную информацию о выбранной подписке и предлагает кнопки действий:

Кнопка "+ Basic" под "Subscriptions" позволяет быстро создать простейшую подписку с текстовым условием для сообщений. При нажатии бот предлагает ввести имя новой подписки и список ключевых слов (все разделяется пробелами, поэтому имя новой подписки не должно содержать пробелов, как и ключевые слова). Пример:

Подписка из этого примера будет получать все сообщения, в которых встречается хотя бы одно из слов "news", "новости" или "uutiset". Для английского языка также будет срабатывать в разных падежах, числах и т.п. (стемминг). Для других языков стемминг пока недоступен, но в будущем также возможно.

Кнопка "+ Custom" под "Subscriptions" может быть полезна для создания сложных подписок с группировкой условий и отношениями между ними (And/Or/Xor). Также в этом режиме доступны численные условия. Более подробно об этом здесь: https://awakari.app/help.html

По аналогии с подписками, под кнопкой "Messages Publishing" есть такие кнопки как "▸ Basic" и "▸ Custom". Это кнопки для отправки простого сообщения и сообщения с произвольными атрибутами, соответственно. В режиме отправки простого сообщения также можно отправить изображение/фото, аудио/музыку, видео или документ:

Группа с ботом

Хорошо, я создал подписку чтобы получать то, что мне интересно, что же дальше?

Дальше нужно создать группу и пригласить в неё AwakariBot. Можно назвать её как-нибудь вроде "Awakari Inbox" (например для всех подписок сразу) или дать имя, соотвествующее какой-то одной подписке. Бот предложит выбрать подписку из списка для чтения. Можно выбрать несколько. Когда в систему поступит сообщение, которое совпадет с данной подпиской, бот пришлет его в эту группу:

Другой пример полученного сообщения - из RSS-источника. Такие сообщения содержат дополнительнные атрибуты, которые спрятаны под спойлер под "Extra Attributes":

Планы на будущее

Всё это сейчас уже активно используется для персональных нужд. Также доступно для всех остальных в рамках разумного и в режиме демо. Если это окажется полезным кому-то ещё, то можно будет перевести все это в режим реального использования aka production.

Распознавание речи

Наиболее очевидное расширение - это распознование речи. Пользователь отправляет голосовое сообщение через бота, бот используя Speech API превращает это в текст (транскрипт) и сообщение становится легко доступным для сопоставления с текстовыми условиями.

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

Курсы валют и криптовалют

Мониторинг курсов (крипто)валют и уведомление на основе произвольных условий вроде "доллар больше 100" также можеть быть интересным определенным категориям пользователей.

Пока что это всё на сегодня. В случае возникновения любых вопросов вы можете использовать команду бота /support или задать вопрос в community-группе в телеграме.

Источник: https://habr.com/ru/articles/767422/


Интересные статьи

Интересные статьи

Перенос стиля — одна из самых интересных задач в генеративном компьютерном зрении. Вы можете создавать изображения в определённом стиле? подобно тому, как это реализовано во множестве фоторедакторов с...
Суть идеи заключается в создании биржи виртуальных ассистентов, способных отправлять первые сообщения в популярных мессенджерах, таких как WhatsApp и Telegram. Когда ассистент настроен таким образом, ...
Без SMSсервера, без PHP(Python) Скриптов, без промежуточных Email...В habr статье от 08.2019 был рассмотрен рабочий способ для приема SMS.При всей его громоздкости и костыльности - он пользуется попул...
Так как я не смог найти подходящую "картинку для привлечения внимания", а тема теплосетей так или иначе затрагивается — будем считать, что эти коты здесь имеют право быть...
Как я реализовал удаленное управление и мониторинг, для программируемого реле ПР200, используя разные сервисы (Telegram Bot, HomeKit) протоколы (Modbus RTU, Modbus TCP, m...