@startuml !theme mono title 02. 실시간 회의록 작성 - 이벤트스토밍 플로우 actor "회의 참석자" as Participant participant "회의록 시스템" as System participant "AI 음성인식 엔진" as STT participant "LLM" as LLM == 음성 녹음 시작 == Participant -> System : 발언 시작 System -> System : **커맨드**: 음성 녹음 시작하기\n(데이터: 오디오 스트림, 회의 ID) activate System System --> Participant : **이벤트**: 음성 녹음이 시작됨\n(데이터: 녹음 ID, 시작 시간) deactivate System == 발언 인식 및 텍스트 변환 == System -> STT : **커맨드**: 발언 인식 요청하기\n(데이터: 음성 데이터, 화자 정보, 타임스탬프) activate STT STT -> STT : 음성 분석 STT --> System : **이벤트**: 발언이 인식됨\n(데이터: 발언 ID, 화자, 발언 내용, 타임스탬프) deactivate STT note right of STT **Policy/Rule**: 발언이 인식되면 → AI가 실시간으로 텍스트 변환 end note System -> STT : **커맨드**: 텍스트 변환 요청하기\n(데이터: 인식된 발언, 언어 설정) activate STT STT -> STT : 음성-텍스트 변환 STT --> System : **이벤트**: 텍스트가 변환됨\n(데이터: 텍스트 ID, 변환된 내용, 정확도) deactivate STT == AI 회의록 자동 작성 == note right of LLM **Policy/Rule**: 텍스트가 변환되면 → 자동으로 회의록 구조에 맞춰 정리 end note System -> LLM : **커맨드**: 회의록 자동 작성하기\n(데이터: 텍스트, 회의 맥락, 구조) activate LLM LLM -> LLM : 회의 내용 이해 LLM -> LLM : 문장 다듬기 LLM -> LLM : 구조화 (주제, 발언자, 내용) LLM --> System : **이벤트**: 회의록 초안이 생성됨\n(데이터: 회의록 버전, 생성 시간, 구조화된 내용) deactivate LLM == 참석자 실시간 확인 == System --> Participant : **이벤트**: 회의록이 업데이트됨\n(실시간 동기화) Participant -> System : **커맨드**: 회의록 확인하기\n(데이터: 회의록 ID, 뷰어 ID) activate System System --> Participant : **이벤트**: 참석자가 회의록을 확인함\n(데이터: 뷰어 ID, 확인 시간) deactivate System note over Participant, LLM **Actor**: 회의 참석자, AI 시스템 **External System**: AI 음성인식 엔진 (Whisper, Google STT), LLM **커맨드 데이터**: 음성 데이터, 화자 정보, 회의 맥락 **이벤트 데이터**: 발언 내용, 텍스트, 회의록 버전 end note @enduml