Spaces:
Running
Running
Upload folder using huggingface_hub
Browse files- scripts/start_mlflow.sh +62 -0
- tests/test_basic.py +1 -1
scripts/start_mlflow.sh
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
# Script pour démarrer MLflow UI et ouvrir le navigateur
|
| 3 |
+
# Usage: ./scripts/start_mlflow.sh
|
| 4 |
+
|
| 5 |
+
set -e
|
| 6 |
+
|
| 7 |
+
echo "🔍 Vérification du port 5000..."
|
| 8 |
+
|
| 9 |
+
# Tuer tous les processus MLflow
|
| 10 |
+
pkill -9 -f "mlflow ui" 2>/dev/null || true
|
| 11 |
+
|
| 12 |
+
# Tuer le port 5000 si occupé
|
| 13 |
+
if lsof -Pi :5000 -sTCP:LISTEN -t >/dev/null 2>&1; then
|
| 14 |
+
echo "⚠️ Port 5000 occupé, arrêt des processus..."
|
| 15 |
+
kill -9 $(lsof -t -i:5000) 2>/dev/null || true
|
| 16 |
+
sleep 2
|
| 17 |
+
fi
|
| 18 |
+
|
| 19 |
+
echo "✅ Port 5000 libre"
|
| 20 |
+
echo ""
|
| 21 |
+
echo "🚀 Démarrage de MLflow UI..."
|
| 22 |
+
echo " Backend: sqlite:///mlflow.db"
|
| 23 |
+
echo " Port: 5000"
|
| 24 |
+
echo ""
|
| 25 |
+
|
| 26 |
+
# Démarrer MLflow UI en arrière-plan
|
| 27 |
+
nohup .venv/bin/mlflow ui --backend-store-uri sqlite:///mlflow.db --port 5000 > mlflow_ui.log 2>&1 &
|
| 28 |
+
|
| 29 |
+
# Attendre que le serveur soit prêt
|
| 30 |
+
echo "⏳ Attente du démarrage du serveur..."
|
| 31 |
+
sleep 3
|
| 32 |
+
|
| 33 |
+
# Vérifier que le serveur est bien lancé
|
| 34 |
+
if curl -s http://localhost:5000 > /dev/null 2>&1; then
|
| 35 |
+
echo "✅ MLflow UI démarré avec succès !"
|
| 36 |
+
echo ""
|
| 37 |
+
echo "📊 Interface accessible sur: http://localhost:5000"
|
| 38 |
+
echo "📝 Logs disponibles dans: mlflow_ui.log"
|
| 39 |
+
echo ""
|
| 40 |
+
echo "🌐 Ouverture du navigateur..."
|
| 41 |
+
|
| 42 |
+
# Ouvrir le navigateur selon l'OS
|
| 43 |
+
if command -v xdg-open > /dev/null; then
|
| 44 |
+
xdg-open http://localhost:5000
|
| 45 |
+
elif command -v gnome-open > /dev/null; then
|
| 46 |
+
gnome-open http://localhost:5000
|
| 47 |
+
elif command -v open > /dev/null; then
|
| 48 |
+
open http://localhost:5000
|
| 49 |
+
else
|
| 50 |
+
echo "⚠️ Impossible d'ouvrir automatiquement le navigateur"
|
| 51 |
+
echo " Ouvrez manuellement: http://localhost:5000"
|
| 52 |
+
fi
|
| 53 |
+
|
| 54 |
+
echo ""
|
| 55 |
+
echo "💡 Pour arrêter MLflow UI:"
|
| 56 |
+
echo " pkill -f 'mlflow ui'"
|
| 57 |
+
echo " ou: fuser -k 5000/tcp"
|
| 58 |
+
else
|
| 59 |
+
echo "❌ Erreur: MLflow UI n'a pas démarré correctement"
|
| 60 |
+
echo " Consultez mlflow_ui.log pour plus de détails"
|
| 61 |
+
exit 1
|
| 62 |
+
fi
|
tests/test_basic.py
CHANGED
|
@@ -18,7 +18,7 @@ def test_data_files_exist():
|
|
| 18 |
|
| 19 |
def test_preprocess_imports():
|
| 20 |
"""Vérifie que les imports ML fonctionnent."""
|
| 21 |
-
from ml_model.preprocess import
|
| 22 |
|
| 23 |
assert preprocess_data is not None
|
| 24 |
assert load_raw_data is not None
|
|
|
|
| 18 |
|
| 19 |
def test_preprocess_imports():
|
| 20 |
"""Vérifie que les imports ML fonctionnent."""
|
| 21 |
+
from ml_model.preprocess import load_raw_data, preprocess_data
|
| 22 |
|
| 23 |
assert preprocess_data is not None
|
| 24 |
assert load_raw_data is not None
|