MilkSpoilageClassifier / docs /DEPLOYMENT_GUIDE.md
chenhaoq87's picture
Upload folder using huggingface_hub
63603f7 verified
# Deployment Guide - Two Options
You now have TWO deployment options for your model:
## Option 1: Gradio Space (Current - Interactive UI)
**URL**: https://huggingface.co/spaces/chenhaoq87/MilkSpoilageClassifier-Demo
**Features**:
- βœ… Interactive web interface
- βœ… Visual inputs and outputs
- ❌ No direct REST API for Custom GPT
**Best for**: Human users testing the model manually
---
## Option 2: FastAPI Space (Recommended for Custom GPT)
Create a **second Space** with pure REST API:
### Step 1: Create New Space
1. Go to https://huggingface.co/new-space
2. Name: `MilkSpoilageClassifier-API`
3. SDK: **Docker**
4. Click "Create Space"
### Step 2: Upload Files
Upload these files to the new Space:
**Files to upload:**
- `apps/fastapi/app.py` β†’ upload as `app.py`
- `model/model.joblib` β†’ upload as `model.joblib`
- `apps/fastapi/Dockerfile` β†’ upload as `Dockerfile`
- `apps/fastapi/requirements.txt` β†’ upload as `requirements.txt`
**Dockerfile:**
```dockerfile
FROM python:3.10-slim
WORKDIR /app
# Copy files
COPY requirements.txt .
COPY app.py .
COPY model.joblib .
# Install dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Expose port
EXPOSE 7860
# Run app
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
```
**requirements.txt**:
```
fastapi>=0.100
uvicorn[standard]>=0.24
pydantic>=2.0
scikit-learn>=1.0
joblib>=1.0
numpy>=1.20
```
### Step 3: Use with Custom GPT
Once the Space is running, your REST API will be at:
```
https://chenhaoq87-milkspoilageclassifier-api.hf.space/predict
```
**OpenAPI Schema** (see API_DOCUMENTATION.md)
---
## Quick Command to Create FastAPI Space
Run this in PowerShell:
```powershell
cd D:\HuggingFace\MilkSpoilageClassifier
# Upload to new Space
python -c "from huggingface_hub import HfApi, create_repo; api = HfApi(); create_repo('chenhaoq87/MilkSpoilageClassifier-API', repo_type='space', space_sdk='docker', exist_ok=True); api.upload_file('apps/fastapi/Dockerfile', 'Dockerfile', 'chenhaoq87/MilkSpoilageClassifier-API', repo_type='space'); api.upload_file('apps/fastapi/app.py', 'app.py', 'chenhaoq87/MilkSpoilageClassifier-API', repo_type='space'); api.upload_file('apps/fastapi/requirements.txt', 'requirements.txt', 'chenhaoq87/MilkSpoilageClassifier-API', repo_type='space'); api.upload_file('model/model.joblib', 'model.joblib', 'chenhaoq87/MilkSpoilageClassifier-API', repo_type='space'); print('FastAPI Space created!')"
```
---
## Summary
| Feature | Gradio Space | FastAPI Space |
|---------|-------------|---------------|
| Interactive UI | βœ… | ❌ |
| REST API | ❌ | βœ… |
| Custom GPT | ❌ | βœ… |
| Human Testing | βœ… | ❌ |
| API Docs | ❌ | βœ… (/docs) |
**Recommendation**: Keep both!
- Use Gradio Space for manual testing
- Use FastAPI Space for Custom GPT integration