sequenceDiagram
loop 대화 세션
participant 사용자 as 아이(사용자)
participant 프론트엔드
participant 백엔드
participant STT
participant DB
participant GPT
participant VectorDB
participant TTS
participant Queue as 요약 큐
사용자->>+프론트엔드: 말하기 시작
프론트엔드->>DB: 새 대화 목록 추가
프론트엔드-->>-백엔드: 음성 데이터 전달
백엔드->>+STT: STT API 호출
STT-->>-백엔드: 텍스트 결과
백엔드->>+DB: 페르소나 데이터 조회
DB-->>-백엔드: 페르소나 정보
백엔드->>+GPT: 초기 대화 내용 생성
GPT-->>-백엔드: 초기 대화 텍스트
백엔드->>DB: 입력 텍스트 저장
백엔드->>+VectorDB: 관련 정보 검색
VectorDB-->>-백엔드: 검색 결과
백엔드->>+GPT: 페르소나에 맞게 대화 수정
GPT-->>-백엔드: 최종 대화 텍스트
백엔드->>DB: 응답 텍스트 저장
백엔드->>+TTS: TTS API 호출 (음성 변환)
TTS-->>-백엔드: 음성 데이터
백엔드->>+프론트엔드: 음성 데이터 전송
프론트엔드-->>-사용자: 음성 재생
alt 대화 종료
사용자->>프론트엔드: 대화 종료 선언
프론트엔드->>백엔드: 종료 신호
백엔드->>Queue: 요약 작업 추가
end
end