#!/usr/bin/env python3 """Create/update the Hugging Face Docker Space for this fresh checkout.""" from __future__ import annotations import os from pathlib import Path from huggingface_hub import HfApi ROOT = Path(__file__).resolve().parent DEFAULT_SPACE_ID = "bg5/zai2api3" def main() -> None: space_id = os.getenv("HF_SPACE_ID", DEFAULT_SPACE_ID).strip() or DEFAULT_SPACE_ID auth_token = os.getenv("AUTH_TOKEN", "123").strip() or "123" backup_token = os.getenv("BACKUP_TOKEN", "").strip() api = HfApi(token=os.getenv("HF_TOKEN") or None) api.create_repo( repo_id=space_id, repo_type="space", space_sdk="docker", exist_ok=True, ) api.upload_folder( repo_id=space_id, repo_type="space", folder_path=str(ROOT), path_in_repo=".", ignore_patterns=[ ".git/*", ".local/*", "__pycache__/*", "node_modules/*", "captcha-provider/node_modules/*", "data/*", "*.log", ".generated-auth-token.txt", "proxy-3000.js", ], delete_patterns=[ "proxy-3000.js", ], commit_message="部署 zai2api3 到 HF Space", ) api.add_space_secret( repo_id=space_id, key="AUTH_TOKEN", value=auth_token, description="API/admin key for zai2api", ) if backup_token: api.add_space_secret( repo_id=space_id, key="BACKUP_TOKEN", value=backup_token, description="Z.AI JWT token", ) api.add_space_variable(repo_id=space_id, key="PORT", value="7860") api.add_space_variable(repo_id=space_id, key="CAPTCHA_PROVIDER_URL", value="http://127.0.0.1:9876") api.add_space_variable(repo_id=space_id, key="BROWSER_BACKEND", value="cloak") api.add_space_variable(repo_id=space_id, key="POOL_SIZE", value="0") api.add_space_variable(repo_id=space_id, key="CHROMIUM_PATH", value="/usr/bin/chromium") api.add_space_variable(repo_id=space_id, key="LOG_LEVEL", value="info") api.add_space_variable(repo_id=space_id, key="DEBUG_LOGGING", value="false") for stale_key in ("TOKEN_BOUND_CAPTCHA", "FALLBACK_CAPTCHA_PROVIDER_URL"): try: api.delete_space_variable(repo_id=space_id, key=stale_key) except Exception: pass print(f"Space: https://huggingface.co/spaces/{space_id}") print(f"App: https://{space_id.replace('/', '-')}.hf.space") if __name__ == "__main__": main()