|
|
--- |
|
|
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 |
|
|
``` |
|
|
|