pulse-cv / scripts /deploy_hf_space.py
qyam23's picture
Deploy PulseCV Docker Space
12bad3d verified
Raw
History Blame Contribute Delete
1.99 kB
import os
from pathlib import Path
from huggingface_hub import HfApi, create_repo
SPACE_ID = os.getenv("HF_SPACE_ID", "qyam23/pulse-cv")
TOKEN = os.getenv("HF_TOKEN")
ROOT = Path(__file__).resolve().parents[1]
def require_token() -> str:
if not TOKEN:
raise SystemExit("HF_TOKEN is required to deploy the Hugging Face Space.")
return TOKEN
def main() -> None:
token = require_token()
api = HfApi(token=token)
create_repo(
repo_id=SPACE_ID,
repo_type="space",
space_sdk="docker",
exist_ok=True,
token=token,
)
api.add_space_secret(repo_id=SPACE_ID, key="HF_TOKEN", value=token)
api.add_space_variable(repo_id=SPACE_ID, key="AI_PROVIDER", value="huggingface")
api.add_space_variable(repo_id=SPACE_ID, key="HF_MODEL", value=os.getenv("HF_MODEL", "Qwen/Qwen3-32B:nscale"))
api.add_space_variable(
repo_id=SPACE_ID,
key="HF_MODEL_CANDIDATES",
value=os.getenv(
"HF_MODEL_CANDIDATES",
"Qwen/Qwen3-32B:nscale,Qwen/Qwen3-32B:ovhcloud,Qwen/Qwen3-Coder-30B-A3B-Instruct:ovhcloud,Qwen/Qwen2.5-Coder-7B-Instruct:nscale,openai/gpt-oss-20b:groq,openai/gpt-oss-20b",
),
)
api.add_space_variable(repo_id=SPACE_ID, key="NODE_ENV", value="production")
api.add_space_variable(repo_id=SPACE_ID, key="PORT", value="7860")
api.upload_folder(
repo_id=SPACE_ID,
repo_type="space",
folder_path=str(ROOT),
path_in_repo=".",
commit_message="Deploy PulseCV Docker Space",
ignore_patterns=[
".git/*",
".github/*",
".sandbox/*",
".env",
".env.*",
"node_modules/*",
"artifacts/*",
"*.log",
"server-validation*.log",
"hf_site*.log",
"pulse_site.log",
],
)
print(f"Deployed {SPACE_ID} without exposing secrets.")
if __name__ == "__main__":
main()