yvetteYSY/creator-agent

Build AI agents grounded in a creator's documents, audio, and video.

Creator Agent – a privacy‑first, mobile‑first prototype for turning a creator’s own content into a grounded AI chat agent

What it is – An open‑source web‑app (with a planned React‑Native mobile front‑end) that lets a content creator upload documents, audio transcripts, or video + subtitle files, tag them, and then expose a conversational “audience agent” that answers questions only from the approved material. All processing is deterministic and makes zero calls to any external LLM provider, so no API keys or token costs are incurred during the demo.

Why it matters – It showcases a full‑stack pattern for:

  • Private‑by‑default ingestion – sources stay in the browser or in a protected back‑end until the creator explicitly approves them for retrieval.
  • Tenant isolation – each creator gets an internal UUID; every API request is scoped to that ID, preventing cross‑creator data leaks.
  • Zero‑cost routing – a built‑in “reference agent” returns deterministic, citation‑rich answers without hitting a model; a creator can later plug in their own endpoint (the Bring‑Your‑Own‑Agent contract) where any model usage is fully owned by that endpoint.
  • Security‑focused upload pipeline – MP4 uploads go straight to private S3‑compatible storage; a one‑shot worker scans the file with ClamAV before any further processing.

Core capabilities (as of the MVP)

Feature Implementation
Auth Auth0 OIDC login with PKCE; JWT‑validated API routes
Persistent workspace PostgreSQL stores creator IDs, agent versions, source metadata
Source types Pasted text, Markdown/MDX via a minimal GitHub‑App, MP4 video + optional WebVTT captions
Privacy controls Sources are preview‑only until the creator approves them; unapproved content is never returned by the chat engine
Deterministic chat In‑browser retrieval engine matches query terms against approved chunks and returns citations (or “I don’t know”) – no model inference
Multi‑user isolation Separate conversation histories for simulated audience members (Maya, Theo, Jules)
Agent customization Voice preset, response depth, signature phrases, prohibited topics, greeting/tone, etc., versioned per creator
Load lab Adjustable traffic/concurrency limits to demonstrate tenant‑aware overload handling
Bring‑Your‑Own‑Agent Documented HTTP contract; creators can point the system at any endpoint that respects the contract – model usage is then the endpoint owner’s responsibility
CI/CD GitHub Actions run type‑checking, unit/UI tests, lint, and a production build on every PR

What you can try now

  1. Open the public beta at https://creator-agent-yvetteysy.onrender.com (Auth0 login optional). The demo runs entirely on free Render services, so the first request may take ~50 s after a period of inactivity.
  2. Paste a short text snippet or upload a small MP4 with a WebVTT side‑car. The simulator will chunk the text in memory and immediately make it searchable.
  3. Switch to the Audience preview and ask a question; the agent will answer using only the approved chunks and show the source citation.
  4. Open Customize to tweak voice presets or prohibited topics and see the effect on the next answer.
  5. Use the Load lab to raise the simulated request rate and watch the system reject excess traffic gracefully.
  6. For a zero‑cost end‑to‑end flow, run npm run dev:e2e locally – it starts the simulator and a deterministic reference agent at http://127.0.0.1:4310/v1/respond that reports aiCalls: 0.

How to run the project locally

# Prerequisite: Node 22+
git clone https://github.com/yvetteYSY/creator-agent.git
cd creator-agent
npm install
npm run dev          # starts the React simulator on http://127.0.0.1:4173
# Optional: configure Auth0 + PostgreSQL per docs/AUTHENTICATION.md & docs/API.md

The default mode uses an in‑memory simulator; no network calls are made.

Planned roadmap (as described in the repo)

  1. Durable creator workspace – full persistence of agents and sources across sessions.
  2. Private video ingestion pipeline – complete scanning, transcription, and automatic chunking.
  3. Production‑grade grounded chat – vector embeddings (pgvector), retrieval, and provider‑neutral generation.
  4. Mobile app – Expo/React‑Native client, quotas, moderation, audit logs, and observability.

Tech stack

  • Front‑end: React (Vite) + TypeScript, mobile‑responsive UI
  • API: Node.js + TypeScript (Fastify/NestJS style) protected by Auth0 JWTs
  • Database: PostgreSQL (planned pgvector for embeddings)
  • Storage: S3‑compatible bucket (private, signed‑POST policy)
  • Background jobs: Redis‑backed worker queue (for quarantine scans, cleanup, etc.)
  • CI: GitHub Actions (type‑check, tests, production build, dependency audit)

Who might find this useful

  • Creators who want to experiment with a conversational layer over their existing media while keeping full control of the data.
  • Developers interested in a reference implementation of privacy‑first content ingestion, tenant isolation, and zero‑cost AI‑free prototyping.
  • Teams building “bring‑your‑own‑model” platforms that need a clean contract for routing user queries to external endpoints.

All details above are taken directly from the repository’s README; no additional features have been inferred.

Related

  • Project
  • Project
  • Project
  • Project