Найти в Дзене

Окружил себя Telegram-ботами помощниками, которые здорово экономят время

Всем привет! Я - практикующий исследователь данных, и на этом канале делюсь тем, что реально работает в IT. Никакой сухой теории, только личный опыт, рабочие инструменты и грабли, на которые я уже наступил за вас. Рад, что вы здесь!🧸 Как-то писал уже (тут ссылка) про то, чем пользуюсь для задач и прочего. Кстати я этот пост уже начал писать два месяца назад и вот только сегодня решил всё таки его дописать и переписать. Изначально хотел описать бота который заменил мне уже привычный календарь от apple с напоминаниями, приоритетами и прочим. Но что ж мелочиться, давайте я расскажу про мой топ ботов которые я сделал для работы (конечно несколько узконаправленных с метриками ботов я тут описывать не буду, так как "как не крути" там информация и архитектура конфиденциальная. 🕵🏽‍♂️ **кстати, пишите в комментариях вопросы или пожелания, все мои боты со временем модернизируются и я их не бросаю🧸, если кому нужны репозитории то могу поделиться, как "разпривачу репозитории". Работаю с данны
Оглавление

Всем привет! Я - практикующий исследователь данных, и на этом канале делюсь тем, что реально работает в IT. Никакой сухой теории, только личный опыт, рабочие инструменты и грабли, на которые я уже наступил за вас. Рад, что вы здесь!🧸

Как-то писал уже (тут ссылка) про то, чем пользуюсь для задач и прочего. Кстати я этот пост уже начал писать два месяца назад и вот только сегодня решил всё таки его дописать и переписать. Изначально хотел описать бота который заменил мне уже привычный календарь от apple с напоминаниями, приоритетами и прочим. Но что ж мелочиться, давайте я расскажу про мой топ ботов которые я сделал для работы (конечно несколько узконаправленных с метриками ботов я тут описывать не буду, так как "как не крути" там информация и архитектура конфиденциальная. 🕵🏽‍♂️

**кстати, пишите в комментариях вопросы или пожелания, все мои боты со временем модернизируются и я их не бросаю🧸, если кому нужны репозитории то могу поделиться, как "разпривачу репозитории".

О как
О как

Бот-планировщик. Почему календарь iPhone и MacBook меня не устраивал

Работаю с данными, дедлайны, встречи, задачи — всё это нужно где-то фиксировать. Долгое время использовал стандартный календарь на iPhone и MacBook. Но со временем стало неудобно:

- Синхронизация — да, работает, но не всегда идеально между устройствами, вечно проблемы с icloud (возможно только у меня так захламлено там, но всё таки)

- Скорость — чтобы создать напоминание, нужно открыть приложение, выбрать дату, время, ввести текст, приоритет если надо, url, напоминать заранее или нет и тд

- Естественный язык — нельзя просто написать "напомни завтра купить хлеб" и получить результат, да блин, даже если написать/сказать Сири напомни послезавтра купить корм для кота - он не поймет и не запишет дату, всё равно придется заполнять вручную, особенно если нужно время напоминания

- Гибкость — сложно работать с повторяющимися событиями, тегами, приоритетами

При всём при этом я пользовался каждый день, просто эти косяки копились бесконечно. И я подумал: а что если сделать бота, который понимает, как я говорю? Просто пишешь ему текстом, а он сам разбирается, что и когда нужно сделать... 🎻

Итак бот-RemindMe_pro_bot

Решил сделать Telegram-бота на Python, который:

- Понимает естественный язык
- Работает везде, где есть Telegram
- Быстро создает напоминания
- Поддерживает теги, приоритеты, повторяющиеся события
- Показывает календарь и ясно когда у меня свободные дни например

Технологический стек

Выбрал проверенные инструменты:

- Python 3.10+ — основной язык

- python-telegram-bot — фреймворк для работы с Telegram API

- SQLAlchemy + PostgreSQL — для надежного хранения данных

- dateparser — для парсинга дат из естественного языка

- APScheduler — для фоновой отправки уведомлений

Интерфейс бота RemindMe_pro_bot
Интерфейс бота RemindMe_pro_bot

Особенности RemindMe_pro_bot

Парсинг естественного языка (NLP)

Самая сложная и интересная часть — научить бота понимать, что я имею в виду, когда пишу:

- "Напомни завтра купить хлеб"
- "25 декабря в 17:00 отложить на кредит и ипотеку"
- "Каждый день напоминай мне делать зарядку в 08:45"
- "Через 20 минут выключить суп"

Можно было просто присоединить ЛЛМ скажете?🙃 А нет у меня таких ресурсов на сервере чтобы тяжеловесные боты там коллекционировать, будем оркестровать регулярными выражениями и мини библиотечками около-NLP-шными.

**ещё много чего можно по нему написать: как я тестировал бота, граничные условия, доработка (кстати она дорабатывается постоянно, ну как время у меня появляется и я нахожу баги) и так далее, но думаю пока, того что написал достаточно, перейду к следующему боту.

Бот-терминал линукс

О, это мой любимый бот, потому-что в терминале моего рабочего сервера вся моя работа (айрфлоу, кликхаус, постгрес, боты, скрипты, сценарии, ssh-ки, и многое другое), а каждый раз подключаться к удаленному компу для того чтобы там запустить терминал и посмотреть что стряслось - ну такая себе история, особенно если ты в дороге или компа под рукой нет, а телефон под рукой всегда.

Даже не знаю, что про этого бота расписать, просто скажу что через него я могу делать всё то что делаю с терминала напрямую, терминал на сервере Дебиан. К боту есть доступ только у меня, настроена админка, указан мой телеграм айди, при желании я могу добавить коллегу в бота, если он захочет его запустить - мне придет уведомление "Разрешить / Запретить".

Во как, терминал в телеге выглядит 🤩
Во как, терминал в телеге выглядит 🤩

Иногда приходится прям править некоторые вещи, поэтому пришлось настроить NOPASSWD в sudoers (что развязывает руки, но нужно быть предельно осторожным, собственно поэтому я никому доступ до сих пор и не дал).

Поехали дальше... 🎻

Бот-доставщик бизнес метрик

К сожалению скриншот я не могу вставить, ибо придется замазывать практически всё, но всё таки вкратце опишу, так как многим может быть полезно.

Бот дергает данные с кликхауса, уже готовые views с метриками. Что нужно делает (разделяет, объединяет в пачку + пишет описание если нужно), далее отправляет заранее оговоренному пользователю (у меня это топ менеджеры, их всего человек 10, каждый отвечает за свои метрики, соответственно каждому бот отправляет ежедневно, кому-то через каждые 3 часа) необходимые метрики, графики, список менеджеров и т.д.

Очень удобно, так как всё таки топы заходят на дашборды только перед месячным или недельным отчетом. А так, все данные всегда под рукой и можно вовремя скорректировать курс.

Бонус. Бот-кешбек котролёр

Сразу скажу, этого бота я сделал для личных целей и он работает только внутри моей семьи по юзер айди, таким же способом можно его настроить и под себя или свою семью (пишите кому интересно, сделаю админку).

Проблема

Я с моей супругой люди азартные, с опортунистическими выходками, и следовательно мы не проходим мимо такого блага общества как кешбеки 🔬.

У каждого из нас по 4-5 карт разных банков (на самом деле больше, но в некоторых нет категорий кешбека, например в картах зарубежных банков, но не суть). По каждой карте, каждый месяц новые категории и проценты, и тяжело за ними уследить, да, мы перед покупкой сначала смотрели в личном кабинете по каждой карте категории кешбеков, далее уже приноровились делать табличку, но её хватило на один раз.

И я подумал, а что если сделать бота, которому просто отправляешь скриншот со страницы категорий кешбека и бот сам записывает как надо в список, и при надобности он просто выдает общую таблицу семьи по каждой карте и по каждой категории.

Категории за текущий месяц
Категории за текущий месяц

Опенсорсные библиотеки пайтон бывают тупят с русским языком при распознавании картинок, поэтому предусмотрел и редактирование распознанного списка категорий.

Распозналось всё как надо, но бывает и лишние символы, но это не проблема
Распозналось всё как надо, но бывает и лишние символы, но это не проблема

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

Это еще не конец. Но пока итог

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

Я не претендую на последнюю инстанцию, я пишу о своём пути и опыте. Спасибо что дочитали до конца. Подпишитесь👇👇👇, ставьте лайки 👍🏽👍🏽👍🏽 впереди много интересных статей про навыки, инструменты, обучение, лайфхаки и пути аналитика.