Автоматизация поиска заявок в Telegram-чатах
Как собирать запросы заказчиков из чатов, отсекать саморекламу и распределять находки по направлениям.
Задача бизнеса
Команде приходилось просматривать профильные чаты, чтобы находить запросы на услуги. В ленте смешивались сообщения заказчиков, предложения исполнителей, повторы и спам.
Поиск по одному ключевому слову не помогал: он давал много нерелевантных находок, и разбирать их всё равно приходилось руками. Ручной просмотр общей ленты отнимал время специалистов каждый день.
Как устроено решение
Я собрала юзербота, который забирает сообщения из подключённых чатов и пропускает их через правила отбора. Учитываются признаки поиска исполнителя, близость слов намерения и темы, стоп-слова и повторы.
Отобранные сообщения распределяются по темам рабочей группы со ссылкой на оригинал — специалист может сразу открыть исходное сообщение и ответить.
Почему фильтр устроен сложнее, чем поиск по словам
Фраза «ищу разработчика» и фраза «я разработчик, ищу заказы» содержат одни и те же слова. Отличить одно от другого можно только по признакам намерения и взаимному расположению слов. Поэтому в правилах учитываются не отдельные слова, а их сочетания, и отдельно ведётся список стоп-слов.
Как проверяется качество отбора
Причины отбора и отклонения записываются в журналы. Это позволяет проверять фильтры на накопленной истории сообщений: видно не только что бот пропустил, но и почему.
Качество оценивается по журналам и ручной разметке на одной выборке — до и после изменения правил. Так изменение фильтра можно сравнить с предыдущей версией, а не оценивать на глаз.
Что меняется в работе
Специалист получает подборку по своему направлению и меньше времени тратит на просмотр общей ленты.
Устойчивость работы
Источники подключаются последовательно, при ограничениях Telegram выдерживаются паузы, служба на сервере перезапускается автоматически.
Моя роль в проекте
Проект я сделала полностью сама: разобрала, по каким признакам отличается запрос заказчика от саморекламы, составила и отладила правила отбора, собрала журналы для проверки качества, развернула службу на сервере и настроила её автоматический перезапуск.
Технологии
Python, Telethon, VPS, systemd, правила отбора в rules.json, журналы в CSV, git.
Есть похожий процесс?
Расскажите, какие источники вы просматриваете и какие запросы нужно находить. Начнём с задачи и подберём подходящий способ реализации.
Обсудить задачу ↗