This is a FastAPI project setup using uv, a blazing fast Python package manager.
Follow the steps below to get started.
- Python 3.10 (uv handles virtual environments automatically)
- uv installed
curl -LsSf https://astral.sh/uv/install.sh | sh- (Optional) Docker & Docker Compose
Create a .env file in the project root with the following values:
# API Keys
GEMINI_API_KEY= # for API_VERSION_V1
ANTHROPIC_API_KEY= # for API_VERSION_V2
GROQ_API_KEY=
# Spotify API
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
# Supabase
SUPABASE_API_KEY=
SUPABASE_URL=
# Auth0 - only for testing protected route
AUTH0_DOMAIN=
AUTH0_API_IDENTIFIER=
AUTH0_CLIENT_SECRET=
# Logging
LOG_LEVEL=INFO # Options: NOTSET, DEBUG, INFO, WARNING, ERROR, CRITICAL
⚠️ Make sure not to commit.envto version control.
Splitter AI saves processed audio files to Supabase Storage.
Before running:
-
Go to your Supabase project dashboard
-
Navigate to Storage → Buckets
-
Create a new bucket with the name:
Media-Files -
Enable ✅ “Public bucket”
-
Inside this bucket, create a directory:
splitter_ai
Now, Splitter AI will save all audio files under:
Media-Files/splitter_ai/
-
Clone the repository
git clone https://github.com/NafeesMadni/GenZStudio_Backend.git cd GenZStudio_Backend -
Install dependencies
uv sync
-
Activate the virtual environment (optional if you run via
uv run)source .venv/bin/activate # Linux / MacOS .venv\Scripts\activate # Windows
uv run main.py- App: http://127.0.0.1:8000
- Docs: http://127.0.0.1:8000/docs
- ReDoc: http://127.0.0.1:8000/redoc
celery -A app.core.celery_app worker --loglevel=INFORun all tests:
pytestRun Generators API tests:
pytest app/tools/testing/test_api.py -vdocker-compose up --buildServices started:
- Redis (broker & backend for Celery)
- Web (FastAPI app) → http://localhost:8000
- Celery Worker (background task processor)
docker-compose downRemove volumes (e.g., Redis data):
docker-compose down -vdocker-compose logs -f # all services
docker-compose logs -f web # only FastAPI
docker-compose logs -f celery-worker