yvetteYSY/creator-agent
Build AI agents grounded in a creator's documents, audio, and video.
Creator Agent – 개인정보 중심, 모바일 중심의 프로토타입: 크리에이터의 콘텐츠를 근거 기반 AI 챗 에이전트로 전환
무엇인가요 – 오픈소스 웹 앱(향후 React-Native 모바일 프론트엔드 계획)으로, 콘텐츠 크리에이터가 문서, 오디오 트랜스크립트, 또는 비디오 + 자막 파일을 업로드하고 태그를 지정한 후, 승인된 자료만을 기반으로 질문에 답하는 대화형 "오디언스 에이전트"를 공개할 수 있습니다. 모든 처리는 결정론적이며, 외부 LLM 제공업체에 대한 호출이 전혀 없기 때문에 데모 중에는 API 키나 토큰 비용이 발생하지 않습니다.
왜 중요한가요 – 다음의 풀스택 패턴을 보여줍니다:
- 기본적으로 개인정보 보호된 인게스션 – 소스는 브라우저 내부 또는 보호된 백엔드에 머물며, 크리에이터가 명시적으로 승인하기 전까지 검색 대상이 되지 않습니다.
- 테넌트 격리 – 각 크리에이터는 내부 UUID를 가지며, 모든 API 요청은 해당 ID에 스코프되므로 크리에이터 간 데이터 유출을 방지합니다.
- 제로 비용 라우팅 – 내장된 "참고 에이전트"는 결정론적이고 출처를 포함한 답변을 반환하지만 모델에 접근하지 않습니다. 크리에이터는 나중에 자신의 엔드포인트(Bring-Your-Own-Agent 계약)에 연결할 수 있으며, 모델 사용은 해당 엔드포인트 소유자의 책임이 됩니다.
- 보안 중심의 업로드 파이프라인 – MP4 업로드는 바로 프라이빗 S3 호환 스토리지로 전달되며, 추가 처리 전에 단일 작업 워커가 ClamAV로 파일을 스캔합니다.
핵심 기능 (MVP 시점)
| 기능 | 구현 |
|---|---|
| 인증 | Auth0 OIDC 로그인 (PKCE); JWT 검증 API 라우트 |
| 지속적 워크스페이스 | PostgreSQL이 크리에이터 ID, 에이전트 버전, 소스 메타데이터를 저장 |
| 소스 유형 | 텍스트 붙여넣기, 최소한의 GitHub App을 통한 Markdown/MDX, MP4 비디오 + 선택적 WebVTT 자막 |
| 개인정보 제어 | 크리에이터가 승인하기 전까지 소스는 미리보기만 가능; 승인되지 않은 콘텐츠는 챗 엔진에서 반환되지 않음 |
| 결정론적 챗 | 브라우저 내 리트리ieval 엔진이 쿼리어를 승인된 청크와 매칭하고 출처를 반환(또는 "모르겠습니다") – 모델 추론 없음 |
| 다중 사용자 격리 | 시뮬레이션된 오디언스 멤버(Maya, Theo, Jules)별 별도의 대화 기록 |
| 에이전트 사용자 정의 | 음성 프리셋, 응답 깊이, 서명 문구, 금지 주제, 인사말/톤 등, 크리에이터별로 버전 관리 |
| 로드 랩 | 조정 가능한 트래픽/병렬 제한으로 테넌트 인식 과부하 처리를 시연 |
| Bring-Your-Own-Agent | 문서화된 HTTP 계약; 크리에이터는 계약을 준수하는 임의의 엔드포인트로 시스템을 연결 가능. 모델 사용은 엔드포인트 소유자의 책임 |
| CI/CD | GitHub Actions가 모든 PR마다 타입 체크, 유닛/UI 테스트, 린트, 프로덕션 빌드를 실행 |
지금 바로 시도할 수 있는 것
- 공개 베타판 열기: https://creator-agent-yvetteysy.onrender.com (Auth0 로그인은 선택 사항). 데모는 무료 Render 서비스에서 실행되므로, 비활성 기간 후 첫 요청은 약 50초 소요될 수 있습니다.
- 짧은 텍스트 스니펫을 붙여넣거나 작은 MP4와 WebVTT 사이드카를 업로드하세요. 시뮬레이터는 메모리에서 텍스트를 청크화하고 즉시 검색 가능하게 만듭니다.
- 오디언스 미리보기로 전환하여 질문을 던지세요. 에이전트는 승인된 청크만 사용하여 답변하고 출처를 표시합니다.
- 사용자 정의를 열어 음성 프리셋이나 금지 주제를 조정하고 다음 답변에 미치는 영향을 확인하세요.
- 로드 랩을 사용해 시뮬레이션된 요청률을 높이고, 시스템이 과잉 트래픽을 유연하게 거부하는 모습을 관찰하세요.
- 제로 비용의 엔드투엔드 흐름을 위해 로컬에서
npm run dev:e2e를 실행하세요. 이는 시뮬레이터와 결정론적 참조 에이전트를http://127.0.0.1:4310/v1/respond에서 시작하며,aiCalls: 0을 보고합니다.
로컬에서 프로젝트 실행 방법
# 전제: Node 22+
git clone https://github.com/yvetteYSY/creator-agent.git
cd creator-agent
npm install
npm run dev # React 시뮬레이터를 http://127.0.0.1:4173에서 시작
# 선택 사항: docs/AUTHENTICATION.md 및 docs/API.md에 따라 Auth0 + PostgreSQL 구성
기본 모드는 메모리 내 시뮬레이터를 사용하며, 네트워크 호출은 전혀 발생하지 않습니다.
계획된 로드맵 (리포지토리에 기술됨)
- 지속적 크리에이터 워크스페이스 – 세션 간에 에이전트와 소스를 완전히 지속화.
- 개인 비디오 인게스션 파이프라인 – 완전한 스캔, 트랜스크립션, 자동 청크화.
- 프로덕션 수준의 근거 기반 챗 – 벡터 임베딩(
pgvector), 리트리ieval, 제공업체 중립적 생성. - 모바일 앱 – Expo/React-Native 클라이언트, 할당량, 모더레이션, 감사 로그, 가시성.
기술 스택
- 프론트엔드: React (Vite) + TypeScript, 모바일 대응 UI
- API: Node.js + TypeScript (Fastify/NestJS 스타일), Auth0 JWT로 보호
- 데이터베이스: PostgreSQL (임베딩용
pgvector계획) - 스토리지: S3 호환 버킷 (프라이빗, 서명된 POST 정책)
- 백그라운드 작업: Redis 기반 워커 큐 (격리 스캔, 정리 등)
- CI: GitHub Actions (타입 체크, 테스트, 프로덕션 빌드, 종속성 감사)
누가 이 프로젝트에 도움이 될 수 있을까
- 기존 미디어에 대화형 레이어를 실험하고 싶지만, 데이터에 대한 완전한 제어를 원하는 크리에이터.
- 개인정보 중심 콘텐츠 인게스션, 테넌트 격리, 제로 비용 AI 없는 프로토타이핑의 참조 구현에 관심 있는 개발자.
- "Bring-Your-Own-Model" 플랫폼을 구축 중이며, 사용자 쿼리를 외부 엔드포인트로 라우팅하는 깔끔한 계약이 필요한 팀.
위 모든 세부 정보는 리포지토리의 README에서 직접 가져온 것이며, 추가 기능은 추측되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트