,

[AI 음성 상담] 데이터 플로우 5단계 — 각 단계의 실패 모드와 fallback

결론 먼저 — 5단계 × 실패 모드 × 복구 가능성

단계핵심 동작대표 실패복구
1. 사용자 요청인증·세션 토큰 발급토큰 만료 / 권한 부족즉시 재시도 / 안내
2. 라우팅상담 자원에 연결가용 자원 없음대기열 / 다른 시간 안내
3. 음성 채널 수립WebRTC 협상NAT / 방화벽 / SDPTURN fallback
4. STT → LLM → TTS turn음성 turn 처리모델 timeout / 끊김짧은 안내 음성, 작은 모델 재시도
5. 종료 / 요약 / 기록비동기 후처리요약 작업 실패비동기 재시도 큐

각 단계마다 “복구 불가” vs “재시도 가능”을 미리 정해두면, 데모를 짜는 순서가 자연스럽게 잡힌다.

단계 1 — 사용자 요청

대시보드 또는 공유 링크로 통화 시작 의도가 들어온다. 인증·권한 검증 후 세션 토큰 발급. 가장 가벼운 단계지만, 여기서 막히면 통화 자체가 시작되지 않는다.

  • 실패 모드: 토큰 만료, 권한 부족
  • 사용자 영향: 통화가 시작 안 된 상태이므로 단순. “다시 시도하세요” 수준 안내로 충분
  • 복구 비용: 낮음 (UI 단계)

단계 2 — 라우팅

요청을 받아 어느 자원(사람 / AI)에 연결할지 결정. 단순한 1:1 데모에서는 이 단계가 거의 무료지만, 다중 자원으로 확장되면 부하 분산 정책이 들어간다.

  • 실패 모드: 모든 자원이 사용 중 / 라우팅 결정 자체 timeout
  • fallback: 대기열, 가장 단순한 AI 자원으로 회귀

단계 3 — 음성 채널 수립 (WebRTC)

여기서부터 본격적으로 어렵다. SDP Offer/Answer → ICE candidate 수집 → connectivity check → DTLS → SRTP. 6단계 세부는 [WebRTC] 연결의 6단계에서 다뤘다.

  • 실패 모드: ICE 연결 실패, DTLS 인증서 시간 동기 실패, codec 미스
  • 가장 흔한 실패: NAT / 방화벽으로 인한 ICE 실패 → TURN fallback 필수 (STUN/TURN 매트릭스)
  • 이 단계 fallback이 없으면 그 자리에서 사용자 이탈로 직결됨

단계 4 — STT → LLM → TTS turn

한 turn = 한 번의 (사용자 발화 → 응답 음성). 흐름은 다음과 같다.

  1. STT가 partial → final transcript 생성
  2. LLM이 응답 토큰 스트리밍
  3. TTS가 음성 chunk 스트리밍
  • 실패 모드: STT timeout, LLM 응답 지연, TTS 실패
  • fallback: 짧은 “잠시만요” 음성, 더 작은 모델로 재시도, 최후엔 텍스트 표시
  • 이 단계가 음성 상담 latency 거의 전부를 결정 (4구간 latency 분해 참고)

단계 5 — 종료 / 요약 · 기록

통화가 끝난 뒤의 작업. 사용자 입장에서는 이미 끝난 turn이지만, 데이터 활용 측면에서는 가장 중요한 단계 중 하나.

  • 실패 모드: 요약 LLM 호출 실패, 기록 저장 실패
  • fallback: 원시 transcript는 우선 저장, 요약은 비동기 재시도 큐로 위임
  • 복구 시간이 분~시간 단위여도 무방 (eventual consistency 허용)

의사결정 기준 — fallback을 어디까지 넣을 것인가

데모와 실제 시스템에서 가장 큰 차이는 단계 3·4의 fallback 두께다.

  • 학습용 데모: 1번부터 5번까지 행복 경로만 있어도 사용자 영향 적음
  • 작은 PoC: 단계 3에서 TURN fallback만 보강
  • 본격 시스템: 단계 3·4 모두 fallback + 단계 5는 비동기 큐 위임

“먼저 행복 경로를 끝까지 잇고, 그 다음 가장 빈번한 실패부터 메운다”는 순서가 자연스럽다.

개인 메모 — 행복 경로를 먼저 잇는 이유

처음 데모를 만들 때, 모든 단계의 모든 실패 모드를 미리 고민하다가 시작 자체가 늦어진 적이 있다. 1단계에서 토큰이 못 들어오면? 3단계에서 NAT 통과가 안 되면? 4단계에서 LLM이 timeout이면? 이런 순서로 생각하면 머리가 굳고, 어느 단계도 끝까지 흘러가지 않는다.

행복 경로를 한 번 끝까지 흘려보내고 데모가 동작하는 순간을 만든 다음, 그제서야 어떤 실패를 어디서 처리할지 결정하는 게 훨씬 빠르다는 걸 직접 짜보면서 느꼈다. 5단계 매트릭스 자체가 그 결정을 빠르게 도와주는 도구가 되고, 처음부터 매트릭스를 채우려고 하기보다 행복 경로를 잇고 매트릭스를 한 칸씩 채우는 순서가 잘 맞았다.

참고

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다