Files
2026-09-06 13:51:14 +00:00

2.7 KiB

Digest Pipeline — еженедельный дайджест почты

Назначение

Автоматическая генерация краткого дайджеста входящей почты за период (7 дней по умолчанию) через локальную LLM.

Компонент

/opt/hermes/email-assistant/scripts/digest.py

Pipeline

  1. Читает SQLite-индекс (mail_index.db), выбирает письма за N дней
  2. Группирует по папкам
  3. Формирует текстовый блок для LLM: папка → список писем (дата, отправитель, тема)
  4. Вызывает Qwen3:8b через Ollama с промптом на русском
  5. Сохраняет дайджест в /opt/hermes/email/digests/digest-YYYY-MM-DD.md
  6. Выводит в stdout (флаг --output управляет)

Промпт

LLM получает запрос написать краткий дайджест для руководителя:

  • Статистика: сколько писем, сколько папок
  • По папкам — 1-3 предложения об основных темах
  • Выделить важные письма (руководство, тендеры, финансы)
  • На русском, ≤300 слов, без перечисления каждого письма
  • Группировать по темам, игнорировать тех.мусор

Использование

python3 scripts/digest.py                    # 7 дней
python3 scripts/digest.py --days 14          # 2 недели
python3 scripts/digest.py --folder INBOX     # только INBOX
python3 scripts/digest.py --output stdout    # только в stdout без файла

Cron

hermes cron create \
  --name "email-digest-sunday" \
  --schedule "0 9 * * 0" \
  --prompt "Запусти digest.py за 7 дней" \
  --script /opt/hermes/email-assistant/scripts/digest.py \
  --no-agent

Зависимости

  • mail_index.db — должен быть проиндексирован (mail_index.py)
  • Qwen3:8b через Ollama (localhost:11434)
  • ~15-20 секунд на генерацию через CPU

Важные замечания

  • body_preview в индексе — только 500 символов, поэтому FTS5-поиск по телу ограничен
  • Для дайджеста используется только subject/from/date — тело не передаётся в LLM
  • Группировка по папкам — базовая. Если нужно тематическое группирование — доработать