Commit graph

211 commits

Author SHA1 Message Date
Yun Chan
c953aa5bea feat(eval): 평가 AI fast-loop에 골든셋 few-shot 주입 — 합성 데이터 실활용
- evaluator._load_fewshot_examples/_fewshot_block: data/golden 골든셋에서
  기법 다양성 커버하는 상담자 발화 6개를 few-shot 예시로 로드(GOLDEN_DIR env,
  없으면 graceful 빈 블록).
- build_fast_messages 프롬프트에 주입 → 평가 라벨 일관성 보정.
- 윤찬 6결정 '재귀학습 few-shot부터' 실제 구현, P4-P7 골든셋 실활용.
- 검증: 9기법 커버(empathy/reflection/validation/holding/exploration/
  facilitative_question/interpretation/normalization/principle_explanation),
  app.main import OK.
2026-06-26 01:17:44 +09:00
Yun Chan
4187936848 feat(data): 합성 페르소나 4종(P4-P7 비위기) + 발화-라벨 골든셋 62발화
n=1(0615 단일사례) 리스크 개발단계 완화 — 평가AI few-shot/검증 데이터 증강.
윤찬 6결정 '재귀학습 few-shot부터' + taxonomy '0615 합성변형' 설계 방향.

- P4 하늘(학업·시험불안 14발화) / P5 도윤(또래관계·소외 16) /
  P6 하린(진로갈등 14) / P7 도현(입시번아웃 18). 전부 비위기.
- 발화별 taxonomy 기법/상태 라벨 + 슈퍼바이저 논평(rationale/critique).
- 좋은개입→방어완화 / 성급조언→재방어 인과 + intent_deviation 2건/세트.
- 직접 검증: 62발화 enum 라운드트립 OK, 부착규칙 통과, 비위기위반 0,
  PersonaCard 필드 완비 is_synthetic=true. source=synthetic_v1.
- 실 임상 신뢰도는 한신대 실사례로 보강(별도).
2026-06-26 01:11:28 +09:00
Yun Chan
18b8ef3ef2 fix(web): 상담세션 라이브 연결 — start session_id를 turn에 사용(liveSessionId)
- 버그: handleStart가 sessionApi.start 결과 session_id 미저장, handleSend가
  URL :sessionId(임의값)로 turn 호출 → 백엔드 세션 불일치 → mock 폴백
- 수정: liveSessionId state에 start 결과 저장, turn/consume이 이걸 사용
- consumeClientReply: 동기 client_reply 있으면 SSE 스킵하고 타이핑 표시
- persona_code seoyeon→P1(시드 페르소나)
- puppeteer 실화면 검증: 회기시작→말걸기→서연 실응답 확인
2026-06-26 00:24:18 +09:00
Yun Chan
c57c34ade6 feat(api): DB off degraded 기동(store 폴백) + dev 인증 우회 — 풀 API 라이브 E2E 통과
- main lifespan: init_pool 실패해도 store 인메모리 폴백으로 degraded 기동
- deps: environment=dev면 쿠키 없어도 더미 학습자(로컬 라이브). prod는 401 유지
- 실증: POST /sessions(201) → turn → 서연 client_reply, safety_flagged=false
2026-06-25 23:51:59 +09:00
Yun Chan
eca1f6a413 fix(web): 기본 라이트 테마 고정 — OS 다크선호 미추종(다크는 명시 토글로만) 2026-06-25 23:44:33 +09:00
Yun Chan
24b1b7a6e1 feat: P1 풀빌드 — React 프론트 7화면 + 백엔드 상담루프·평가·음성·RAG
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턴 — 좋은/나쁜 상담에 차등 반응 실증
2026-06-25 23:37:22 +09:00
Yun Chan
859ab26314 docs: 개발 계획 오버뷰 대시보드(진행현황·로드맵·산출물·리스크) 2026-06-25 22:23:01 +09:00
Yun Chan
84eb6e2173 feat(engine): claude -p 상주 멀티턴 엔진 게이트웨이 + 실동작 검증
- engine_gateway/gateway.py: 회기당 claude -p 상주 프로세스(stream-json), 턴 직렬, budget 제한
- 세션 생성/턴/종료 HTTP API(FastAPI, :9099)
- 검증: 멀티턴 컨텍스트 유지 + prompt caching 재사용(턴2 +$0.07) 실동작 확인
2026-06-25 21:43:27 +09:00
Yun Chan
d5b86c5f89 feat(docs): 전체 페이지 레이아웃 시안 추가
- login/learner-home/session-review/professor/admin/settings
- session-v2(밝은 에디토리얼 톤으로 재제작, 기존 어두운 stage 대체)
- 전부 동일 디자인 토큰(세이지틸+테라코타), 윤찬 철칙 준수
2026-06-25 21:27:24 +09:00
Yun Chan
204726f707 feat(infra): 이식 가능한 Docker 배포 구성
- docker-compose.yml: web/api/db(pgvector)/rag/proxy 한 방 기동
- 엔진 어댑터 분리: ENGINE_URL/ENGINE_MODE로 로컬 claude -p ↔ API 전환(코드 무수정 이전)
- Caddy: 자동 TLS + SSE flush/WSS 무버퍼(실시간 음성)
- DEPLOYMENT.md: 이식/엔진분리/스케일업/외부노출 가이드
- 페이지 레이아웃 시안 6종(login/learner-home/session-review/professor/admin/settings)
2026-06-25 21:24:19 +09:00
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