# Hugging Face Spaces Deployment Guide ## Steps to Deploy on Hugging Face Spaces ### 1. Create a New Space 1. Go to [Hugging Face Spaces](https://huggingface.co/new-space) 2. Choose a name for your space (e.g., `content-classifier`) 3. Select **Docker** as the SDK 4. Set the space to **Public** or **Private** as needed 5. Click **Create Space** ### 2. Upload Files to Your Space You need to upload these files to your Space repository: ``` contextClassifier.onnx # Your ONNX model app.py # FastAPI application requirements.txt # Python dependencies Dockerfile # Docker configuration README.md # This will become the Space's README ``` ### 3. Required Files Content **For the Space's README.md header, add this at the top:** ```yaml --- title: Content Classifier emoji: 🔍 colorFrom: blue colorTo: purple sdk: docker pinned: false license: mit app_port: 7860 --- ``` ### 4. Deployment Process 1. **Via Git (Recommended):** ```bash git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME cd YOUR_SPACE_NAME # Copy your files copy contextClassifier.onnx . copy app.py . copy requirements.txt . copy Dockerfile . # Commit and push git add . git commit -m "Add content classifier API" git push ``` 2. **Via Web Interface:** - Use the **Files** tab in your Space - Upload each file individually - Or drag and drop all files at once ### 5. Monitor Deployment 1. Go to your Space URL: `https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME` 2. Check the **Logs** tab to monitor the build process 3. The Space will show "Building" status during deployment 4. Once ready, you'll see the API documentation interface ### 6. Access Your API Once deployed, your API will be available at: - **Swagger UI:** `https://YOUR_USERNAME-YOUR_SPACE_NAME.hf.space/docs` - **API Endpoints:** - `POST /predict` - Main prediction endpoint - `GET /health` - Health check - `GET /model-info` - Model information ### 7. Example Usage ```python import requests # Replace with your actual Space URL api_url = "https://YOUR_USERNAME-YOUR_SPACE_NAME.hf.space" # Make a prediction response = requests.post( f"{api_url}/predict", json={"text": "This is a test message"} ) print(response.json()) ``` ### 8. Important Notes - **Model Size:** Make sure your `contextClassifier.onnx` file is under the Space's size limit - **Cold Start:** The first request might take longer as the Space wakes up - **Logs:** Monitor the logs for any runtime errors - **Updates:** Any push to the repository will trigger a rebuild ### 9. Troubleshooting **Common Issues:** - **Build Fails:** Check logs for dependency issues - **Model Not Found:** Ensure `contextClassifier.onnx` is in the root directory - **Port Issues:** Make sure the app uses port 7860 - **Memory Issues:** Large models might exceed memory limits **Solutions:** - Review requirements.txt for compatible versions - Check model file path in app.py - Verify Dockerfile exposes port 7860 - Consider model optimization for deployment