Skip to content

koomatoz/video-analytics-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Video Analytics Telegram Bot

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

Установка

1. Клонировать репозиторий

git clone https://github.com/koomatoz/video-analytics-bot.git
cd video-analytics-bot

2. Создать .env файл

cp .env.example .env

Заполнить переменные:

  • TELEGRAM_BOT_TOKEN - токен от @BotFather
  • OPENAI_API_KEY - ключ OpenAI API
  • POSTGRES_PASSWORD - пароль для PostgreSQL

3. Скачать данные

Скачать videos.json и поместить в папку data/

4. Запустить

docker compose up -d
docker compose exec bot python scripts/load_data.py /app/data/videos.json

Архитектура

User -> Telegram -> Bot -> OpenAI (text-to-SQL) -> PostgreSQL -> Response

Подход к преобразованию текста в SQL

  1. Пользователь задаёт вопрос на русском языке
  2. GPT-4o генерирует SQL-запрос на основе схемы БД
  3. SQL валидируется (только SELECT разрешён)
  4. Запрос выполняется, результат возвращается пользователю

Структура проекта

├── 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

About

Telegram bot for video analytics with natural language queries

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors