| # 🚀 Deployment Guide - Hugging Face Spaces |
|
|
| ## Step-by-Step Instructions |
|
|
| ### 1. **Clean Build** (Remove old Docker images) |
| ```bash |
| # Remove old Docker images |
| docker rmi quantum-circuit-opt:latest -f |
| docker system prune -f |
| ``` |
|
|
| ### 2. **Build New Docker Image** |
| ```bash |
| cd d:\2026\Meta_Pytorch\OpenEnv\my_env |
| |
| # Build the image |
| docker build -t quantum-circuit-opt:latest . |
| ``` |
|
|
| ### 3. **Test Locally** |
| ```bash |
| # Run the container |
| docker run -p 7860:7860 quantum-circuit-opt:latest |
| |
| # Open browser to: http://localhost:7860 |
| # You should see the Gradio UI |
| ``` |
|
|
| ### 4. **Deploy to Hugging Face Spaces** |
| ```bash |
| # Make sure you're in the my_env directory |
| cd d:\2026\Meta_Pytorch\OpenEnv\my_env |
| |
| # Push to HF Spaces |
| openenv push |
| ``` |
|
|
| ### 5. **Verify Deployment** |
| - Go to your HF Space: https://huggingface.co/spaces/YOUR_USERNAME/quantum_circuit_optimizer |
| - Wait for build to complete (check logs) |
| - The Gradio UI should load automatically |
| |
| --- |
| |
| ## 🔧 Troubleshooting |
| |
| ### Issue: `{"detail":"Not Found"}` |
| **Cause**: FastAPI routing conflict or wrong entry point |
| |
| **Fix**: |
| - Ensure `server/app.py` exposes `app = demo` (Gradio Blocks object) |
| - Dockerfile CMD should run: `python -m server.app` |
| |
| ### Issue: Container builds but UI doesn't load |
| **Cause**: Port mismatch or wrong server configuration |
| |
| **Fix**: |
| - Check README.md has `app_port: 7860` |
| - Verify Dockerfile exposes port 7860 |
| - Ensure Gradio launches with `server_name="0.0.0.0"` |
|
|
| ### Issue: Import errors in container |
| **Cause**: Missing dependencies or wrong Python path |
|
|
| **Fix**: |
| - Check `pyproject.toml` has all dependencies |
| - Verify `PYTHONPATH` is set in Dockerfile |
| - Run `uv sync` to update lock file |
|
|
| --- |
|
|
| ## 📋 Validation Checklist |
|
|
| After deployment, run the validation script: |
|
|
| ```bash |
| cd d:\2026\Meta_Pytorch\OpenEnv\my_env |
| bash validate-submission.sh |
| ``` |
|
|
| This will check: |
| - ✅ Environment can be imported |
| - ✅ Reset works correctly |
| - ✅ Step actions execute |
| - ✅ Rewards are calculated |
| - ✅ All tasks are accessible |
|
|
| --- |
|
|
| ## 🎯 Expected Behavior |
|
|
| ### Successful Deployment: |
| 1. Space shows "Running" status |
| 2. Gradio UI loads with: |
| - Task dropdown (Easy/Medium/Hard) |
| - Action controls (ADD/REMOVE/SWAP/PARAM/STOP) |
| - Gate selection (H/X/CNOT/RX/RZ) |
| - Circuit display |
| - Score visualization |
| 3. Can interact with UI: |
| - Reset environment |
| - Execute steps |
| - See rewards update |
|
|
| ### What You Should See: |
| ``` |
| Task: easy | Qubits: 2 | Step: 0/20 |
| Fidelity: 0.0000 | Score: 0.0000 | Reward: +0.0000 |
| ``` |
|
|
| After clicking "Reset Environment" and executing steps. |
|
|
| --- |
|
|
| ## 📁 Key Files |
|
|
| - `server/app.py` - Main Gradio application |
| - `Dockerfile` - Container configuration |
| - `README.md` - HF Spaces metadata |
| - `pyproject.toml` - Dependencies |
| - `openenv.yaml` - Environment manifest |
|
|
| --- |
|
|
| ## 🔄 Quick Redeploy |
|
|
| If you need to redeploy after changes: |
|
|
| ```bash |
| # 1. Rebuild Docker image |
| docker build -t quantum-circuit-opt:latest . |
| |
| # 2. Test locally |
| docker run -p 8000:8000 quantum-circuit-opt:latest |
| |
| # 3. Push to HF Spaces |
| openenv push |
| ``` |
|
|
| --- |
|
|
| ## ✅ Success Indicators |
|
|
| - ✅ Docker build completes without errors |
| - ✅ Local test shows Gradio UI at http://localhost:8000 |
| - ✅ HF Space shows "Running" status |
| - ✅ UI loads and is interactive |
| - ✅ Can reset environment and execute actions |
| - ✅ Rewards update correctly |
|
|