GeoVision-CLIPCali / docker-entrypoint.sh
nicothinn
DAGMA desde dataset
0f99943
Raw
History Blame Contribute Delete
2.53 kB
#!/bin/bash
# =============================================================================
# docker-entrypoint.sh — GeoVision-CLIP Cali
# Descarga checkpoints desde HF Dataset, luego arranca el servidor
# =============================================================================
set -e
echo "=== GeoVision-CLIP Backend — Entrypoint ==="
echo "Mode: $MODE"
echo "Device: $DEVICE"
CHECKPOINT_DIR="/app/backend/checkpoints"
mkdir -p "$CHECKPOINT_DIR/sae_modelo_final"
mkdir -p "$CHECKPOINT_DIR/sit3_convlstm_weights"
python3 -c "
import os, urllib.request, sys
CHECKPOINT_DIR = '/app/backend/checkpoints'
TOKEN = os.environ.get('HF_TOKEN', '')
BASE_URL = 'https://huggingface.co/datasets/nicothinoo/geovision-cali-checkpoints/resolve/main'
FILES = [
('sae_modelo_final/sae_best.pt', f'{BASE_URL}/sae_modelo_final/sae_best.pt'),
('sit3_convlstm_weights/best.ckpt', f'{BASE_URL}/sit3_convlstm_weights/best.ckpt'),
]
for rel_path, url in FILES:
dest = os.path.join(CHECKPOINT_DIR, rel_path)
if os.path.exists(dest):
print(f' Ya existe: {rel_path}')
continue
os.makedirs(os.path.dirname(dest), exist_ok=True)
print(f' Descargando {rel_path} ...')
req = urllib.request.Request(url)
if TOKEN:
req.add_header('Authorization', f'Bearer {TOKEN}')
try:
with urllib.request.urlopen(req, timeout=120) as resp:
with open(dest, 'wb') as f:
f.write(resp.read())
size = os.path.getsize(dest) / 1e6
print(f' OK {rel_path} ({size:.1f} MB)')
except Exception as e:
print(f' Fallo {rel_path}: {e}')
print(f' ERROR: No se pudo descargar {rel_path}')
"
# DAGMA data (desde el mismo dataset)
DAGMA_DEST="/app/backend/checkpoints/DAGMA_con_Acopi_NO2.parquet"
if [ ! -f "$DAGMA_DEST" ]; then
echo " Descargando DAGMA datos ..."
python3 -c "
import urllib.request, os
TOKEN = os.environ.get('HF_TOKEN', '')
url = 'https://huggingface.co/datasets/nicothinoo/geovision-cali-checkpoints/resolve/main/DAGMA_con_Acopi_NO2.parquet'
dest = '$DAGMA_DEST'
req = urllib.request.Request(url)
if TOKEN:
req.add_header('Authorization', f'Bearer {TOKEN}')
try:
with urllib.request.urlopen(req, timeout=120) as resp:
with open(dest, 'wb') as f:
f.write(resp.read())
size = os.path.getsize(dest) / 1e6
print(f' OK DAGMA ({size:.1f} MB)')
except Exception as e:
print(f' Fallo DAGMA: {e}')
" 2>&1
fi
echo "=== Iniciando servidor ==="
exec "$@"