- DEPENDENCIES.md: Documentation complète de toutes les dépendances * Backend Python (requirements.txt) * Dépendances système (apt packages) * Frontend Node.js (package.json) * Modèles Essentia (28 MB) * Variables d'environnement requises - check_dependencies.py: Script pour vérifier l'installation * Teste tous les imports Python * Affiche statut ✅/❌ pour chaque package * Utile pour debug d'installation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
141 lines
4.0 KiB
Markdown
141 lines
4.0 KiB
Markdown
# Dépendances du projet
|
|
|
|
## Backend Python (requirements.txt)
|
|
|
|
### Web Framework
|
|
- `fastapi==0.109.0` - Framework web moderne
|
|
- `uvicorn[standard]==0.27.0` - Serveur ASGI
|
|
- `python-multipart==0.0.6` - Support formulaires multipart
|
|
|
|
### Database
|
|
- `sqlalchemy==2.0.25` - ORM
|
|
- `psycopg2-binary==2.9.9` - Driver PostgreSQL
|
|
- `pgvector==0.2.4` - Extension vecteurs PostgreSQL
|
|
- `alembic==1.13.1` - Migrations de base de données
|
|
|
|
### Audio Processing
|
|
- `librosa==0.10.1` - Analyse audio
|
|
- `soundfile==0.12.1` - Lecture/écriture fichiers audio
|
|
- `audioread==3.0.1` - Décodage formats audio
|
|
- `mutagen==1.47.0` - Métadonnées ID3
|
|
|
|
### Machine Learning
|
|
- `essentia-tensorflow` - Classification genre/mood/instruments (installé via Dockerfile)
|
|
- `numpy==1.24.3` - Calcul numérique
|
|
- `scipy==1.11.4` - Calcul scientifique
|
|
|
|
### Configuration & Validation
|
|
- `pydantic==2.5.3` - Validation de données
|
|
- `pydantic-settings==2.1.0` - Configuration via env vars
|
|
- `python-dotenv==1.0.0` - Chargement fichier .env
|
|
- `email-validator==2.1.0` - Validation emails (requis par Pydantic EmailStr)
|
|
|
|
### Authentication
|
|
- `python-jose[cryptography]==3.3.0` - JWT tokens
|
|
- `passlib[bcrypt]==1.7.4` - Hashing passwords
|
|
|
|
### Utilities
|
|
- `aiofiles==23.2.1` - I/O fichiers asynchrones
|
|
- `httpx==0.26.0` - Client HTTP asynchrone
|
|
|
|
## Dépendances Système (Dockerfile)
|
|
|
|
### Requis pour le backend
|
|
```bash
|
|
apt-get install -y \
|
|
ffmpeg # Transcodage audio (MP3, etc.)
|
|
libsndfile1 # Lecture formats audio
|
|
gcc g++ gfortran # Compilation packages Python
|
|
libopenblas-dev # Algèbre linéaire optimisée
|
|
liblapack-dev # Routines algèbre linéaire
|
|
libfftw3-dev # Transformées de Fourier rapides
|
|
libavcodec-dev # Codecs audio/vidéo
|
|
libavformat-dev # Formats conteneurs
|
|
libavutil-dev # Utilitaires FFmpeg
|
|
libswresample-dev # Resampling audio
|
|
libsamplerate0-dev # Conversion taux d'échantillonnage
|
|
libtag1-dev # Métadonnées audio
|
|
libchromaprint-dev # Audio fingerprinting
|
|
```
|
|
|
|
## Frontend (package.json)
|
|
|
|
### Framework
|
|
- `next@15.5.6` - Framework React
|
|
- `react@19.0.0` - Bibliothèque UI
|
|
- `react-dom@19.0.0` - Rendu React
|
|
|
|
### State Management & Data Fetching
|
|
- `@tanstack/react-query@5.62.11` - Gestion état serveur
|
|
- `axios@1.7.9` - Client HTTP
|
|
|
|
### UI & Styling
|
|
- `tailwindcss@3.4.17` - Framework CSS utility-first
|
|
|
|
### Types
|
|
- `typescript@5.7.2` - Typage statique
|
|
- `@types/react@19.0.1`
|
|
- `@types/node@22.10.1`
|
|
|
|
## Modèles Essentia (inclus dans le repo)
|
|
|
|
Total: ~28 MB
|
|
|
|
- `discogs-effnet-bs64-1.pb` (18 MB) - Modèle d'embedding
|
|
- `genre_discogs400-discogs-effnet-1.pb` (2 MB) - Classification genre
|
|
- `genre_discogs400-discogs-effnet-1.json` (15 KB) - Métadonnées genres
|
|
- `mtg_jamendo_moodtheme-discogs-effnet-1.pb` (2.6 MB) - Classification mood
|
|
- `mtg_jamendo_instrument-discogs-effnet-1.pb` (2.6 MB) - Classification instruments
|
|
- `mtg_jamendo_genre-discogs-effnet-1.pb` (2.7 MB) - Classification genre (alternatif)
|
|
|
|
## Vérification des dépendances
|
|
|
|
### Backend
|
|
```bash
|
|
cd backend
|
|
python check_dependencies.py
|
|
```
|
|
|
|
### Build Docker
|
|
```bash
|
|
# Backend
|
|
docker build -t audio-classifier-backend -f backend/Dockerfile .
|
|
|
|
# Frontend
|
|
docker build -t audio-classifier-frontend -f frontend/Dockerfile .
|
|
```
|
|
|
|
## Notes de compatibilité
|
|
|
|
- **Python**: 3.9 (requis pour essentia-tensorflow)
|
|
- **Architecture**: amd64 (meilleure compatibilité Essentia)
|
|
- **Node.js**: 20+ (pour Next.js 15)
|
|
- **PostgreSQL**: 16+ avec extension pgvector
|
|
|
|
## Installation locale
|
|
|
|
### Backend
|
|
```bash
|
|
cd backend
|
|
python -m venv venv
|
|
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
pip install -r requirements.txt
|
|
pip install essentia-tensorflow
|
|
```
|
|
|
|
### Frontend
|
|
```bash
|
|
cd frontend
|
|
npm install
|
|
```
|
|
|
|
## Variables d'environnement requises
|
|
|
|
Voir `.env.example` pour la liste complète des variables nécessaires.
|
|
|
|
### Critiques
|
|
- `DATABASE_URL` - Connexion PostgreSQL
|
|
- `ADMIN_EMAIL` - Email admin
|
|
- `ADMIN_PASSWORD` - Mot de passe admin
|
|
- `JWT_SECRET_KEY` - Secret pour JWT (générer avec `openssl rand -hex 32`)
|