Перейти к содержанию

Паутина Мориарти — KZ HSE Monitor [🗄️ ARCHIVED]

Выключен 27 апреля 2026. Контейнер + image + volume + файлы удалены. Причина: за 7 дней работы выдал 0 HIGH/MEDIUM алертов в канал @LyumiHSEDigest. Ручное обновление НПА раз в 2 недели покрывает ту же потребность. Страница сохранена как история + deploy-инструкции на случай возрождения.

Почему выключили

23 апреля Kamal зафиксировал: «Паутина какая-то дурацкая, не пойму надо или нет». 27 апреля решили выключить по цифрам:

Реальные метрики на момент выключения: - CPU: 0.00% (демон спит между запусками) - RAM: 60MB / 30GB сервера (0.19%) - Disk: 220KB SQLite - Image: 174MB - Алертов HIGH за 7 дней: 0 - Алертов MEDIUM за 7 дней: 0 - Постов в канал через паучка за неделю: 0 - Стоимость: ~$2/мес (Haiku-классификация)

Технически работает корректно — просто ничего важного не приносит. Ручное обновление НПА раз в 2 недели (ритуал) покрывает то же самое без инфраструктурфы.

Что было удалено (27 апреля)

docker stop lyumi-monitor && docker rm lyumi-monitor
docker rmi lyumi-monitor              # 174MB image
docker volume rm lyumi-monitor-data   # 220KB SQLite
rm -rf /opt/lyumi/kz_monitor          # папка с fetcher'ами
rm /opt/lyumi/adalat_monitor.py       # древний предшественник (был ранее)

Освобождено: 174MB диска, 60MB RAM, ~$2/мес.

Если потребуется воскресить

Код в git сохранён. Поднять обратно:

# Раскатать из git
cd /opt/lyumi && git clone <repo> kz_monitor
cd kz_monitor

# Пересобрать image
docker build -t lyumi-monitor .

# Создать volume
docker volume create lyumi-monitor-data

# Запустить
docker run -d \
  --name lyumi-monitor \
  --restart unless-stopped \
  --env-file /opt/lyumi/.env \
  -v lyumi-monitor-data:/app/data \
  lyumi-monitor

Когда имеет смысл воскрешать

  • Если ручной ритуал НПА (субботы каждые 2 недели) сломается / станет тяжелым
  • При реализации Grounding v2 в Q3 — паучок может стать auto-ingest layer (вариант A из оригинального обсуждения 23 апреля)
  • Если появятся «жирные» НПА-изменения которые Lyumi пропустит из-за отсутствия мониторинга — вернуть

[История] Что делала Паутина

Автоматический мониторинг казахстанских госсайтов на новые НПА, экослушания и HSE-новости. Часть экосистемы Lyumi: паутина → алерт Kamal'у → Opus пишет пост → публикация в @LyumiHSEDigest.

Сервер

Hetzner CPX52 (46.62.238.135). Docker контейнер lyumi-monitor. Volume: lyumi-monitor-data:/app/data (SQLite). Env: использовал .env от дайджест-бота.

Расписание

Понедельник и четверг, 09:00 по Алматы. APScheduler daemon.

Архитектура

Fetchers (httpx + BS4)
  → legalacts.egov.kz (проекты НПА, фильтр 90 дней)
  → adilet.zan.kz (RSS, принятые НПА, verify=False)
  → zakon.kz (медиасигнал)
  → SQLite дедупликация (SHA-256 content_hash)
  → Haiku классификатор (35+ тем)
  → Алерты: HIGH/MEDIUM/LOW
  → Кнопка "Подготовить пост" → Opus → канал

Источники v2.0

Источник Что ловил Фильтрация
legalacts.egov.kz Проекты НПА на обсуждении dateFrom/dateTo + пост-фильтр 90 дней + NPA ID >= 14.5M
adilet.zan.kz/rus/docs/rss Принятые НПА (RSS) HSE_KEYWORDS, verify=False
zakon.kz Медиа-новости HSE HSE_KEYWORDS

Классификатор

35+ тем, привязаны к 11 элементам HSE Copilot Cards. ~110 ключевых слов.

Файлы (внутри контейнера /app/)

  • main.py — CLI: --run-once, --seed, --stats, --source, daemon
  • fetchers/base.py — BaseFetcher + HSE_KEYWORDS
  • fetchers/legalacts.py — парсер legalacts.egov.kz
  • fetchers/adilet.py — парсер RSS Әділет
  • fetchers/zakon.py — парсер zakon.kz
  • classifier/importance.py — HSEClassifier (Haiku)
  • alerts/telegram.py — алерты + батч-сводка
  • storage/models.py — Pydantic + SQLite
  • config/sources.yaml — реестр источников

Связанные

  • [[lyumi/bot_v3]] — основной бот
  • [[lyumi/digest_bot]] — дайджест
  • [[lyumi/strategy_2026]] — Industry Knowledge Network (ставка №2), Grounding v2 в Q3