Тимур Абайдулин ba1245a06c init
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00
2026-02-07 16:31:46 +03:00

🤖 tg-digest-docker

Автоматический сбор новостей из Telegram-каналов с AI-суммаризацией и доставкой дайджеста.

Архитектура

┌─────────────────────────────────────────────┐
│  macOS (M4 Pro)                             │
│                                             │
│  ┌───────────┐    ┌──────────────────────┐  │
│  │  Ollama   │◄───│  Docker: tg-digest   │  │
│  │  (native) │    │  ┌────────────────┐  │  │
│  │  GPU ✓    │    │  │ collector.py   │  │  │
│  └───────────┘    │  │ summarizer.py  │  │  │
│   localhost:11434 │  │ delivery.py    │  │  │
│                   │  └────────────────┘  │  │
│                   │   volume: /data      │  │
│                   └──────────────────────┘  │
└─────────────────────────────────────────────┘
  • Ollama работает нативно на macOS → полный доступ к Apple GPU
  • Python-приложение в Docker → изолированные зависимости
  • Связь через host.docker.internal:11434

Быстрый старт

1. Ollama (на хосте)

# Установи Ollama: https://ollama.com
ollama pull gemma3:12b
ollama serve  # если не запущен как сервис

2. Telegram API

Получи api_id и api_hash на https://my.telegram.org

3. Конфигурация

cp .env.example .env
# Заполни .env: TG_API_ID, TG_API_HASH, список каналов

4. Сборка и авторизация

docker compose build
docker compose run --rm app --auth
# Введи номер телефона и код из Telegram

5. Запуск

# Тест (вывод в консоль, без отправки)
docker compose run --rm app --dry-run

# Боевой запуск
docker compose run --rm app

# Только сбор (без суммаризации)
docker compose run --rm app --collect

Автозапуск (cron на маке)

crontab -e
# Каждый день в 8:00 и 20:00
0 8,20 * * * cd /path/to/tg-digest && docker compose run --rm app >> /tmp/tg-digest.log 2>&1

Конфигурация (.env)

Переменная Описание По умолчанию
TG_API_ID Telegram API ID
TG_API_HASH Telegram API Hash
TG_CHANNELS Каналы через запятую
TG_HOURS_BACK За сколько часов собирать 12
LLM_PROVIDER ollama / anthropic / openai ollama
OLLAMA_MODEL Модель Ollama gemma3:12b
DELIVERY_METHOD saved_messages / bot / file saved_messages

Полный список — в .env.example.

Структура

tg-digest/
├── .env.example        # Шаблон конфигурации
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── config.py           # Загрузка конфига из env
├── main.py             # Точка входа + CLI
├── collector.py        # Сбор из Telegram
├── summarizer.py       # LLM-суммаризация
└── delivery.py         # Отправка дайджеста
Description
🤖 Автоматический сбор новостей из Telegram-каналов с AI-суммаризацией и доставкой дайджеста
Readme 35 KiB
Languages
Python 98.2%
Dockerfile 1.8%