Skip to main content

Documentation Index

Fetch the complete documentation index at: https://launchpad.datalumina.com/llms.txt

Use this file to discover all available pages before exploring further.

Before you begin, ensure you have completed the system requirements setup.
1

Clone the repository

Open your terminal and navigate to your desired project directory:
cd desired/project/path
Clone the GenAI Launchpad repository:
git clone git@github.com:datalumina/genai-launchpad.git
2

Configure environment variables

Navigate to the project directory:
cd genai-launchpad
Copy the example environment files:
cp .env.example .env && cp docker/.env.example docker/.env
These files serve different runtimes:
FileUsed byWhat belongs here
.envLocal Python runs from your machine, such as uv run playground/..., unit tests, and one-off scriptsLLM provider keys, Langfuse keys, and local app settings loaded by python-dotenv
docker/.envDocker Compose, the containerized Launchpad stack, the database, and optional Supabase servicesCompose project settings, database credentials, container ports, JWT/secrets, Docker-side provider keys, and optional Supabase configuration
docker/.env is much larger mostly because self-hosted Supabase needs many settings, even though Supabase services are excluded by default.
3

Start Docker containers

Navigate to the Docker directory and start the containers:
cd docker && ./start.sh
This command will:
  • Build all Docker containers
  • Start all services via Docker Compose
Verify the containers are running:
docker ps
4

Set up Python environment

Return to the project root and sync the environment:
cd ../
uv sync
uv sync creates and manages the .venv, installs the pinned Python version if needed, and installs the Launchpad package in editable mode.
5

Run database migrations

Navigate to the package directory where alembic.ini and the migration scripts live:
cd app/launchpad
Create a new migration (you’ll be prompted for a description):
./makemigration.sh
When prompted, enter a descriptive message like “init db” for your first migration.
Apply the migration:
./migrate.sh
6

Optional: enable Supabase services

Supabase Studio, Auth, Realtime, Storage, and the Supabase gateway are excluded by default. To enable them, uncomment docker-compose.supabase.yml in docker/docker-compose.yml, then restart the Docker stack.If you run Python locally against the Docker database, update the root .env database user from postgres to postgres.<POOLER_TENANT_ID>, for example postgres.launchpad with the default docker/.env settings. Supavisor requires the tenant-qualified username.When enabled, Studio is available at http://localhost:8000 with the dashboard credentials from docker/.env.

Exercise workflows from the playground

The playground/ directory contains one script per reference workflow. Each script loads a matching JSON fixture from the workflow’s request_examples/ folder, runs the workflow in-process, and prints the final TaskContext. They are the fastest way to iterate on a workflow without running the full API + Celery stack.
ScriptWorkflowWhat it does
playground/quickstart.pyCustomerCareWorkflowRuns a customer-care ticket end-to-end (concurrent analysis → routing → reply).
playground/nested_workflow.pyNestedWorkflowRuns a parent workflow that delegates reply drafting to a child workflow with the same TaskContext.
playground/streaming.pyExampleStreamingWorkflowIterates run_stream_async and prints each streamed chunk.
playground/langfuse_tracing.pyLangfuseTracingWorkflowRuns the moderation pipeline; set LANGFUSE_* env vars to capture traces.
playground/pgvector_rag.pyRagExampleWorkflowRuns retrieval + generation against the pgvector collection.
Run any of them with uv:
uv run playground/quickstart.py