Guide d’Installation
Ce guide détaille l’installation complète de SmartWebScraper-CV, de la configuration de l’environnement au déploiement de l’application.
Prérequis Système
Configuration Matérielle Recommandée
Composant |
Minimum |
Recommandé |
Optimal |
|---|---|---|---|
RAM |
8 GB |
16 GB |
32 GB |
GPU |
CPU seulement |
GTX 1060 6GB |
RTX 3060+ 12GB |
Stockage |
50 GB libre |
100 GB SSD |
500 GB NVMe |
CPU |
4 cores |
8 cores |
12+ cores |
Configuration Logicielle
# Système d'exploitation supportés
Ubuntu 20.04+ LTS
Windows 10/11 (avec WSL2 recommandé)
macOS 11+ (support limité GPU)
# Python
Python 3.8-3.10
# CUDA (optionnel, pour GPU)
CUDA 11.3+
cuDNN 8.2+
Installation Complète
Étape 1 : Clonage du Projet
# Clonage du repository
git clone https://github.com/votre-repo/SmartWebScraper-CV.git
cd SmartWebScraper-CV
# Vérification de la structure
ls -la
# Doit contenir : app/, data/, docs/, requirements.txt, run.py
Étape 2 : Environnement Python
Option A : Conda (Recommandé)
# Création environnement
conda create -n smartwebscraper python=3.9
conda activate smartwebscraper
# Installation des dépendances base
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
# Detectron2 (avec CUDA)
pip install 'git+https://github.com/facebookresearch/detectron2.git'
Option B : venv
# Création environnement virtuel
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou
venv\Scripts\activate # Windows
# Installation PyTorch (CPU seulement)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
Étape 3 : Dépendances Application
# Installation des dépendances principales
pip install -r requirements.txt
Contenu requirements.txt :
# Framework Web
Flask==2.3.2
Flask-CORS==4.0.0
# Computer Vision
detectron2
opencv-python==4.8.0.74
Pillow==9.5.0
# OCR
paddleocr==2.7.0.3
# NLP
nltk==3.8.1
spacy==3.6.1
scikit-learn==1.3.0
gensim==4.3.1
# Web Scraping
selenium==4.11.2
undetected-chromedriver==3.5.3
playwright==1.37.0
# Utilitaires
numpy==1.24.3
pandas==2.0.3
requests==2.31.0
python-dotenv==1.0.0
# LLM
google-generativeai==0.1.0
ollama-python==0.1.7
Étape 4 : Modèles et Données
Téléchargement des Modèles NLP :
# Modèles NLTK
python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords'); nltk.download('punkt_tab')"
# Modèle spaCy français
python -m spacy download fr_core_news_sm
Configuration Detectron2 :
# Création du dossier modèles
mkdir -p app/models/detectron2
# Téléchargement du modèle pré-entraîné (optionnel)
wget https://dl.fbaipublicfiles.com/detectron2/COCO-Detection/faster_rcnn_R_50_FPN_3x/137849458/model_final_280758.pkl \
-O app/models/detectron2/model_final.pth
Structure des Dossiers :
mkdir -p data/{originals,annotated,human_data,fine_tune_data,suppression}
mkdir -p app/models/{detectron2,nlp}
mkdir -p logs
Étape 5 : Configuration Variables d’Environnement
# Copie du fichier de configuration
cp .env.example .env
# Édition des variables
nano .env
Contenu .env :
# Configuration Flask
FLASK_ENV=development
FLASK_DEBUG=True
SECRET_KEY=your-secret-key-here
# Configuration GPU
CUDA_VISIBLE_DEVICES=0
FORCE_CPU_MODE=False
# API Keys
GEMINI_API_KEY=your-gemini-api-key
SERPAPI_KEY=your-serpapi-key
# Configuration OCR
PADDLEOCR_USE_GPU=True
PADDLEOCR_LANG=fr,en
# Configuration Modèles
DETECTRON2_MODEL_PATH=app/models/detectron2/model_final.pth
DETECTRON2_CONFIG_PATH=app/configs/faster_rcnn_R_50_FPN_3x.yaml
# Configuration Base de Données (optionnel)
DATABASE_URL=sqlite:///app.db
# Ollama (LLM local)
OLLAMA_BASE_URL=http://localhost:11434
Installation des Services Externes
Ollama (LLM Local)
# Installation Ollama (Linux)
curl -fsSL https://ollama.ai/install.sh | sh
# Démarrage du service
ollama serve
# Installation du modèle Mistral (dans un autre terminal)
ollama pull mistral
Chrome/Chromium pour Selenium
# Ubuntu/Debian
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt update
sudo apt install google-chrome-stable
# Vérification
google-chrome --version
Playwright (Alternative)
# Installation des navigateurs Playwright
playwright install
# Ou seulement Chromium
playwright install chromium
Configuration et Tests
Test de l’Installation
# Test de base
python -c "
import torch
import cv2
import nltk
import spacy
print('✅ Tous les modules importés avec succès')
print(f'PyTorch version: {torch.__version__}')
print(f'CUDA disponible: {torch.cuda.is_available()}')
"
Test des Composants
# Test OCR
python -c "
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='fr')
print('✅ PaddleOCR initialisé')
"
# Test Detectron2
python -c "
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
print('✅ Detectron2 disponible')
"
# Test spaCy
python -c "
import spacy
nlp = spacy.load('fr_core_news_sm')
print('✅ spaCy français chargé')
"
Lancement de l’Application
Mode Développement
# Activation environnement
conda activate smartwebscraper
# ou
source venv/bin/activate
# Lancement Flask
python run.py
# Contenu run.py
from app import create_app
import os
app = create_app()
if __name__ == '__main__':
app.run(
host='0.0.0.0',
port=5000,
debug=True
)
Accès Application :
Interface Utilisateur : http://localhost:5000
Interface Admin : http://localhost:5000/admin/login
Mode Production
# Installation Gunicorn
pip install gunicorn
# Lancement production
gunicorn -w 4 -b 0.0.0.0:5000 "app:create_app()"
Configuration Docker (Optionnel)
FROM python:3.9-slim
# Dépendances système
RUN apt-get update && apt-get install -y \
git \
wget \
libgl1-mesa-glx \
libglib2.0-0 \
libsm6 \
libxext6 \
libxrender-dev \
libgomp1 \
&& rm -rf /var/lib/apt/lists/*
# Dossier de travail
WORKDIR /app
# Installation dépendances Python
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Copie du code
COPY . .
# Modèles NLP
RUN python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords')"
RUN python -m spacy download fr_core_news_sm
EXPOSE 5000
CMD ["python", "run.py"]
# Construction et lancement
docker build -t smartwebscraper .
docker run -p 5000:5000 -v $(pwd)/data:/app/data smartwebscraper
Dépannage
Problèmes Courants
Erreur |
Solution |
|---|---|
|
Réinstaller via git+https://github.com/facebookresearch/detectron2.git |
|
Définir FORCE_CPU_MODE=True dans .env |
|
Connexion Internet + retry, ou installation manuelle modèles |
|
python -m spacy download fr_core_news_sm |
|
sudo chmod +x /usr/bin/google-chrome |
Logs et Debug
# Logs détaillés
export FLASK_DEBUG=1
export DETECTRON2_VERBOSE=1
# Lancement avec logs
python run.py 2>&1 | tee logs/app.log
Astuce
Conseils d’installation :
Toujours utiliser un environnement virtuel
Installer CUDA avant PyTorch si GPU disponible
Tester chaque composant individuellement
Consulter les logs en cas d’erreur
Utiliser Docker pour un déploiement reproductible