Skip to main content

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

ServicePort
postgres (pgvector)5432
redis6379
nats4222
ollama (local)11434 (optional)
provider-mocks3021 (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.