Full-stack app that turns HP customer briefs (master asset + regional supporting docs) into a set of branded Word deliverables via a RAG + agent pipeline. Stack - FastAPI + SQLAlchemy + pgvector + RQ (backend, Python 3.12) - React + Vite + TypeScript + Tailwind + TanStack Query (frontend) - Claude Opus 4.7 (generation) + Haiku 4.5 (translation/OCR) - Voyage voyage-3 or OpenAI text-embedding-3-small (embeddings) - python-docx (branded Word output, Montserrat + HP blue) - Docker Compose (5 services) Features - 6 built-in deliverable types (leadership themes, regional enrichment, LinkedIn posts, webinar spec, infographic specs, ABM enablement) - Data-driven deliverable types: admins add new types at runtime via prompt + JSON schema + template_json — no code, no deploy - Generic schema-driven review form + generic Word template renderer - Document ingestion pipeline with translation, chunking, pgvector RAG - Pluggable auth provider (password now, Entra SSO later); admin/user roles - Re-roll / retry on every deliverable; cascading delete; brief editing; inline document upload; progress hints; router-level ErrorBoundary - Admin panel with test-render preview for new deliverable types - Help page at /help with architecture overview and usage guide 82 backend tests passing, 18 skipped (gated live-API tests). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
2 KiB
Text
33 lines
2 KiB
Text
# ─── Anthropic / AI ───────────────────────────────────────────────────────────
|
|
ANTHROPIC_API_KEY=your-anthropic-api-key-here
|
|
|
|
# Voyage AI embeddings (voyage-3, 1024 dims). Optional — falls back to OpenAI.
|
|
VOYAGE_API_KEY=
|
|
|
|
# OpenAI embeddings fallback (text-embedding-3-small, 1536 dims). Optional.
|
|
OPENAI_API_KEY=
|
|
|
|
# ─── PostgreSQL ───────────────────────────────────────────────────────────────
|
|
POSTGRES_USER=hp
|
|
POSTGRES_PASSWORD=hp
|
|
POSTGRES_DB=hp_content_agent
|
|
# Derived from the above; consumed by SQLAlchemy / Alembic.
|
|
DATABASE_URL=postgresql+psycopg://hp:hp@postgres:5432/hp_content_agent
|
|
|
|
# ─── Redis ────────────────────────────────────────────────────────────────────
|
|
REDIS_URL=redis://redis:6379/0
|
|
|
|
# ─── Host port mappings (container side stays default) ───────────────────────
|
|
# Adjust if your host already uses these; defaults avoid common conflicts.
|
|
POSTGRES_HOST_PORT=55432
|
|
REDIS_HOST_PORT=56379
|
|
API_HOST_PORT=8008
|
|
FRONTEND_HOST_PORT=5178
|
|
|
|
# ─── Auth ─────────────────────────────────────────────────────────────────────
|
|
# Generate a strong random secret, e.g.: openssl rand -hex 32
|
|
JWT_SECRET=change-me-use-openssl-rand-hex-32
|
|
|
|
# ─── Frontend ─────────────────────────────────────────────────────────────────
|
|
# Public API base URL reachable from the browser.
|
|
VITE_API_URL=http://localhost:8008
|