EMAILOUT Setup Guide
Prerequisites
- OpenAI API Key - Get one from https://platform.openai.com/api-keys
Hugging Face Spaces Setup
Create a new Space:
- Go to https://huggingface.co/spaces
- Click "Create new Space"
- Select "Docker" as the SDK
- Name it "EMAILOUT" (or your preferred name)
Add OpenAI API Key as Secret:
- Go to your Space Settings
- Navigate to "Secrets" section
- Add a new secret:
- Key:
OPENAI_API_KEY - Value: Your OpenAI API key
- Key:
Upload Files:
- Upload all project files to your Space
- The Dockerfile will handle the build process
Deploy:
- The Space will automatically build and deploy
- Monitor the logs for any build errors
Local Development
Install Dependencies:
# Backend cd backend pip install -r requirements.txt # Frontend cd ../frontend npm installSet Environment Variables:
export OPENAI_API_KEY=your_api_key_hereRun Backend:
cd backend uvicorn app.main:app --reload --port 8000Run Frontend:
cd frontend npm run dev
Project Structure
EMAILOUT/
βββ backend/
β βββ app/
β β βββ __init__.py
β β βββ main.py # FastAPI application
β β βββ database.py # SQLite database models
β β βββ models.py # Pydantic models
β β βββ gpt_service.py # OpenAI GPT integration
β βββ requirements.txt
βββ frontend/
β βββ src/
β β βββ pages/
β β β βββ EmailSequenceGenerator.jsx
β β βββ components/
β β β βββ upload/
β β β βββ products/
β β β βββ prompts/
β β β βββ sequences/
β β β βββ ui/
β β βββ ...
β βββ package.json
βββ Dockerfile
βββ README.md
Features
- β CSV Upload from Apollo
- β Product Selection with Custom Products
- β Prompt Template Editor
- β GPT-Powered Sequence Generation
- β Real-time Streaming Results
- β CSV Export for Klenty/Outreach
API Endpoints
POST /api/upload-csv- Upload CSV filePOST /api/save-prompts- Save prompt templatesGET /api/generate-sequences- Generate sequences (SSE stream)GET /api/download-sequences- Download sequences as CSV
Database
SQLite database is stored at /data/emailout.db (persistent in HF Spaces).
Uploaded files are stored at /data/uploads/.