SSOT 대시보드:
- 한신대 기술분석 PDF(19쪽) 정합성 분석 + 이번 세션 발견 섹션 추가
- 섹션 폴드아웃(접기)·상단 목차(드릴다운)·모두 펼치기/접기 — 내용 보존, 레이아웃만 정리
페르소나 반응 강화('저항·반응 조절' 핵심 차별):
- PersonaCard.triggers(역린) 필드 + CCD 핵심상처 파생 역린 블록
- L0에 무례·모욕·조롱 시 현실적 동맹 균열 반응 지침
버그·성능 수정(라이브/E2E로 포착):
- 게이트웨이 페르소나 격리: --append-system-prompt를 --system-prompt(교체)로 + --exclude-dynamic-system-prompt-sections (내담자 캐릭터 붕괴·개발맥락 누출 차단)
- RAG: 임베더 동기 로드(약 7-13초)를 _warm_rag_caches 백그라운드 warm으로(세션 생성 블로킹 회귀 수정)
- voice TTS RMS 데드힌트 제거, init_state OpennessParams 파라미터객체화
- 한국어 PII(날짜·금액·주소) 마스킹 보강
- 레이아웃 시각 게이트: 폼 컨트롤 값 스크롤 오탐 제외(7/7)
검증: 백엔드 84/84, E2E 42(데스크톱 27·모바일 11·아바타 4), 시각 게이트 7/7
73 lines
3.1 KiB
Markdown
73 lines
3.1 KiB
Markdown
# Voice S2S Second PoC Decision Memo
|
|
|
|
Date: 2026-06-26
|
|
|
|
## Decision Boundary
|
|
|
|
The primary voice architecture remains cascade-first:
|
|
|
|
```text
|
|
browser audio -> WSS -> STT transcript -> engine -> TTS audio -> browser
|
|
```
|
|
|
|
This memo does not approve or reject a second s2s PoC. It defines the evidence
|
|
needed before that decision is made. The dashboard decision item remains a human
|
|
decision, because choosing s2s affects auditability, dataset quality, latency,
|
|
cost, and the user experience.
|
|
|
|
## Current Position
|
|
|
|
- Cascade is the Phase 1/2 baseline because transcript is a first-class artifact
|
|
for review, safety checks, audit, cost attribution, and recursive-learning
|
|
export.
|
|
- S2S is no longer rejected only because of transcript loss. Realtime stacks may
|
|
expose transcription hooks, so the actual question is whether s2s can preserve
|
|
the same evidence contract while improving immersion or latency.
|
|
- A second s2s PoC is valid only as a bounded comparison against the cascade
|
|
path, not as a replacement by assumption.
|
|
|
|
## Evidence Required To Keep S2S
|
|
|
|
S2S stays on the roadmap only if a PoC can prove all of the following:
|
|
|
|
| Area | Required proof |
|
|
|---|---|
|
|
| Transcript | Final transcript is persisted with timestamps and turn boundaries. |
|
|
| Safety | Crisis/safety classifiers receive the same or stronger text signal as cascade. |
|
|
| Review | Learner review and supervisor review can cite exact utterance text. |
|
|
| Audit | Provider, model, token/audio cost, latency, and failure mode are logged per turn. |
|
|
| Latency | Median user-perceived round trip is meaningfully better than cascade on the same network. |
|
|
| Barge-in | Interruptions produce deterministic logs and do not corrupt transcript order. |
|
|
| Failure | STT/TTS/model failures do not save partial learner-only turns as completed dialogue. |
|
|
| Privacy | Browser receives no bearer token; any realtime credential is short-lived and session-scoped. |
|
|
|
|
## Evidence That Rejects S2S
|
|
|
|
S2S should be dropped for this release if any of these hold after the PoC:
|
|
|
|
- Transcript is missing, delayed beyond review usefulness, or cannot be aligned
|
|
to turn boundaries.
|
|
- Safety classifiers see weaker input than the cascade transcript path.
|
|
- The provider path requires browser-visible long-lived credentials.
|
|
- Cost or latency is worse without a clear user-experience gain.
|
|
- Failure recovery creates ambiguous persisted turns.
|
|
- The PoC requires special-case review/export logic that forks the data model.
|
|
|
|
## PoC Shape
|
|
|
|
Minimum acceptable comparison:
|
|
|
|
1. Use the same P1 persona, same counselor prompt, and same scripted learner
|
|
utterance set for cascade and s2s.
|
|
2. Record TTFT, full round-trip latency, transcript finalization time, cost, and
|
|
failure events for at least 20 short turns.
|
|
3. Export a side-by-side report with transcript equality/coverage, safety input,
|
|
and persisted turn metadata.
|
|
4. Keep cascade as production default until the report satisfies every required
|
|
proof above.
|
|
|
|
## Dashboard Mapping
|
|
|
|
- `s2s 2차 PoC 판단`: this memo satisfies the artifact requirement.
|
|
- `s2s 2차 PoC 채택 여부`: remains `DECIDE` until the comparison report exists
|
|
and the project owner chooses keep/drop.
|