Skip to main content

deploy-hf

Deploy an OpenEnv environment to Hugging Face Spaces. Use when asked to deploy, push to Hugging Face, or update a space.

소스 정보

저장소
huggingface/OpenEnv
최근 소스 활동
2026년 4월 14일 08:36
감지된 SKILL.md 언어
영어
스타
2,711
포크
481

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
deploy-hf
description
Deploy an OpenEnv environment to Hugging Face Spaces. Use when asked to deploy, push to Hugging Face, or update a space.
allowed-tools
Bash, Read
# Deploy to Hugging Face Spaces Deploy an OpenEnv environment to Hugging Face Spaces using the OpenEnv CLI. ## When to Use This Skill - User asks to "deploy to Hugging Face" - User says "push to Hugging Face Spaces" - User wants to update an existing space - After implementing new features that need to be tested in production ## Prerequisites Before deploying, ensure: 1. The environment has an `openenv.yaml` file 2. The environment has a `server/Dockerfile` 3. You have Hugging Face credentials configured (automatic via huggingface-cli) ## Instructions ### 1. Identify the Environment Determine which environment to deploy: - If user specifies: use that environment (e.g., "carla_env", "browser_env") - If in environment directory: use current directory - Otherwise: ask the user ### 2. Determine the Repository ID Repository ID format: `username/space-name` - If user provides full ID: use it (e.g., "sergiopaniego/carla-env-real-updated") - If user provides only space name: construct ID with their username - Check `openenv.yaml` for default repo-id - Otherwise: ask the user ### 3. Pre-Deployment Setup **IMPORTANT**: Always run from the project root directory. Before deploying, ensure OpenEnv is installed: ```bash cd /path/to/OpenEnv # Navigate to project root if needed uv pip install -e . ``` If this fails with "does not appear to be a Python project", you're not in the project root. ### 4. Run the Deployment Command Execute the deployment: ```bash PYTHONPATH=src uv run python -m openenv.cli push <environment-dir> --repo-id <username/space-name> ``` **Parameters**: - `<environment-dir>`: Path to environment (e.g., `envs/carla_env`) - `--repo-id`: Hugging Face Spaces repository ID (e.g., `sergiopaniego/carla-env-real-updated`) **Optional flags**: - `--private`: Deploy as a private space - `--no-interface`: Disable the web interface (deploy API-only) - `--base-image <image>`: Override the base Docker image - `--hardware <hw>` / `-H <hw>`: Request Hugging Face Space hardware (e.g. `t4-medium`, `a10g-small`, `cpu-basic`) ### 5. Verify Deployment After successful deployment: 1. Note the Space URL returned by the command 2. **Wait for build to complete:** - CPU environments: ~5 minutes - GPU environments (CARLA): ~30-60 minutes 3. Check the space status at the URL 4. Test with a simple health check once build completes: ```bash curl https://<username>-<space-name>.hf.space/health ``` ## Example Usage ### Deploy carla_env to existing space ```bash PYTHONPATH=src uv run python -m openenv.cli push envs/carla_env --repo-id sergiopaniego/carla-env-real-updated ``` ### Deploy echo_env as private space ```bash PYTHONPATH=src uv run python -m openenv.cli push envs/echo_env --repo-id username/my-echo-env --private ``` ### Deploy with GPU hardware ```bash PYTHONPATH=src uv run python -m openenv.cli push envs/carla_env --repo-id username/carla-env --hardware t4-medium ``` ### Deploy with custom base image ```bash PYTHONPATH=src uv run python -m openenv.cli push envs/browser_env --repo-id username/browser-env --base-image nvidia/cuda:11.8.0-runtime-ubuntu22.04 ``` ## Output Format Report deployment status: ``` ## Hugging Face Deployment ### Environment - Environment: <env-name> - Directory: <path> - Dockerfile: <path-to-dockerfile> ### Deployment - Repository ID: <username/space-name> - Space URL: <https://huggingface.co/spaces/username/space-name> - Status: ✓ Deployed successfully ### Next Steps 1. Wait for space to build (5 min for CPU, 30-60 min for GPU/CARLA) 2. Visit space URL to check build status 3. Test environment once build completes ### Testing Commands ```bash # Health check curl https://<username>-<space-name>.hf.space/health # Reset environment curl -X POST https://<username>-<space-name>.hf.space/reset # Step action curl -X POST https://<username>-<space-name>.hf.space/step \ -H "Content-Type: application/json" \ -d '{"action_type": "observe"}' ``` ``` ## Troubleshooting ### Error: "ModuleNotFoundError: No module named 'openenv'" **Solution**: Install OpenEnv first (must be run from project root): ```bash cd /path/to/OpenEnv # Navigate to project root uv pip install -e . ``` ### Error: "does not appear to be a Python project" **Cause**: You're not in the project root directory. **Solution**: Navigate to the OpenEnv project root where `pyproject.toml` exists: ```bash cd /Users/sergiopaniegoblanco/Documents/Projects/OpenEnv # Adjust path uv pip install -e . ``` ### Error: "Directory does not exist" **Solution**: Ensure you're passing the correct environment directory path: ```bash # Correct PYTHONPATH=src uv run python -m openenv.cli push envs/carla_env --repo-id ... # Incorrect PYTHONPATH=src uv run python -m openenv.cli push carla_env --repo-id ... ``` ### Error: "Authentication required" **Solution**: Login to Hugging Face CLI first: ```bash huggingface-cli login ``` ### Space build fails **Solutions**: 1. Check Dockerfile syntax and dependencies 2. Verify hardware requirements (GPU spaces need `--hardware` setting on HF) 3. Check space logs on Hugging Face for detailed errors 4. Ensure `openenv.yaml` is valid ## Common Environments | Environment | Path | Typical Repo ID | Hardware | |-------------|------|-----------------|----------| | carla_env (standalone) | envs/carla_env | username/carla-env-real | GPU (T4/A10G) | | carla_env (mock) | envs/carla_env | username/carla-env-mock | CPU | | echo_env | envs/echo_env | username/echo-env | CPU | | browser_env | envs/browser_env | username/browser-env | CPU | | tbench2_env | envs/tbench2_env | username/tbench2-env | CPU | ## Notes - Deployment requires Hugging Face authentication (automatic if `huggingface-cli` is logged in) - By default, spaces are **public** (use `--private` for private spaces) - By default, **web interface is enabled** (use `--no-interface` for API-only) - GPU spaces can request hardware via `--hardware` (e.g. `--hardware t4-medium`) - Build times vary: CPU (~5 min), GPU with CARLA (~30-60 min) - The CLI automatically moves Dockerfile to repository root for Hugging Face compatibility ## Related Documentation - [DEPLOYMENT_GUIDE.md](../../envs/carla_env/DEPLOYMENT_GUIDE.md) - Detailed deployment modes - [README.md](../../README.md) - OpenEnv overview - Hugging Face Spaces Docs: https://huggingface.co/docs/hub/spaces
GitHub에서 보기