init
This commit is contained in:
104
README.md
Normal file
104
README.md
Normal file
@@ -0,0 +1,104 @@
|
||||
# 🤖 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 # Отправка дайджеста
|
||||
```
|
||||
Reference in New Issue
Block a user