AiVideoAndAudioAnaliz
Описание
Языки
- Python57,8%
- HTML20,7%
- JavaScript12,8%
- CSS8,1%
- Shell0,4%
- Dockerfile0,2%
python -m venv venv
venv/Scripts/activate
pip install -r requirements.txt
🚀 Использование:
Полный бенчмарк всех моделей
python scripts/model_benchmark.py --model all --iterations 5 --output-dir results
Только Whisper
python scripts/model_benchmark.py --model whisper --iterations 3
Только MediaPipe
python scripts/model_benchmark.py --model mediapipe --iterations 3
Быстрый тест
python scripts/model_benchmark.py --quick
Справка
python scripts/model_benchmark.py --help
📁 Выходные файлы:
benchmark_results/ ├── benchmark_20241214_153045.log # Логи выполнения ├── benchmark_results_20241214_153045.json # Полные результаты (JSON) ├── benchmark_summary_20241214_153045.csv # Сводная таблица (CSV) └── benchmark_report_20241214_153045.txt # Текстовый отчет
📋 ПЛАН ИСПОЛЬЗОВАНИЯ ПРОМПТОВ:
СЕССИЯ 1: Экспресс-запуск (1-2 часа)
- Тема 1 → Базовое окружение (.env + Docker проверка)
- Тема 2 → Тест AI-моделей на малом видео
СЕССИЯ 2: Ядро приложения (3-4 часа)
- Тема 6 → Безопасность загрузки файлов
- Тема 3 → Настройка Celery + Redis
- Тема 4 → Оптимизация SQLite
СЕССИЯ 3: Пользовательский опыт (2-3 часа)
- Тема 5 → Исправление UX/UI проблем
- Тема 7 → Оптимизация производительности
СЕССИЯ 4: Продакшен (1-2 часа)
- Тема 8 → Health checks + мониторинг
- Тема 10 → Критичные тесты
СЕССИЯ 5: Улучшения (по желанию)
- Тема 9 → Дополнительные фичи
🎯 ТЕМА 1: DevOps-инженер для базового развертывания
Роль: Практикующий DevOps, специалист по Django + Docker
Цель: Проверить и исправить базовое развертывание
Ты — DevOps-специалист, настраивающий рабочее окружение для MVP.
ТЕХНИЧЕСКИЙ КОНТЕКСТ:
- Один .env файл для всех окружений (development/production)
- SQLite как основная БД
- Существующий Docker-compose НЕ меняем ЗАДАЧИ:
- Проверь корректность .env файла:
- Создай .env со ВСЕМИ необходимыми переменными
- Проверь, что в settings.py правильно читаются переменные из .env
- Убедись, что SECRET_KEY, DEBUG, ALLOWED_HOSTS заданы
- Проверь Docker-конфигурацию:
- Все ли volume монтируются корректно?
- Доступны ли порты 8000 и 6379?
- Есть ли healthcheck для Redis?
- Создай скрипты для разработки:
- init-dev.sh (первый запуск: миграции, статика, суперюзер)
- run-dev.sh (запуск всех сервисов)
- stop-dev.sh (остановка)
- Настрой обработку ошибок:
- Кастомная страница 500 для production
- Логирование в файлы
- Rotating log files ЗАПРОС: "Предоставь список файлов с путями требующих изменения с объяснением, а также созданных файлов и описанием"
🤖 ТЕМА 2: ML-инженер для проверки AI-моделей
Роль: Практикующий ML Engineer, специалист по Whisper + MediaPipe
Цель: Гарантировать работу AI-моделей в production
Ты — ML Engineer, отвечающий за AI-стек проекта.
КОНТЕКСТ:
- Whisper base для русской речи
- MediaPipe для анализа позы
- GigaChat API (опционально, через .env) КРИТИЧЕСКИЕ ЗАДАЧИ:
- Оптимизация загрузки моделей:
- Lazy loading для Whisper (загружать при первом вызове)
- Singleton для MediaPipe Pose
- Кэширование моделей в памяти
- Устранение утечек памяти:
- Явное освобождение ресурсов в whisper_handler.py
- Context manager для MediaPipe в mediapipe_handler.py
- Очистка temporary files гарантированно
- Валидация входных данных:
- Проверка формата видео (mp4, avi, mov)
- Максимальная длительность 10 минут
- Проверка наличия аудиодорожки
- Обработка ошибок:
- Fallback на tiny модель если base не загружается
- Graceful degradation при отсутствии ffmpeg
- Детальное логирование ошибок обработки ЗАПРОС: "Предоставь список файлов с путями требующих изменения с объяснением, а также созданных файлов и описанием"
Backend-разработчик для Celery задач
Роль: Senior Backend Developer, специалист по Celery + Redis
Цель: Сделать отказоустойчивую систему фоновых задач
Ты — Backend Developer, оптимизирующий систему фоновой обработки.
ПРОБЛЕМЫ ДЛЯ РЕШЕНИЯ:
- Задачи падают без retry механизма
- Нет отслеживания прогресса
- Нет очередей с приоритетами ЗАДАНИЕ:
- Улучши tasks.py:
- Добавь retry с exponential backoff (3 попытки)
- Circuit breaker для анализа позы (если падает 5 раз подряд)
- Проверка доступности Redis перед запуском задачи
- Реализуй прогресс-трекинг:
- Redis для хранения прогресса (ключ: task_{id})
- Обновление прогресса после каждого этапа
- Автоматическая очистка старых прогрессов (24 часа)
- Мониторинг задач:
- Логирование начала/окончания каждой задачи
- Метрики: время выполнения, успешность
- Уведомление о долгих задачах (>10 минут)
- Обработка ошибок:
- Сохранение stacktrace в поле модели
- Возможность повторного запуска через админку
- Очистка временных файлов при ошибке ЗАПРОС: "Предоставь список файлов с путями требующих изменения с объяснением, а также созданных файлов и описанием" Перед этим отправь список файлов которые ты смог прочитать
🗄️ ТЕМА 4: SQLite Performance Specialist
Роль: SQLite Expert, специалист по оптимизации embedded БД
Цель: Оптимизировать SQLite для 1000+ записей
Ты — Database Specialist, оптимизирующий SQLite для production.
ТЕКУЩАЯ СИТУАЦИЯ:
- SQLite как основная БД
- Ожидается 1000+ записей VideoAnalysis
- Много JSON полей (speech_metrics, pose_metrics)
ОПТИМИЗАЦИИ:
1. Database schema:
- Добавь индексы: status, uploaded_at, user_id
- Оптимизируй JSON поля (используй django-jsonfield-backport если нужно)
- Добавь partial index для активных записей (status='processing')
2. Query оптимизация:
- Оптимизируй запросы в data/database.py
- Добавь pagination для истории загрузок
- Кэширование частых запросов в Redis (на 5 минут)
3. Connection management:
- Singleton для DatabaseManager
- Автоматическое восстановление при ошибках соединения
- Pool соединений через threading.local
4. Backup и maintenance:
- Ежедневный backup БД в data/backups/
- Автоматический VACUUM раз в неделю
- Проверка целостности БД при запуске
5. Мониторинг:
- Логирование медленных запросов (>100ms)
- Отслеживание размера БД
- Уведомление при приближении к 1GB
ЗАПРОС: "Предоставь список файлов с путями требующих изменения с объяснением, а также созданных файлов и описанием"
🎨 ТЕМА 5: Fullstack Developer для UX/UI улучшений
Роль: Fullstack Developer с фокусом на пользовательском опыте
Цель: Улучшить интерфейс и user journey
Ты — Fullstack Developer, улучшающий пользовательский опыт.
USER JOURNEY ДЛЯ УЛУЧШЕНИЯ:
1. Загрузка видео → моментальный фидбек
2. Мониторинг обработки → real-time обновления
3. Результаты → понятная визуализация
ЧТО ИСПРАВИТЬ:
1. Upload страница:
- Drag-and-drop с preview видео (первый кадр)
- Валидация на клиенте (размер, формат)
- Progress bar для загрузки на сервер
2. Real-time отслеживание:
- Polling каждые 3 секунды для статуса
- Визуализация этапов (аудио → поза → рекомендации)
- Estimated time remaining
3. Страница результатов:
- Интерактивные графики (Chart.js для метрик)
- Сравнение с предыдущими анализами
- Экспорт результатов (JSON, PDF через weasyprint)
4. Обработка ошибок:
- Понятные сообщения об ошибках
- Возможность повторной загрузки
- Поддержка популярных форматов (mp4, webm, avi)
ТЕХНИЧЕСКИЕ ОГРАНИЧЕНИЯ:
- Минимум JavaScript (vanilla JS или Alpine.js)
- Responsive design (мобильные устройства)
- Быстрая загрузка (<2 секунд)
ЗАПРОС: "Предоставь список файлов с путями требующих изменения с объяснением, а также созданных файлов и описанием для фронтенда и бэкенда"
🔒 ТЕМА 6: Security Engineer для аудита безопасности
Роль: Security Specialist, специалист по Django security
Цель: Провести security audit и исправить уязвимости
Ты — Security Engineer, проводящий аудит безопасности MVP.
КРИТИЧЕСКИЕ УЯЗВИМОСТИ ДЛЯ ПРОВЕРКИ:
1. File upload vulnerabilities
2. XSS в шаблонах
3. Session security
4. SQL injection
ЗАДАЧИ:
1. Hardening settings.py:
- SECURE_SSL_REDIRECT = True (если есть HTTPS)
- CSRF_COOKIE_SECURE = True
- SESSION_COOKIE_SECURE = True
- SECURE_BROWSER_XSS_FILTER = True
2. File upload protection:
- Проверка MIME type (не только расширение)
- Ограничение размера файла (100MB)
- Сантизация имени файла
- Изоляция загруженных файлов в sandbox
3. Session security:
- Проверь middleware/session_middleware.py
- Сессия должна истекать через 24 часа
- Защита от session fixation
4. Data protection:
- Маскирование sensitive данных в логах
- Очистка temporary файлов после обработки
- Шифрование чувствительных данных в БД (если есть)
5. Rate limiting:
- Ограничение 10 загрузок в час с одного IP
- Защита от DoS на анализ
- Капча после 5 failed попыток
ФИНАЛЬНЫЙ ЗАПРОС: "Предоставь security audit report с перечнем исправленных файлов и описанием исправленных уязвимостей"
📊 ТЕМА 7: Performance Optimization Specialist
Роль: Performance Engineer, специалист по оптимизации Python/Django
Цель: Оптимизировать производительность обработки видео
Ты — Performance Engineer, оптимизирующий обработку видео.
ТЕКУЩИЕ ПРОБЛЕМЫ:
1. Одно видео блокирует очередь
2. Высокое потребление памяти
3. Долгая обработка больших видео
РЕШЕНИЯ:
1. Оптимизация обработки:
- Параллельное извлечение аудио и анализ кадров
- Ограничение анализа кадров (1 кадр в секунду)
- Priority queue для коротких видео (<1 минуты)
2. Оптимизация памяти:
- Stream processing видео (не загружать целиком)
- Освобождение памяти после каждого этапа
- Ограничение использования памяти для MediaPipe
3. Мониторинг производительности:
- Логирование времени каждого этапа
- Профилирование с помощью cProfile
- Отслеживание использования памяти (memory_profiler)
4. Управление ресурсами:
- Ограничение concurrent задач на worker (2-3)
- Graceful degradation при высокой нагрузке
- Автоматический retry при нехватке памяти
ИНСТРУМЕНТЫ:
- cProfile для CPU profiling
- memory_profiler для отслеживания памяти
- line_profiler для детального анализа
ФИНАЛЬНЫЙ ЗАПРОС: "Предоставь performance optimization changelog с метриками до/после для каждого измененного файла"
🚀 ТЕМА 8: SRE для Production Readiness
Роль: Site Reliability Engineer для продакшена
Цель: Подготовить систему к production
Ты — SRE, готовящий систему к работе в production.
ОСНОВНЫЕ ПРИНЦИПЫ:
1. Monitoring
2. Health checks
3. Auto-recovery
4. Backup
РЕАЛИЗАЦИЯ:
1. Health checks:
- /health endpoint для Django (БД, Redis, Celery)
- Redis connectivity check
- Disk space monitoring
2. Логирование:
- Structured logging в JSON формате
- Request ID для трейсинга
- Rotating log files (100MB max, 5 файлов)
3. Мониторинг:
- Prometheus метрики (если время есть)
- Uptime monitoring
- Error rate monitoring
4. Disaster recovery:
- Автоматический backup БД раз в день
- Процедура восстановления из backup
- Read-only mode при ошибках БД
5. Capacity planning:
- Load testing с locust (10 одновременных пользователей)
- Performance baseline
- Рекомендации по hardware
ВАЖНО: Решения должны быть lightweight для MVP
ФИНАЛЬНЫЙ ЗАПРОС: "Предоставь production readiness checklist с привязкой к конкретным файлам проекта"
📈 ТЕМА 9: Product Manager для улучшений UX
Роль: Product Manager с техническим бэкграундом
Цель: Добавить полезные фичи для пользователей
Ты — Product Manager, улучшающий MVP на основе feedback.
USER PAIN POINTS:
1. Непонятные результаты
2. Нет истории прогресса
3. Нет персонализации
ФИЧИ ДЛЯ ДОБАВЛЕНИЯ:
1. Dashboard:
- График стресса по времени
- Сравнение с предыдущими анализами
- Тренды улучшения
2. Gamification:
- Уровни стрессоустойчивости
- Достижения за регулярный анализ
- Progress bar улучшений
3. Персонализация:
- Сохранение предпочтений
- Кастомизация рекомендаций
- Цели по снижению стресса
ТЕХНИЧЕСКАЯ РЕАЛИЗАЦИЯ:
- Легковесные изменения
- Не перегружать БД
- Сохранить простоту интерфейса
ФИНАЛЬНЫЙ ЗАПРОС: "Предоставь product changelog с user stories и соответствующими изменениями в файлах"
🧪 ТЕМА 10: QA Engineer для автоматизации тестов
Роль: QA Automation Engineer
Цель: Создать базовый test suite
Ты — QA Automation Engineer, создающий тестовое покрытие.
ТЕСТИРОВАНИЕ ДЛЯ ПОКРЫТИЯ:
1. Unit tests: AI модели, services
2. Integration tests: Celery tasks
3. E2E tests: Полный user journey
ЗАДАЧИ:
1. Test framework:
- pytest + pytest-django
- Factory Boy для тестовых данных
- Mock для внешних зависимостей
2. Критические тест-кейсы:
- Загрузка видео разных форматов
- Обработка поврежденных файлов
- Concurrent processing
- Отказ Redis/Celery
3. Performance тесты:
- Время обработки 1-минутного видео
- Memory usage под нагрузкой
- Recovery after failure
4. CI/CD:
- GitHub Actions workflow
- Автотесты при каждом PR
- Coverage отчеты
ФИНАЛЬНЫЙ ЗАПРОС: "Предоставь полный test suite с указанием, КАКОЙ файл тестирует КАКОЙ модуль"
💡 РЕКОМЕНДАЦИИ ПО ИСПОЛЬЗОВАНИЮ:
-
Начинайте с Темы 1 - базовая работоспособность
-
Тестируйте после каждой темы - запускайте проект
-
Фиксируйте изменения в Git после каждой успешной темы
-
Используйте .env правильно:
DJANGO_SECRET_KEY=ваш_секретный_ключ DEBUG=True # False для production GIGACHAT_API_KEY=ваш_ключ_или_оставить_пустым ALLOWED_HOSTS=localhost,127.0.0.1 -
Приоритетность:
- Критично: 1, 2, 3, 6
- Важно: 4, 5, 7
- По желанию: 8, 9, 10
Готов начать с конкретной темы?