Vignette - AI ���� �ùķ��̼� �Ʒ� �÷���
web (Vite+React19+TS, Cloudflare Pages 배포): - 디자인토큰(세이지틸/테라코타 SSOT), 앱셸, 공통 UI 프리미티브 - 7화면: 로그인/학습자홈/상담세션/회기리뷰/교수자/관리자/설정 - ClientAvatar: SVG 반구상 흉상 4상태 + RMS 립싱크 + 6파라미터 정서 - 회기리뷰는 외부 레퍼런스 디자인을 Vignette 토큰으로 리스킨 api (FastAPI): - 게이트웨이 /v1/generate·/v1/stream 어댑터(상주풀/EngineSession 보존) - services: 페르소나 L0~L6 빌더 / 결정론 상태머신 / 가드레일 / 턴 오케스트레이터 / 회기간 메모리 / 평가AI / 음성 / RAG - store: DB off 폴백(in-memory), sessions 실구현 검증: - web: node22 tsc+vite build 통과(node23 segfault 회피), Pages 배포 200 - api: app.main import 통과 - 핫픽스: Topbar initials undefined-safe (undefined.trim 크래시) - E2E: 서연(P1) 상담 1턴 — 좋은/나쁜 상담에 차등 반응 실증 |
||
|---|---|---|
| apps | ||
| docs | ||
| infra | ||
| .env.example | ||
| .gitignore | ||
| README.md | ||
Vignette
AI 심리상담 시뮬레이션 훈련 플랫폼 — 한신대 SW중심대학 산학협력 (트웬티온스)
상담 수련생이 가상 내담자 AI와 음성으로 상담을 연습하고, 백그라운드 평가 AI가 실시간·회기말 피드백을 준다. "임상 비네트(사례 삽화)"로 안전하게 연습한다는 의미에서 Vignette.
구조 (모노레포)
vignette/
├ apps/
│ ├ web/ React 19 프론트엔드 (3역할: 관리자/교수자/학습자, 추후 RN 네이티브)
│ └ api/ FastAPI 백엔드 (엔진 어댑터·상태머신·가드레일·RAG)
├ infra/ Docker Compose (web·api·postgres·voice gateway)
└ docs/ 설계 문서 (SoT)
핵심 설계 (docs/)
| 문서 | 내용 |
|---|---|
docs/MASTERPLAN.md |
시스템 마스터플랜 (아키텍처·로드맵·스택) |
docs/redteam/REDTEAM_FINDINGS.md |
적대검증 40결함 |
docs/redteam/MASTERPLAN_REVISIONS.md |
재설계 패치 (claude -p 1급 엔진 복원 등) |
docs/MEMORY_KNOWLEDGE_PERSONA_DESIGN.md |
메모리·지식·페르소나 (회기 간 연속성) |
docs/DESIGN_CONCEPT.md |
디자인 컨셉 (토큰·아바타·화면) |
docs/mockups/ |
화면 레이아웃 시안 (HTML) |
확정 스택
- 엔진: 로컬 Opus 4.8
claude -p상주 멀티턴 풀(--input-format stream-json), Anthropic Messages API 폴백 - 프론트: React 19 + SSE (pnpm/Turborepo 모노레포, 추후 React Native)
- 백엔드: FastAPI + SSE 스트리밍
- DB: NAS PostgreSQL 16 + pgvector
- RAG: BGE-M3 + 하이브리드 + Contextual Retrieval + BGE-reranker-v2-m3
- 음성: OpenAI 캐스케이드(STT→LLM→TTS), 멀티보이스 + 페르소나
- 인증: OAuth 2.1 (BFF, 3역할 RBAC, visible_to 정보비대칭)
- 배포: Docker Compose, chanpaca.net 외부노출(교수 테스트)
3-AI
① 심리상담사 AI(선택) ② 가상 내담자 AI ③ 백그라운드 평가/교수 AI — 정보 비대칭을 DB visible_to가 강제.
상태
설계 완료, 구현 착수 단계 (Phase 0 기반정렬 → P1 텍스트 상담 MVP → P2 음성+3역할 → P3 파일럿).