Local Dev Setup
:::info Source
Sourced from services/ai-gateway-service/LOCAL_DEV_SETUP.md in the documentation repo.
:::
1. Prerequisites
Node 20, pnpm 9, Docker 24. Optional: Ollama (for local models).
2. Quick Start
cd services/ai-gateway-service
cp .env.example .env.local
pnpm install
docker compose -f docker-compose.dev.yml up -d
pnpm db:migrate
pnpm prompts:seed
pnpm dev # :3020
pnpm dev:eval # eval worker (optional)
3. Dependencies
| Service | Port |
|---|---|
| postgres (pgvector) | 5432 |
| redis | 6379 |
| nats | 4222 |
| ollama (local) | 11434 (optional) |
| provider-mocks | 3021 (deterministic responses for CI) |
4. Environment
PORT=3020
DATABASE_URL=postgres://aigw:aigw@localhost:5432/aigw
REDIS_URL=redis://localhost:6379/20
NATS_URL=nats://localhost:4222
NATS_STREAM=AI_GATEWAY
# Providers
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
OLLAMA_URL=http://localhost:11434
# Use mock provider in CI / dev:
AI_PROVIDER_MODE=mock # set to 'real' for live integration
# Safety
SAFETY_MODERATION_PROVIDER=local
SAFETY_INJECTION_CLASSIFIER_URL=http://localhost:3022
SAFETY_PII_REDACTOR=presidio
# Budget
DEFAULT_DAILY_BUDGET_MICRO_USD=10000000 # $10
DEFAULT_MONTHLY_BUDGET_MICRO_USD=200000000 # $200
# Cache
AI_CACHE_DEFAULT_TTL_SECONDS=86400
# Eval
EVAL_SCHEDULE="0 1 * * *" # nightly 1 AM
5. Seed
pnpm prompts:seed loads platform prompts from prompts/ directory. Each file: name.yaml with versioned template + schemas + eval set ref.
Seeded tenant budgets + 100 sample completions for dashboards.
6. Commands
pnpm dev
pnpm test
pnpm test:integration
pnpm test:safety:injection # run injection corpus
pnpm test:safety:pii # PII redaction tests
pnpm test:eval:<promptName> # run eval for specific prompt
pnpm prompt:publish <id> <ver>
pnpm completion:trace <id>
pnpm budget:set <tenant> <usd>
pnpm models:list
7. Debugging
pnpm completion:inspect <id>shows full call timeline (safety, routing, provider, cache).- Provider-mock records every call for replay.
- Local model (ollama) can be used instead of cloud for free dev.