Spaces:
Paused
Paused
| 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 | |