DubswayAgenticAI / HUGGINGFACE_DEPLOYMENT.md
peace2024's picture
update ignore
08d7c19

πŸš€ Hugging Face Spaces Deployment Guide

This guide will help you deploy your Dubsway Video AI system to Hugging Face Spaces via GitHub.

πŸ“‹ Prerequisites

  1. GitHub Repository: Your code should be pushed to a GitHub repository
  2. Hugging Face Account: Create an account at huggingface.co
  3. Environment Variables: Set up your API keys and configuration

πŸ”§ Step-by-Step Deployment

1. Prepare Your Repository

Your repository should already have the necessary files:

  • .huggingface.yaml - Hugging Face Spaces configuration
  • Dockerfile - Container configuration
  • requirements-hf.txt - Optimized dependencies
  • app/main.py - FastAPI application

2. Set Up Environment Variables

In your Hugging Face Space settings, add these environment variables:

# Required for Groq LLM
GROQ_API_KEY=your_groq_api_key_here

# Database (use SQLite for simplicity)
DATABASE_URL=sqlite+aiosqlite:///./dubsway_hf.db

# AWS S3 (optional - for file storage)
AWS_ACCESS_KEY_ID=your_aws_access_key
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
AWS_REGION=us-east-1
S3_BUCKET_NAME=your_s3_bucket_name

# Application
SECRET_KEY=your_secret_key_here
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30

# Environment
ENVIRONMENT=production

3. Create Hugging Face Space

  1. Go to huggingface.co/spaces
  2. Click "Create new Space"
  3. Choose settings:
    • Owner: Your username
    • Space name: dubsway-video-ai (or your preferred name)
    • License: MIT
    • SDK: Docker
    • Visibility: Public or Private

4. Connect GitHub Repository

  1. In your Space settings, go to "Repository" tab
  2. Select "Connect to existing repository"
  3. Choose your GitHub repository
  4. Set the branch (usually main or master)

5. Configure Build Settings

The Space will automatically use:

  • .huggingface.yaml for configuration
  • Dockerfile for container build
  • requirements-hf.txt for dependencies

6. Deploy

  1. Push your changes to GitHub
  2. Hugging Face will automatically build and deploy
  3. Monitor the build logs in your Space

πŸ” Verification

Once deployed, you can:

  1. Check the API: Visit https://your-username-dubsway-video-ai.hf.space/
  2. View Documentation: Visit https://your-username-dubsway-video-ai.hf.space/docs
  3. Health Check: Visit https://your-username-dubsway-video-ai.hf.space/health

πŸ› οΈ API Endpoints

Your deployed API will have these endpoints:

  • GET / - Root endpoint with API info
  • GET /health - Health check
  • GET /docs - Interactive API documentation
  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • POST /api/upload/video - Video upload and analysis
  • GET /api/dashboard/videos - Get user videos
  • POST /api/custom-chatbot/chat - Chat with video content

πŸ”§ Troubleshooting

Common Issues

  1. Build Failures:

    • Check the build logs in your Space
    • Ensure all dependencies are in requirements-hf.txt
    • Verify Dockerfile syntax
  2. Environment Variables:

    • Make sure all required env vars are set in Space settings
    • Check for typos in variable names
  3. Memory Issues:

    • The Space uses CPU-only PyTorch to save memory
    • Consider using smaller models for production
  4. Database Issues:

    • Use SQLite for simplicity in Spaces
    • Ensure database directory is writable

Monitoring

  • Check Space logs for errors
  • Monitor resource usage
  • Test API endpoints regularly

πŸ”„ Continuous Deployment

Once connected to GitHub:

  1. Push changes to your repository
  2. Hugging Face automatically rebuilds and deploys
  3. Monitor deployment status in your Space

πŸ“Š Performance Optimization

For better performance in Hugging Face Spaces:

  1. Use CPU-only PyTorch: Already configured in Dockerfile
  2. Optimize model loading: Models are loaded on first request
  3. Use SQLite: Lighter than PostgreSQL for Spaces
  4. Cache results: Implement caching for repeated requests

πŸ” Security Considerations

  1. API Keys: Store sensitive keys in Space environment variables
  2. CORS: Configure allowed origins for production
  3. Rate Limiting: Implement rate limiting for public APIs
  4. Input Validation: Validate all user inputs

πŸ“ž Support

If you encounter issues:

  1. Check the build logs in your Space
  2. Review the troubleshooting section
  3. Check Hugging Face Spaces documentation
  4. Monitor your application logs

Happy Deploying! πŸŽ‰

Your Dubsway Video AI system will be accessible at: https://your-username-dubsway-video-ai.hf.space/