Spaces:
Sleeping
Sleeping
File size: 2,142 Bytes
b72d311 | 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 | #!/usr/bin/env python
"""
Deploy this ml-service folder to a Hugging Face Space (Docker SDK).
One-time:
1. Create a free account at https://huggingface.co
2. Make a WRITE token at https://huggingface.co/settings/tokens
Run (from the repo root or anywhere):
# bash / git-bash:
HF_TOKEN=hf_xxx python ml-service/deploy_hf.py <hf-username>/hsfast-ml
# PowerShell:
$env:HF_TOKEN="hf_xxx"; python ml-service/deploy_hf.py <hf-username>/hsfast-ml
It creates the Space if needed and uploads the folder (the 130MB model goes via
LFS automatically). Afterwards, set ML_SERVICE_URL on Render to the Space URL.
"""
import os
import sys
from huggingface_hub import HfApi
def main():
if len(sys.argv) < 2:
sys.exit("Usage: HF_TOKEN=<write-token> python deploy_hf.py <hf-username>/<space-name>")
repo_id = sys.argv[1]
token = os.environ.get("HF_TOKEN")
if not token:
sys.exit("Set HF_TOKEN to a Hugging Face WRITE token (https://huggingface.co/settings/tokens)")
here = os.path.dirname(os.path.abspath(__file__))
api = HfApi(token=token)
print(f"[deploy] creating/locating Space '{repo_id}' (Docker SDK)…")
api.create_repo(repo_id=repo_id, repo_type="space", space_sdk="docker", exist_ok=True)
print("[deploy] uploading ml-service (model uploads via LFS, ~130MB — be patient)…")
api.upload_folder(
folder_path=here,
repo_id=repo_id,
repo_type="space",
ignore_patterns=[
"__pycache__/*", "*.pyc", ".git/*", "*.rar", "eval_dmsv4.py", "deploy_hf.py",
# only best_model.pt is served — don't ship local backups/duplicates
"models/best_model_r8_backup.pt", "models/best_model_esm2 (1).pt",
],
commit_message="Deploy hsFAST ML service",
)
print(f"\n[deploy] done -> https://huggingface.co/spaces/{repo_id}")
print("[deploy] the Space will build (Docker) for a few minutes; watch the logs there.")
print("[deploy] then copy the Space's public URL and set it on Render as:")
print(" ML_SERVICE_URL = https://<that-space-url>")
if __name__ == "__main__":
main()
|