File size: 2,174 Bytes
c49b21b 4b5719e c49b21b 010dba3 4b5719e 010dba3 4b5719e 010dba3 4b5719e 010dba3 4b5719e 010dba3 4b5719e 010dba3 c49b21b 010dba3 4b5719e 010dba3 4b5719e c49b21b 010dba3 4b5719e c49b21b 4b5719e c49b21b 010dba3 c49b21b 010dba3 4b5719e c49b21b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
#!/bin/bash
set -u
echo "Starting AdvisorAI Data Pipeline with Gradio..."
# Determine a writable DATA_DIR using the app's own logic, export it, and prepare NLTK dir
read -r DATA_DIR NLTK_DIR <<< "$(python - <<'PY'
import os
try:
from src.config import DATA_DIR as BASE
except Exception:
# fallback order
for p in ['/data', '/app/data', '/tmp']:
try:
os.makedirs(p, exist_ok=True)
test = os.path.join(p, '.wtest')
open(test,'w').close(); os.remove(test)
BASE = p
break
except Exception:
continue
else:
BASE = '/tmp'
nl = os.path.join(BASE, 'nltk_data')
os.makedirs(nl, exist_ok=True)
print(BASE, nl)
PY
)"
export DATA_DIR
export NLTK_DATA="$NLTK_DIR"
echo "DATA_DIR set to: $DATA_DIR"
echo "NLTK_DATA set to: $NLTK_DATA"
# Optionally fetch historical data from Filebase/S3 before starting services
if [ "${SKIP_FILEBASE_FETCH:-0}" != "1" ]; then
if [ -n "${FILEBASE_BUCKET:-}" ] && [ -n "${FILEBASE_ACCESS_KEY:-}" ] && [ -n "${FILEBASE_SECRET_KEY:-}" ]; then
echo "Fetching historical data from Filebase into $DATA_DIR ..."
python /app/deployment/fetch_filebase.py --base-dir "$DATA_DIR" || echo "[WARN] Filebase fetch failed (continuing startup)."
else
echo "[INFO] Skipping Filebase fetch: credentials or bucket not configured."
fi
else
echo "[INFO] SKIP_FILEBASE_FETCH=1 -> skipping Filebase fetch."
fi
# Best-effort NLTK downloads (do not fail on errors)
python - <<'PY'
import os
print('Preparing NLTK into', os.environ.get('NLTK_DATA'))
try:
import nltk
for pkg in ['punkt', 'stopwords', 'vader_lexicon']:
try:
nltk.download(pkg, download_dir=os.environ.get('NLTK_DATA'), quiet=True)
print('Downloaded', pkg)
except Exception as e:
print('NLTK download failed for', pkg, e)
except Exception as e:
print('NLTK import failed:', e)
PY
echo "Starting services..."
exec "$@"
|