| | --- |
| | description: Deploy to Hugging Face Spaces |
| | --- |
| | |
| | # Deploying to Hugging Face Spaces |
| |
|
| | This guide explains how to deploy the Samsung Prism Prototype to a Hugging Face Space and keep it synced with your local changes. |
| |
|
| | ## Prerequisites |
| |
|
| | 1. A Hugging Face account. |
| | 2. Git installed on your machine. |
| |
|
| | ## Step 1: Create a New Space |
| |
|
| | 1. Go to [huggingface.co/spaces](https://huggingface.co/spaces). |
| | 2. Click **"Create new Space"**. |
| | 3. **Name**: `samsung-prism-prototype` (or similar). |
| | 4. **License**: MIT (optional). |
| | 5. **SDK**: Select **Docker** (Recommended for custom dependencies like OpenCV/EasyOCR) or **Gradio** (if you were using Gradio, but we are using Flask, so Docker is best). |
| | * *Note*: Since we are using Flask, **Docker** is the most flexible option. Select **Docker** -> **Blank**. |
| | 6. Click **"Create Space"**. |
| |
|
| | ## Step 2: Prepare Your Project for Docker |
| |
|
| | Ensure you have a `Dockerfile` in the root of your project. |
| | (I will verify/create this for you in the next steps). |
| |
|
| | ## Step 3: Connect Local Repo to Hugging Face |
| |
|
| | 1. Initialize git if you haven't already: |
| | ```bash |
| | git init |
| | ``` |
| | 2. Add the Hugging Face remote (replace `YOUR_USERNAME` and `SPACE_NAME`): |
| | ```bash |
| | git remote add space https://huggingface.co/spaces/YOUR_USERNAME/SPACE_NAME |
| | ``` |
| | 3. Pull the initial files (like README.md) from the Space: |
| | ```bash |
| | git pull space main --allow-unrelated-histories |
| | ``` |
| | |
| | ## Step 4: Push Changes |
| |
|
| | Whenever you make changes locally, run these commands to update the Space: |
| |
|
| | ```bash |
| | # Add all changes |
| | git add . |
| | |
| | # Commit changes |
| | git commit -m "Update prototype" |
| | |
| | # Push to Hugging Face |
| | git push space main |
| | ``` |
| |
|
| | ## Step 5: Handling Large Files (Models) |
| |
|
| | **IMPORTANT**: Hugging Face Spaces have a hard limit on file sizes for Git (LFS). |
| | Since your `Models/` directory is large, you should **NOT** push it to Git directly if the files are huge. |
| | Instead, rely on the `model_handler.py` logic to download models from the Hugging Face Hub at runtime, or use `git lfs` if you must upload custom weights. |
| |
|
| | Since we updated `model_handler.py` to download from HF Hub if local files are missing, you can simply **exclude** the `Models/` directory from git. |
| |
|
| | Create/Update `.gitignore`: |
| | ``` |
| | Models/ |
| | __pycache__/ |
| | .venv/ |
| | .env |
| | ``` |
| |
|