Feat: 대화기록 연동 및 구현#20
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎯 작업 내용
주요 변경사항
live_messages로 전달하도록 연결했습니다.member_id를 기준으로DecisionTimeline과Dialogue저장 흐름을 정리했습니다.MeetingAnalysis/Dialogue/Application저장이 중복 실행되어도 누적되지 않도록 idempotent하게 보강했습니다.Application.id를 포함해/api/meeting-analysis/embeddings를 호출하도록 통합했습니다.DialogueDTO.timestamp를 회의 시작 시각 기준 경과 시간(mm:ss)으로 변경했습니다.TranscribeApplicationRunResponse전체 로그를 추가했습니다.상세 내용
실시간 발화 임시 저장 및 FastAPI 전달
AUDIO_TEXT발화를 메모리에 임시 저장하는 저장소를 추가했습니다.payload.is_final == false인 interim 발화는 저장하지 않도록 가드했습니다.live_messagesJSON으로 직렬화해 FastAPI 전사 요청에 함께 전달합니다.FastAPI 전사 응답 기반 발화자 매핑 정리
speaker_id/speaker문자열을 더 이상 추정 매핑하지 않고,member_id를 그대로 사용하도록 변경했습니다.DecisionTimeline.memberId는 FastAPI가 내려준member_id를 그대로 저장합니다.Dialogue는memberId가 유효한 경우에만 저장하고, 매칭 실패한 세그먼트는 skip합니다.분석 결과 저장 흐름 정리
MeetingAnalysis는 기존 값이 있으면 update, 없으면 insert 하도록 정리했습니다.Dialogue는 bulk delete/saveAll 대신meeting.getDialogues().clear()+addAll()방식으로 JPA orphanRemoval에 맡기도록 변경했습니다.Application저장은 기존 데이터를 먼저 삭제한 뒤 다시 저장하는 진짜 replace 방식으로 바꿨습니다.ApplicationBase,ApplicationTimeline,DecisionBase,DecisionTimeline의 중복 누적을 막기 위해 회의 기준 삭제 메서드를 추가했습니다.Application.id를 기반으로 FastAPI/api/meeting-analysis/embeddings를 호출해 임베딩 저장을 연결했습니다.회의 히스토리 응답 정리
DialogueDTO.timestamp를speechDateTime의 절대 시각이 아니라 회의 시작 시각 기준 경과 시간으로 변경했습니다.02:31형태로 반환합니다.✅ 체크리스트
📋 API 명세서
💬 리뷰 요청사항 (선택)
📚 참고 자료 (선택)