audio-sentiment / deploy.ps1
alec228's picture
Fix: Configuration HF Spaces dans README.md
ace640b
# Script de déploiement automatisé pour Hugging Face Spaces (PowerShell)
# Usage: .\deploy.ps1 <votre-username> [audio-sentiment]
param(
[Parameter(Mandatory=$true)]
[string]$Username,
[Parameter(Mandatory=$false)]
[string]$SpaceName = "audio-sentiment"
)
if ($SpaceName -ne "audio-sentiment") {
Write-Host "[WARNING] Le nom du Space recommandé est 'audio-sentiment' (actuel: $SpaceName)" -ForegroundColor Yellow
}
# Couleurs pour l'affichage
$Red = "Red"
$Green = "Green"
$Yellow = "Yellow"
$Blue = "Blue"
$White = "White"
# Fonction pour afficher les messages
function Write-Status {
param([string]$Message, [string]$Color = $White)
Write-Host "[INFO] $Message" -ForegroundColor $Color
}
function Write-Success {
param([string]$Message)
Write-Host "[SUCCESS] $Message" -ForegroundColor $Green
}
function Write-Warning {
param([string]$Message)
Write-Host "[WARNING] $Message" -ForegroundColor $Yellow
}
function Write-Error {
param([string]$Message)
Write-Host "[ERROR] $Message" -ForegroundColor $Red
}
$SpaceUrl = "https://huggingface.co/spaces/$Username/$SpaceName"
Write-Status "Démarrage du déploiement pour $SpaceUrl" $Blue
# 1. Vérification de la structure du projet
Write-Status "Vérification de la structure du projet..." $Blue
$requiredFiles = @(
"app_with_api.py",
"requirements_hf.txt",
"README.md",
".gitattributes",
"src\__init__.py",
"src\transcription.py",
"src\sentiment.py",
"src\multimodal.py",
"src\inference.py"
)
$missingFiles = @()
foreach ($file in $requiredFiles) {
if (Test-Path $file) {
Write-Host "✅ $file" -ForegroundColor $Green
} else {
Write-Host "❌ $file" -ForegroundColor $Red
$missingFiles += $file
}
}
if ($missingFiles.Count -gt 0) {
Write-Error "Fichiers manquants: $($missingFiles -join ', ')"
exit 1
}
Write-Success "Structure du projet validée"
# 2. Test du projet
Write-Status "Exécution des tests..." $Blue
if (Test-Path "test_deployment.py") {
try {
python test_deployment.py
if ($LASTEXITCODE -ne 0) {
Write-Error "Les tests ont échoué. Corrigez les problèmes avant de continuer."
exit 1
}
Write-Success "Tests passés avec succès"
} catch {
Write-Error "Erreur lors de l'exécution des tests: $_"
exit 1
}
} else {
Write-Warning "Script de test non trouvé, passage des tests..."
}
# 3. Vérification de Git
Write-Status "Vérification de Git..." $Blue
try {
git --version | Out-Null
Write-Success "Git détecté"
} catch {
Write-Error "Git n'est pas installé ou n'est pas dans le PATH"
exit 1
}
# 4. Initialisation Git si nécessaire
if (-not (Test-Path ".git")) {
Write-Status "Initialisation du repository Git..." $Blue
git init
git add .
git commit -m "Initial commit"
Write-Success "Repository Git initialisé"
}
# 5. Ajout du remote Hugging Face
Write-Status "Configuration du remote Hugging Face..." $Blue
git remote remove hf 2>$null
git remote add hf $SpaceUrl
Write-Success "Remote configuré: $SpaceUrl"
# 6. Préparation du commit
Write-Status "Préparation du commit..." $Blue
git add .
try {
git commit -m "Deploy: Analyse de sentiment audio v1.0"
Write-Success "Commit créé"
} catch {
Write-Warning "Aucun changement détecté, commit ignoré"
}
# 7. Déploiement
Write-Status "Déploiement sur Hugging Face Spaces..." $Blue
$confirm = Read-Host "Voulez-vous déployer maintenant ? (y/N)"
if ($confirm -ne "y" -and $confirm -ne "Y") {
Write-Warning "Déploiement annulé"
exit 0
}
Write-Status "Poussage du code..." $Blue
try {
git push hf main
Write-Success "Code poussé avec succès"
} catch {
Write-Error "Erreur lors du push vers Hugging Face: $_"
exit 1
}
Write-Success "Déploiement terminé avec succès !"
Write-Success "Votre Space est accessible à: $SpaceUrl"
Write-Host ""
Write-Status "Instructions post-déploiement:" $Blue
Write-Host "1. Allez sur $SpaceUrl" -ForegroundColor $White
Write-Host "2. Attendez que le build se termine (peut prendre 5-10 minutes)" -ForegroundColor $White
Write-Host "3. Testez votre application" -ForegroundColor $White
Write-Host "4. Consultez les logs en cas de problème" -ForegroundColor $White
Write-Status "Vérification du statut du Space..." $Blue
Write-Host "Vous pouvez vérifier le statut à: $SpaceUrl" -ForegroundColor $White
Write-Success "Script de déploiement terminé !"
Read-Host "Appuyez sur Entrée pour continuer"