Pull to refresh

Awakari в Telegram

Level of difficultyEasy
Reading time4 min
Views3.2K

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

Что такое Awakari

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

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

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

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

RSS

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

Список легко пополняется и предложения по новым источникам охотно принимаются. Так что если вы знаете интересную RSS/Atom ленту, то присылайте автору статьи. Либо можно сразу предложить Pull Request вот сюда (тут же находится актуальный полный список текущих используемых на входе лент новостей).

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

Интеграция с телеграм для Авакари является очевидной. Поэтому система также получает сообщения из некоторых популярных и публичных телеграм каналов. По аналогии с лентами новостей, здесь также есть наука, вакансии по всему миру, новости, различные товары, анонсы фильмов, криптовалюты, арабский, корейский, хинди... Всего 38 каналов на момент написания статьи. Также приветствуются предложения к добавлению. Актуальный список находится здесь.

Telegram бот

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tags:
Hubs:
Total votes 6: ↑5 and ↓1+4
Comments14

Articles