# 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 파일럿).