Мы приветствуем ваш вклад в развитие TITAN Analytics Platform!
- 🐛 Сообщайте о багах через Issues
- 💡 Предлагайте новые фичи
- 📝 Улучшайте документацию
- 🔌 Создавайте новые процессоры данных
- 📚 Делитесь шаблонами в Marketplace
# 1. Fork репозитория
# 2. Создайте ветку для фичи
git checkout -b feature/amazing-feature
# 3. Внесите изменения и commit
git commit -m 'Add amazing feature'
# 4. Push в ваш fork
git push origin feature/amazing-feature
# 5. Создайте Pull RequestЭтот проект лицензирован под MIT License - см. файл LICENSE для деталей.
- Yandex Cloud за API для поиска и GPT
- Django за отличный фреймворк
- React за мощный UI
- Plotly за визуализацию
- Команде Severstal ICT за начальную реализацию
- GitHub: NickScherbakov/Severstal_ICT2024
- Issues: GitHub Issues
Сделано с ❤️ командой TITAN Analytics
⭐ Поставьте звезду, если проект был полезен!
Универсальная платформа аналитики данных
Превращайте любые данные в действенные инсайты с помощью AI
TITAN Analytics Platform — это мощная универсальная платформа для сбора, анализа и визуализации данных из множества источников. Система объединяет возможности веб-скрейпинга, AI-обработки, интеллектуального поиска и генерации аналитических отчетов.
- 🔍 Умный поиск — семантический поиск с синонимами и ранжированием
- 🤖 AI-анализ — интеграция с YandexGPT для суммаризации и анализа
- 📊 Визуализация — интерактивные графики на Plotly
- 📝 Отчёты — экспорт в PDF, Word, Excel
- 🎬 Мультимедиа — анализ видео через субтитры YouTube
- 🔌 Расширяемость — модульная система обработчиков данных
- 📚 Библиотека шаблонов — готовые решения для типовых задач
- 🎨 Конструктор отчётов — визуальное создание кастомных аналитических отчётов
- Бизнес-аналитика: анализ рынка, конкурентная разведка, мониторинг цен
- Медиа-мониторинг: отслеживание репутации бренда, анализ упоминаний
- Научные исследования: обзор литературы, анализ публикаций
- Юридический анализ: мониторинг законодательства, судебная практика
- Образование: систематизация знаний, учебные материалы
- Framework: Python 3.11+ / Django 4.2
- Database: PostgreSQL 15
- Task Queue: Celery + RabbitMQ
- Containerization: Docker, docker-compose
- Analysis: Pandas, NumPy
- Web Scraping: BeautifulSoup, Playwright
- PDF Processing: Pdfplumber, Camelot
- NLP: LangChain, RuWordNet, PyMorphy3
- AI: Yandex GPT API
- Search: Yandex Search API
- Video: YouTube API (поиск + субтитры)
- Framework: React 18 + TypeScript
- Visualization: Plotly.js
- UI: Tailwind CSS + Radix UI
- State: TanStack Query
- Build: Vite
- Web Server: Nginx
- SSL: Let's Encrypt
- API Documentation: DRF Spectacular (OpenAPI)
TITAN Analytics Platform
│
├── 🎨 Frontend (React + TypeScript)
│ ├── Конструктор отчётов
│ ├── Marketplace шаблонов
│ └── Интерактивная визуализация
│
├── ⚙️ Backend (Django REST API)
│ ├── 📊 Data Processing Pipeline
│ │ ├── Web Scraper
│ │ ├── PDF Parser
│ │ ├── Video Analyzer
│ │ └── File Processor
│ │
│ ├── 🤖 AI Processing Layer
│ │ ├── YandexGPT Integration
│ │ ├── Sentiment Analysis
│ │ ├── Entity Extraction
│ │ └── Summarization
│ │
│ ├── 🔍 Search Engine
│ │ ├── Semantic Search
│ │ ├── Synonym Expansion
│ │ └── Relevance Ranking
│ │
│ └── 🔌 Processor Registry
│ ├── Sentiment Processor
│ ├── Network Graph Processor
│ ├── Timeline Processor
│ ├── Forecast Processor
│ └── Custom Processors...
│
├── 💾 Data Layer
│ ├── PostgreSQL (structured data)
│ ├── File Storage (PDFs, media)
│ └── Search Index
│
└── ⚡ Task Queue (Celery + RabbitMQ)
├── Async data collection
├── Report generation
└── Scheduled updates
-
Клонировать репозиторий
git clone git@github.com:NickScherbakov/Severstal_ICT2024.git cd Severstal_ICT2024 -
Настроить окружение
cp .env.example .env # Отредактируйте .env файл со своими настройками -
Настроить SSL (опционально)
Отредактируйте
init-letsencrypt.sh:- Укажите ваш домен
- Укажите email администратора
chmod +x init-letsencrypt.sh ./init-letsencrypt.sh
-
Запустить платформу
docker-compose up -d
Платформа будет доступна по адресу:
https://ваш-домен.ru
# Создание виртуального окружения
python -m venv venv
source venv/bin/activate # Linux/Mac
# или
venv\Scripts\activate # Windows
# Копирование переменных окружения
cp .env.example .env# Для LangChain и Playwright
sudo apt-get install libwoff1 libwebpdemux2 libenchant-2-2 \
libsecret-1-0 libhyphen0 libegl1 libevdev2 libgles2# Запуск PostgreSQL и RabbitMQ
docker-compose -f docker-compose-dev.yml up -dcd backend
pip install -r requirements.txt
# Установка Playwright
playwright install# Применение миграций
python manage.py migrate
# Создание суперпользователя
python manage.py createsuperuser
# 🎯 НОВОЕ: Загрузка библиотеки шаблонов TITAN
python manage.py load_template_library# Скачивание RuWordNet для синонимов
ruwordnet download
# Парсинг начальных данных (настройте URL в файле)
# backend/accounts/management/commands/start_urls.py
python manage.py init_data
# Генерация поискового индекса
python generate_search.py search.pkl# Терминал 1: Django dev server
python manage.py runserver
# Терминал 2: Celery worker
celery -A analyst worker -l info
# Терминал 3: Frontend (в другой директории)
cd ../titan_frontend
npm install
npm run dev🎉 Готово! Платформа доступна:
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:8000/api/ - Admin:
http://localhost:8000/admin/ - API Docs:
http://localhost:8000/api/schema/swagger-ui/
Предустановленные шаблоны для типовых задач:
-
💼 Бизнес-аналитика
- Комплексный анализ рынка
- Конкурентная разведка
- Финансовая аналитика
-
🔬 Научные исследования
- Систематический обзор литературы
- Анализ цитирований
- Трендовый анализ публикаций
-
📺 Медиа-мониторинг
- Мониторинг репутации бренда
- Анализ тональности упоминаний
- Трекинг трендов
-
⚖️ Юридический анализ
- Мониторинг законодательства
- Анализ судебной практики
- Комплаенс-проверки
-
🎓 Образование
- Комплексное изучение темы
- Систематизация знаний
- Учебные обзоры
TITAN использует модульную систему обработчиков:
- Sentiment Analysis — анализ тональности текста
- Network Graph — построение графов связей между сущностями
- Timeline — временные шкалы событий
- Comparison — сравнительный анализ
- Forecast — прогнозирование на основе данных
- Table — обработка табличных данных
Легко расширяется! Создайте свой процессор:
from accounts.processors import DataProcessor, ProcessorRegistry
class MyCustomProcessor(DataProcessor):
def can_process(self, block_type: str, data_type: str) -> bool:
return block_type == 'my_type'
def process(self, data, params):
# Ваша логика обработки
return {'type': 'my_type', 'result': ...}
# Регистрация
ProcessorRegistry.register(MyCustomProcessor())Поддерживаемые источники:
- 🌐 Веб-страницы (HTML)
- 📄 PDF документы
- 🎬 Видео (YouTube с субтитрами)
- 📊 Файлы (CSV, Excel)
- 🔌 API endpoints
- 📰 Новостные агрегаторы
- 💬 Социальные сети (расширяемо)
Создавайте кастомные аналитические отчёты через UI:
- Выберите категорию анализа
- Добавьте нужные блоки (drag & drop)
- Настройте фильтры и источники
- Сохраните как шаблон
- Поделитесь в Marketplace
После запуска сервера доступна интерактивная документация:
- Swagger UI:
http://localhost:8000/api/schema/swagger-ui/ - ReDoc:
http://localhost:8000/api/schema/redoc/ - OpenAPI Schema:
http://localhost:8000/api/schema/
GET /api/v1/templates/ # Список шаблонов
GET /api/v1/templates/marketplace/ # Публичные шаблоны
POST /api/v1/templates/{id}/export/ # Экспорт шаблона
POST /api/v1/templates/import/ # Импорт шаблона
GET /api/v1/categories/ # Категории шаблонов
GET /api/v1/reports/ # Список отчётов
POST /api/v1/reports/ # Создать отчёт
GET /api/v1/search/ # Поиск данных
# Загрузка библиотеки шаблонов
python manage.py load_template_library
# Инициализация начальных данных
python manage.py init_data
# Индексация из CSV
python manage.py index_csv_file data.csv
# Экспорт моделей в CSV
python manage.py model2csv accounts.WebPage > pages.csv
# Генерация поискового индекса
python manage.py generate_search search.pkl# 1. Скачивание RuWordNet для синонимов
ruwordnet download
# 2. Подготовка данных
python manage.py model2csv accounts.WebPage > pages.csv
# 3. Индексация
python manage.py index_csv_file pages.csv
# 4. Генерация поискового ресурса
python generate_search.py search.pkl- ✅ Семантический поиск с учётом синонимов (RuWordNet)
- ✅ Морфологический анализ (PyMorphy3)
- ✅ Ранжирование по релевантности
- ✅ Поддержка временных диапазонов
- ✅ Фильтрация по доменам
- ✅ Поиск по видео (через субтитры)