vignette/README.md
Yun Chan 709baadd01 chore: Vignette 모노레포 초기 스캐폴드 + 설계 문서 이관
- apps/web(React) · apps/api(FastAPI) · infra(Docker) · docs(설계 SoT)
- 마스터플랜·적대검증·메모리설계·디자인컨셉 docs 이관
- 미성년 사례데이터는 .gitignore로 제외(개인정보 보호)
2026-06-25 21:16:45 +09:00

46 lines
2.1 KiB
Markdown

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