Aduc-sdr-2_5s / start.sh
carlex3321's picture
Update start.sh
8f4e45c verified
raw
history blame
2.04 kB
#!/bin/bash
set -e # Para em erros críticos
set -u # Trata variáveis não definidas como erro
# Diretórios persistentes
REPOS_DIR="/data/repos"
MODELS_DIR="/data/models"
# Cria diretórios persistentes se não existirem
mkdir -p "$REPOS_DIR" "$MODELS_DIR" || true
chown -R appuser:appuser "$REPOS_DIR" "$MODELS_DIR" || true
chmod -R 777 "$REPOS_DIR" "$MODELS_DIR" || true
# ---------------------- Builder (Apex + Q8) ----------------------
# Executa com GPU disponível; busca wheels no HF e compila se necessário (sem FlashAttention)
if nvidia-smi >/dev/null 2>&1; then
if [ "${DISABLE_BUILDER:-0}" = "0" ]; then
echo "🔧 Executando builder (Apex + Q8)..."
chmod +x /app/builder.sh || true
# Configuráveis:
SELF_HF_REPO_ID="carlex3321/aduc-sdr" # repo de wheels no HF
HF_UPLOAD_WHEELS=0 # publica wheels geradas
BUILDER_TIMEOUT_SEC=6000000 # tempo limite
#Q8_REPO / Q8_COMMIT # pin do LTX Q8
( timeout ${BUILDER_TIMEOUT_SEC:-60000} bash -lc "/app/builder.sh" ) || {
echo "⚠️ Builder excedeu tempo/retornou erro; prosseguindo com a aplicação."
}
else
echo "ℹ️ Builder desabilitado por DISABLE_BUILDER=1"
fi
else
echo "⚠️ GPU não visível; pulando builder (Apex/Q8)."
fi
# Inicializa VincieService de forma persistente
log "Inicializando VincieService com persistência em /data..."
python -c "
import os
from vincie import VincieService
# Configura caminhos persistentes via ENV (ajuste se necessário)
os.environ['REPOS_DIR'] = '$REPOS_DIR'
os.environ['MODELS_DIR'] = '$MODELS_DIR'
svc = VincieService(repo_dir='$REPOS_DIR/VINCIE', ckpt_dir='$MODELS_DIR')
svc.ensure_repo() # Garante repositório persistente
svc.ensure_model() # Garante modelo persistente
log('VincieService inicializado com sucesso.')
" || log "Erro ao inicializar VincieService"
# Inicia o app principal (Gradio ou similar)
log "Iniciando aplicação principal..."
if [ "${1:-gradio}" = "gradio" ]; then
python app_vince.py
else
exec "$@"
fi