음성 재생과 운영 배포 정리

This commit is contained in:
Yun Chan 2026-06-28 12:18:20 +09:00
parent 8ed185ce6c
commit ac7db95542
1020 changed files with 46863 additions and 2175 deletions

View file

@ -9,7 +9,8 @@
오케스트레이터(`services/orchestrator.py`, `prepare_turn`/`run_turn_generate`, `eval_hook`/`log_hook` 주입형) ·
저항엔진(state_machine openness) · 마스킹 게이트(PII, Presidio + 정규식) ·
음성 캐스케이드(STT/TTS, `voice.py`) · 회기 리뷰(`evaluator.py` deep-loop + `make_eval_hook` fast-loop) ·
평가 KPI(SUS·자기효능감·κ/ICC·환각률) · 재귀학습(`ds.*` 스키마) · 데이터/SSO 거버넌스(`saml.py`, auth allowlist).
평가 KPI(SUS·자기효능감·κ/ICC·환각률) · 재귀학습(`ds.*` 스키마) · 데이터/SSO 거버넌스(`saml.py`, auth allowlist) ·
회기 리뷰 공유 URL(공개 토큰 + Open Graph/요약 카드) · SEO/GEO 정적 메타(`robots.txt`, `sitemap.xml`, `llms.txt`).
AI 턴 생성 엔진은 별도 서비스인 **engine_gateway**(포트 9099)가 담당하며
`ENGINE_MODE`로 백엔드를 고른다(`claude_cli` / `claude_api` / `openai` / `solar`).
@ -24,7 +25,7 @@ AI 턴 생성 엔진은 별도 서비스인 **engine_gateway**(포트 9099)가
| `apps/api/` | FastAPI/Python 백엔드. 오케스트레이터·페르소나·저항엔진·마스킹·음성·평가·인증. 엔진 게이트웨이(`apps/api/engine_gateway/`) 포함 |
| `apps/web/` | React 19 + Vite 프론트엔드(3역할: 관리자/교수자/학습자). Playwright E2E |
| `docs/` | 설계·운영 문서. `docs/dev_dashboard.html`이 SSOT(단일 진실 공급원) |
| `infra/` | Docker Compose 스택(`db`=pgvector pg16, `api`, `web`, `rag`, `proxy`=Caddy) 및 `.env.example` |
| `infra/` | Docker Compose 스택(`db`=pgvector pg16, `api`, `web`, `proxy`=Caddy) 및 `.env.example` |
| `scripts/` | 운영 스크립트(PowerShell/Python): 공개 런타임 기동·감시, 엔진 게이트웨이 프로브, Postgres RLS 감사 등 |
---
@ -75,6 +76,9 @@ curl -X POST http://localhost:5173/api/auth/dev-login `
- 요청 바디: `email`(필수), `role`(`learner` | `teacher` | `admin`, 기본 `learner`), `display_name`(선택).
- 성공 시 `__Host-vignette_sid` 세션 쿠키가 발급된다.
- 로그인 후 신규 사용자 또는 온보딩 미완료 사용자는 `/onboarding`에서 닉네임, 자기소개,
선택 아바타 이미지, 이름, 소속, 학과, 학년/직위, 전화번호, 주소/수령지와 약관·개인정보
동의를 완료해야 역할 홈과 학습 회기 시작이 열린다.
### 2-4. (선택) AI 턴 생성용 엔진 게이트웨이
@ -91,8 +95,8 @@ uvicorn engine_gateway.gateway:app --host 0.0.0.0 --port 9099
```powershell
# 백엔드
cd apps\api; python -m pytest app/ -q # 현재 113 pass
python -m pytest engine_gateway/ -q # 약 7 pass
cd apps\api; python -m pytest app/ -q # 현재 145 pass
python -m pytest engine_gateway/ -q # 현재 9 pass
# 프론트엔드
cd apps\web; npm run typecheck # tsc -b
npm run build # tsc -b && vite build
@ -104,10 +108,12 @@ npm run e2e # Playwright (web + api + DB 스
```powershell
cd infra
Copy-Item .env.example .env # 실제 시크릿은 .env 에만
docker compose up -d # db(pgvector pg16) + api + web + rag + proxy(Caddy)
docker compose up -d # db(pgvector pg16) + api + web + proxy(Caddy)
```
Docker Desktop이 필요하다.
Docker Desktop이 필요하다. RAG 모델 의존성까지 API 이미지에 넣을 때만 `INSTALL_RAG=true``infra/.env`에 둔다.
다른 환경에 심기 전에는 저장소 루트에서 `python scripts\check-deploy-preflight.py --env-file infra\.env`를 먼저 실행해
고정 의존성, 라이브 코칭 `data/kb` source pack, 운영 env를 확인한다.
---