gridops-ai / scripts /download_model.py
Aadithya
feat: Deployment infrastructure (DockerFile,supervisord,cold-startUI)
685a222
Raw
History Blame Contribute Delete
1.85 kB
#!/usr/bin/env python3
"""
Download the finetuned Chronos-PJM model from Hugging Face Hub at container boot.
Run this BEFORE starting the API and Celery worker.
Usage:
python scripts/download_model.py
Environment variables required:
HF_MODEL_REPO — your HF model repo, e.g. "yourusername/chronos-pjm-finetuned"
HF_TOKEN — your Hugging Face access token (for private repos)
"""
import os
import sys
def main():
repo_id = os.environ.get("HF_MODEL_REPO", "")
hf_token = os.environ.get("HF_TOKEN") or os.environ.get("HUGGINGFACE_API_TOKEN") or None
local_dir = "models/chronos-pjm-finetuned"
if not repo_id:
print("[download_model] HF_MODEL_REPO not set — skipping model download.")
print("[download_model] Assuming model already exists at:", local_dir)
if not os.path.isdir(local_dir):
print("[download_model] ERROR: Model directory not found. Set HF_MODEL_REPO.", file=sys.stderr)
sys.exit(1)
return
if os.path.isdir(local_dir) and os.listdir(local_dir):
print(f"[download_model] Model already present at '{local_dir}'. Skipping download.")
return
print(f"[download_model] Downloading model from HF Hub: {repo_id} ...")
try:
from huggingface_hub import snapshot_download
snapshot_download(
repo_id=repo_id,
local_dir=local_dir,
token=hf_token,
ignore_patterns=["*.md", "*.txt"],
)
print(f"[download_model] Model downloaded to '{local_dir}'.")
except ImportError:
print("[download_model] ERROR: huggingface_hub not installed.", file=sys.stderr)
sys.exit(1)
except Exception as e:
print(f"[download_model] ERROR downloading model: {e}", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()