B2B API-first platform for AI-generated visual consistency. Character Lock system with 41 visual trait fields ensures characters stay consistent across unlimited generations. Helios engine blends 6 AI personalities for style-matched prompt output. Vertex AI RAG pipeline powered by 34 curated documents.
- Character Lock — 41 visual trait fields for cross-generation consistency
- Helios Engine — 6 AI personalities (Prometheus, Zeus, Poseidon, Artemis, Dionysus, Athena) with algorithmic auto-blending
- Critic Pipeline — Self-critique scoring module that rates and improves prompt quality
- RAG Pipeline — Vertex AI Search over 34 curated creative documents
- Multi-tenant B2B — API key auth, tenant isolation, usage tracking
graph TD
subgraph Client["Next.js 15 Frontend"]
UI["App Router + Zustand + TanStack Query"]
end
subgraph Backend["FastAPI Backend"]
Routers[API Routers]
GenService["Unified AI Service · Gemini"]
SearchService["Vertex Search Service · RAG"]
CriticService["Unified Critic Service"]
Core["Core: Models + Schemas + Auth + CRUD"]
CharLock["Character Lock · 41 Traits"]
Helios["Helios · 6 Personalities"]
end
subgraph Storage["Data Layer"]
DB[("SQLite · WAL Mode")]
end
subgraph Cloud["Google Cloud"]
VertexAI[Vertex AI Search]
GeminiAPI[Google Gemini]
end
UI -->|Axios + JWT| Routers
Routers --> GenService
Routers --> SearchService
Routers --> CriticService
GenService --> Core
GenService --> CharLock
GenService --> Helios
SearchService --> VertexAI
GenService --> GeminiAPI
Core --> DB
| Layer | Technology |
|---|---|
| Frontend | Next.js 15 (App Router), Tailwind CSS v4, Zustand, TanStack Query |
| Backend | FastAPI, Python 3.11+, Pydantic v2 |
| AI/ML | Google Gemini, Vertex AI Search, RAG Pipeline |
| Database | SQLAlchemy, SQLite (WAL mode) |
| Auth | JWT + OAuth2 Bearer, Multi-tenant API keys |
- Python 3.11+
- Node.js 18+
- Google Cloud project with Vertex AI Search enabled
- Service account with
discoveryengine.viewerrole
cd backend
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
pip install -r requirements.txt
cp .env.example .env # Edit with your credentials
uvicorn main:app --reload --port 8001Backend: http://localhost:8001 | API Docs: http://localhost:8001/docs
cd nextjs-frontend
npm install
cp .env.example .env.local # Set NEXT_PUBLIC_API_URL=http://localhost:8001
npm run devFrontend: http://localhost:3000
aispark-studio/
├── backend/
│ ├── main.py # App initialization, middleware, router registration
│ ├── config.py # Centralized settings (pydantic-settings)
│ ├── api/
│ │ ├── routers/ # Domain-specific API routers
│ │ │ ├── auth_router.py # Login, register, JWT
│ │ │ ├── generation_router.py # Prompt generation, Helios auto-generate
│ │ │ ├── prompts_router.py # Prompt CRUD, export
│ │ │ ├── characters_router.py # Character Lock CRUD, sessions
│ │ │ ├── helios_router.py # Personality selection & enhancement
│ │ │ ├── critic_router.py # Prompt analysis & scoring
│ │ │ └── search_router.py # Vertex AI Search
│ │ ├── v1/ # B2B Sandbox API
│ │ └── v2/ # B2B Admin & Core API
│ ├── core/
│ │ ├── models.py # SQLAlchemy ORM models
│ │ ├── schemas.py # Pydantic request/response schemas
│ │ ├── crud.py # Database operations
│ │ ├── auth.py # JWT authentication
│ │ ├── character_lock.py # Character consistency system (41 traits)
│ │ └── helios_personalities.py # 6 Helios creative personalities
│ ├── services/
│ │ ├── unified_ai_service.py # Primary AI generation pipeline
│ │ ├── vertex_search_service.py # Vertex AI Search (RAG)
│ │ ├── unified_critic_service.py # Self-critique & refinement
│ │ ├── cache_service.py # Response caching layer
│ │ └── export_service.py # Multi-format export (JSON, CSV, TXT)
│ └── tests/ # pytest suite
├── nextjs-frontend/ # Next.js 15 (App Router)
├── knowledge_base/ # Local RAG document fallback
├── docs/ # Architecture documentation
├── LICENSE
├── CONTRIBUTING.md
└── README.md
| Group | Endpoints | Description |
|---|---|---|
| Auth | POST /auth/token, POST /auth/register, GET /users/me |
JWT authentication |
| Generation | POST /generate, POST /helios/auto-generate |
AI prompt generation with optional Helios personality |
| Prompts | GET /prompts, GET /prompts/{id}, PUT .../favorite, DELETE, GET .../export/{format} |
Prompt CRUD and export |
| Characters | POST /characters/create, GET /characters/list, lock/unlock, stats |
Character Lock system |
| Helios | POST /helios/analyze, POST /helios/enhance, GET /helios/personalities |
Personality engine |
| Critic | POST /critic/analyze, GET /critic/stats |
Prompt quality analysis |
| Search | GET /search/vertex, GET /search/vertex/status |
Vertex AI Search (RAG) |
| B2B Admin | POST /v2/admin/tenants, API key management |
Multi-tenant administration |
| B2B Core | POST /v2/b2b/generate, POST /v2/b2b/critic/analyze |
Tenant-scoped generation |
Full interactive docs available at /docs (Swagger) and /redoc when the backend is running.
# Backend
cd backend
python -m pytest tests/ -v
python -m pytest tests/ --cov=. --cov-report=html
# Frontend
cd nextjs-frontend
npm run lint
npm run test:e2e- Route extraction — monolithic main.py refactored into 8 domain-specific routers
- Vertex AI RAG pipeline — 34 curated documents integrated via Vertex AI Search
- Next.js 15 frontend with TanStack Query + Zustand state management
- Multi-tenant B2B API key authentication and tenant isolation
- Character Lock system — 41 visual trait fields for cross-generation consistency
- Helios personality engine — 6 AI personalities with algorithmic auto-blending
- Critic pipeline — self-critique scoring and prompt quality analysis
- Recorded validation: 64/64 tests passing in the original release-prep run
- SQLite → PostgreSQL migration with Alembic
- HttpOnly cookie auth (replace client-side JWT storage)
- Circuit breaker pattern for Vertex AI and Gemini calls
- Redis caching layer with in-memory fallback
- Docker containerization (PostgreSQL 16 + Redis 7 + API)
- Frontend error boundaries (
error.tsx,not-found.tsx) - CI pipeline (GitHub Actions — lint, type-check, test, build)
- Comprehensive architecture documentation (
docs/ARCHITECTURE.md)
- OpenAPI → TypeScript type generation (
generate-typesscript) - Playwright E2E test suite
- The Studio — Phase 3 generation workspace (PersonalitySelector, GenerationProgress, GenerationForm)
- Prompt history search and filtering
- Usage analytics dashboard
Run the full stack locally with the setup steps above (backend on
:8001, frontend on:3000). Interactive API docs are served at/docs(Swagger) and/redoc.
MIT License — see LICENSE for details.