Awakari - сервис подписки на релевантные сообщения
Идея
Около двух лет назад появилась идея объединения всех используемых источников информации, используемых в повседневной жизни в единый поток. Это необходимо для того, чтобы не пропускать важные события в режиме реального времени. Например:
- подходящие вакансии
- новости на определённую тему
- товары, автомобили, недвижимость
- упоминания определенных брендов или имен в СМИ.
Чтобы раз и навсегда избавиться от сопутствующего информационного шума и спама, необходимо выполнять т. н. обратный поиск. То есть, не запрос инициирует поиск, как это обычно происходит в поисковых системах, а каждое новое сообщение инициирует поиск всех заинтересованных клиентов за один раз.
Обычный поиск не решает проблему, так как его необходимо повторять снова и снова, если интересующий результат не найден. При этом результат может быть потерян или стать неактуальным между попытками его найти. Пример: выгодное предложение о продаже iPhone 15 может появиться на условном Авито после попытки поиска и довольно быстро исчезнуть ещё до следующей попытки на другой день.
Решения вроде RSS-лент не позволяют находить что-либо за пределами своего локального пузыря источников, а также имеют и другие недостатки:
- не гарантирует релевантных результатов
- всегда имеет место быть дополнительная задержка, обусловленная периодом обновления, что может быть неприемлимо в некоторых случаях
- поддержка популярными источниками RSS постоянно падает примерно с 2006 г.
Таким образом, возникла идея сервиса, выполняющего непрерывный обратный поиск в потоке сообщений из неограниченного множества источников.
Представляет из себя на данный момент бесплатный публичный сервис, который принципиально не хранит никаких данных о пользователях (есть минимально необходимая аутентификация, но нет никакой регистрации) . В качестве интерфейса пользователя используются:
- Web-интерфейс для управления источниками и подписками.
- Телеграм-бот в качестве средства доставки результатов.
Web-интерфейс также является PWA, поэтому можно для удобства установить его на мобильный телефон:
Сервис состоит по сути из двух основных функций — Publish и Subscribe. Поэтому интерфейс содержит эти две вкладки:
На момент написания статьи в (растущей) коллекции используемых источников есть:
- 103 лент обновлений (RSS, Atom и тп)
- 74 публичных телеграм-каналов
- 37 сайтов, изменения на которых проверяются раз в день.
Для последнего типа источников («сайт») используется обычный поисковый индекс, поэтому механизм получения событий из него проще всего показать так:
Если нет нужного источника в этой коллекции, можно добавить собственный:
Соответственно, на вкладке «Sub» — всё для управления подписками текущего пользователя:
Новую подписку можно создать нажатием кнопки «+ Subscribe». Экран создания новой подписки имеет два режима: простой и продвинутый. В простом режиме можно просто перечислять ключевые слова через пробел. В этом режиме можно также создать «цепочку фильтров» (до 4-х), каждое из которых будет обязательным условием (если указано и не пустое):
Продвинутый режим переключается с помощью «Advanced» вверху справа. Этот режим позволяет использовать другие типы условий фильтрации сообщений — численные (например, цена) или группы других условий. Экран редактирования существующей подписки выглядит также:
После создания подписки можно перейти к телеграм-боту чтобы начать получать сообщения по этой подписке:
Планы на будущее
- Распознование речи и изображений. Пользователь публикует сообщение в форме аудио, видео и т. п. Используя, например, Speech API можно конвертировать речь в текст и сделать её доступной для выбора по ключевым словам в условиях подписок.
- Мониторинг курсов (крипто) валют и уведомления на основе произвольных условий вроде «доллар больше 100» также можеть быть интересным определенным категориям пользователей. Поддержка численных условий для этого уже реализована.
- Расширение типов источников, например, интеграция с ActivityPub.
В случае возникновения любых вопросов вы можете задать вопрос в community‑группе в телеграме.