AI 컨텍스트 로그 대시보드 구현 현황 진행 중
마지막 업데이트 2026-08-04
세션 리플레이는 제외하고, LiveKit/TTS 수업의 AI 컨텍스트를 S3 원본과 DynamoDB 메타데이터로 관리하며 기존 로그 화면에서 조회하는 작업의 현재 상태입니다.
결정된 구조
수업 런타임LiveKit / TTS
Context API검증·세션 상태
S3actor별 JSONL.gz
DynamoDB세션 목록·포인터
아동·진행자·Agent·서버 이벤트는 하나의 파일에 동시 기록하지 않습니다. actor별 원본 파일로 보관하고, 같은 contextSessionId와 시간축으로 조회·분석에서 통합합니다.
ai-context/session/{contextSessionId}/
child/events-0001.ndjson.gz
monitor/events-0001.ndjson.gz
agent/events-0001.ndjson.gz
server/events-0001.ndjson.gz
구현 완료·진행 중 항목
| 영역 | 상태 | 현재 구현 |
|---|---|---|
| 이벤트 계약 | 완료 | actor, runtime, contextSessionId, 시각·순번·이벤트 유형을 정규화한다. transcript/prompt/text 원문은 저장 계약에서 제외하고 길이만 남긴다. |
| S3 키·청크 직렬화 | 완료 | actor별 immutable JSONL gzip 키 생성과 gzip 직렬화 모듈을 추가했다. |
| DynamoDB 세션 모델 | 진행 중 | ACTIVE 세션, actor/chunk 포인터, 이벤트 수, 수업·활동 식별자를 저장하는 접근 모듈을 추가했다. 실제 테이블·TTL·lifecycle rule 배포는 별도 인프라 작업이다. |
| LiveKit 시작 | 연결됨 | /api/livekit/call이 성공적으로 세션을 발급한 뒤 voiceSessionId를 context session으로 사용해 시작 레코드를 만든다. |
| TTS 시작·종료 | 미구현 | TTS 세션 lifecycle의 시작/종료 지점에 같은 context session 생성·완료 처리가 필요하다. |
| 이벤트 실제 적재 | 미구현 | LiveKit agent 및 TTS API의 lifecycle 이벤트를 배치해 S3 청크로 올리는 ingestion 연결이 필요하다. |
| 대시보드 | 진행 중 | 기존 /main/log에 수업 로그와 AI 컨텍스트 탭을 분리했다. AI 탭은 세션 목록과 actor별 원본 다운로드 URL을 제공한다. |
현재 데이터 흐름
LiveKit 수업 시작 → /api/livekit/call 권한·활동 검증 → voiceSessionId 발급 → DynamoDB: AI context session = ACTIVE → LiveKit 연결 정보 반환 향후 lifecycle 적재 → Agent / TTS / child / monitor 이벤트 버퍼 → actor별 S3 JSONL.gz 청크 → DynamoDB chunk 포인터·eventCount 갱신 → 수업 종료: COMPLETED + manifest 확정
현재 주의: 시작 레코드만으로는 S3 로그가 자동 업로드되지 않습니다. 실제 이벤트 청크 적재와 정상·비정상 종료 처리를 연결한 뒤에 운영 로그로 사용할 수 있습니다.
검증
- 원문 transcript/prompt 제외 및 길이 보존 단위 테스트 통과
- actor별 S3 키 생성 단위 테스트 통과
- 수업 시작 시
ACTIVEcontext session 생성 모델 단위 테스트 통과 - 전체 TypeScript 검사는 작업트리의 기존
@ppi/shared해석 오류로 아직 완료되지 않음
다음 구현 순서
- LiveKit agent lifecycle event를 내부 ingestion API로 배치 전송한다.
- TTS 세션 시작·종료와 TTS API 성공/실패/지연 이벤트를 같은 session에 연결한다.
- 종료 시 manifest,
COMPLETED/FAILED상태, actor별 event count를 확정한다. - AI 컨텍스트 탭에 통합 타임라인·세션 상세·통합 export를 추가한다.
- 전용 DynamoDB 테이블, GSI, TTL 및 S3 lifecycle·암호화 정책을 인프라에 배포한다.