Telegram-бот для аналитики видео на основе запросов на естественном языке.
- Принимает вопросы на русском языке
- Автоматически генерирует SQL-запросы через OpenAI GPT-4o
- Возвращает числовой ответ
- Сколько всего видео в системе?
- Сколько видео набрало больше 100000 просмотров?
- На сколько просмотров выросли все видео 28 ноября 2025?
- Сколько разных видео получали новые просмотры 27 ноября 2025?
- Python 3.12
- aiogram 3.x (Telegram Bot API)
- PostgreSQL 16
- SQLAlchemy + asyncpg
- OpenAI API (GPT-4o)
- Docker
git clone https://github.com/koomatoz/video-analytics-bot.git
cd video-analytics-botcp .env.example .envЗаполнить переменные:
TELEGRAM_BOT_TOKEN- токен от @BotFatherOPENAI_API_KEY- ключ OpenAI APIPOSTGRES_PASSWORD- пароль для PostgreSQL
Скачать videos.json и поместить в папку data/
docker compose up -d
docker compose exec bot python scripts/load_data.py /app/data/videos.jsonUser -> Telegram -> Bot -> OpenAI (text-to-SQL) -> PostgreSQL -> Response
- Пользователь задаёт вопрос на русском языке
- GPT-4o генерирует SQL-запрос на основе схемы БД
- SQL валидируется (только SELECT разрешён)
- Запрос выполняется, результат возвращается пользователю
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
├── src/
│ ├── main.py
│ ├── config.py
│ ├── bot/handlers.py
│ ├── db/models.py, session.py, repository.py
│ └── llm/service.py, prompts.py
└── scripts/load_data.py