세션 라이프사이클

세션은 Whisperer에서 작업의 핵심 단위입니다. 클라이언트가 회의를 듣고, 음성을 받아쓰고, LLM 응답을 받는 시간 구간을 말합니다. 라이프사이클을 이해하면 시작/일시정지를 올바르게 사용하고, 대시보드의 상태를 해석하며, 문제를 해결하는 데 도움이 됩니다.

이 글을 읽어야 하는 경우

다음을 이해하고 싶다면 이 글을 읽어 보세요.

  • 회의의 각 단계에서 데이터에 어떤 일이 일어나는지;
  • 응답이 가끔 지연되는 이유와 스크립트가 언제 저장되는지;
  • 클라이언트와 서버 간 연결이 어떻게 작동하는지.

세션 단계

1. 시작

"시작" 버튼(또는 단축키)을 누르면 클라이언트가 활성 모드로 전환됩니다.

  1. 클라이언트가 서버와의 연결을 열고 기기 식별자와 토큰을 전송합니다.
  2. 서버가 구독과 분 단위 할당량을 검증합니다. 검사를 통과하면 세션 시작을 확인하고 세션 식별자를 반환합니다.
  3. 클라이언트가 오디오 캡처를 활성화하고 녹음을 시작합니다.

2. 녹음 (스트리밍)

오디오는 약 0.8초마다 짧은 청크 단위로 전송됩니다. 각 청크에는 화자(사용자 또는 상대방)가 표시됩니다.

서버는 청크를 버퍼링한 뒤 인식을 위해 전송합니다. 스크립트는 실시간으로 클라이언트에 반환되어 LiveTranscriptStrip에 표시됩니다.

3. 요청과 응답

사용자가 "질문하기"(또는 단축키)를 누르면 클라이언트가 현재 스크립트 컨텍스트와 함께 ask 프레임을 전송합니다.

서버는 시스템 프롬프트(역할 프롬프트 → 사용자 컨텍스트 → 지식 베이스의 RAG)를 조립하여 LLM에 질의합니다. 응답은 스트리밍됩니다. 텍스트는 생성되는 대로 나타나며 Markdown 지원과 페이지 처리(응답이 여러 개일 경우)와 함께 AnswerArea에 즉시 표시됩니다.

4. 일시정지

"일시정지"를 누르면 오디오 캡처가 멈추지만 WebSocket 연결은 열린 상태로 유지됩니다. 세션 타이머가 일시정지됩니다. "재개"를 눌러 다시 시작합니다.

5. 종료

"중지"를 누르거나 클라이언트를 닫으면:

  1. 클라이언트가 session.end 프레임을 전송합니다.
  2. 서버가 버퍼링된 스크립트와 완료된 응답 목록을 데이터베이스로 플러시합니다.
  3. WebSocket이 닫힙니다.
  4. 웹 대시보드의 기록 섹션에 전체 스크립트와 분석과 함께 세션이 나타납니다.

📸 [스크린샷: 녹음 모드의 Whisperer 패널 — LiveTranscriptStrip과 제어 버튼이 보이는 모습]

데이터 저장

기본적으로 스크립트와 LLM 응답은 데이터베이스에 저장되며 대시보드에서 접근할 수 있습니다. no-logs 모드가 활성화되어 있으면 세션 종료 후 데이터가 삭제됩니다. 다만 소비된 분은 여전히 차감됩니다.

일반적인 오류

오류 원인 해결 방법
세션이 시작되지 않음 이메일 미확인 또는 활성 구독 없음 계정 상태와 할당량 확인
"상대방의 소리가 들리지 않음" 화면 녹화 권한 미부여(macOS) 또는 시스템 오디오 캡처 불가(Windows) macOS 권한 / Windows
스크립트가 나타나지 않음 인터넷 연결 불량 또는 WebSocket 손실 네트워크 확인 후 세션 재시작
LLM 응답이 너무 오래 걸림 AI 공급자 과부하 또는 느린 모델 선택 설정에서 모델 전환

모범 사례

  • "중지" 버튼으로 세션을 명시적으로 종료하세요. 이렇게 하면 데이터가 기록에 저장됨이 보장됩니다.
  • 회의 중 긴 휴식 시간에는 일시정지하세요. 타이머가 멈추고 분이 낭비되지 않습니다.
  • 스크립트 저장을 원하지 않는 기밀 회의에는 no-logs를 사용하세요.

관련 글