Files
tg-digest-docker/README.md
Тимур Абайдулин ba1245a06c init
2026-02-07 16:31:46 +03:00

105 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🤖 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 (на хосте)
```bash
# Установи Ollama: https://ollama.com
ollama pull gemma3:12b
ollama serve # если не запущен как сервис
```
### 2. Telegram API
Получи `api_id` и `api_hash` на https://my.telegram.org
### 3. Конфигурация
```bash
cp .env.example .env
# Заполни .env: TG_API_ID, TG_API_HASH, список каналов
```
### 4. Сборка и авторизация
```bash
docker compose build
docker compose run --rm app --auth
# Введи номер телефона и код из Telegram
```
### 5. Запуск
```bash
# Тест (вывод в консоль, без отправки)
docker compose run --rm app --dry-run
# Боевой запуск
docker compose run --rm app
# Только сбор (без суммаризации)
docker compose run --rm app --collect
```
### Автозапуск (cron на маке)
```bash
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 # Отправка дайджеста
```