Skip to content

Conversation

@RoundTable02
Copy link
Collaborator

#️⃣ 연관된 이슈

MM-175

📝 작업 내용

Changed

  • AI 응답 메시지 분할 저장: 채팅 스트리밍 완료 시 fullAnswer를 문장부호(. ! ?) 기준으로 분할하여 세 문장씩 그룹화한 후 각각을 ChatMessage로 저장하도록 변경
  • SSE 이벤트 payload 변경: ai_response_id 이벤트의 payload가 단일 Long에서 List<Long>으로 변경됨

Added

  • ChatMessageSplitter 유틸 클래스: 문장부호 기준 분할 및 세 문장 그룹화 기능
  • SaveChatMessagePort.saveChatMessages(): ChatMessage bulk 저장 메서드
  • ChatSseSender.sendAiResponseIds(): 다건 messageId 전송 메서드

Breaking Changes

  • 클라이언트 업데이트 필요: ai_response_id SSE 이벤트를 수신하는 클라이언트는 payload를 List<Long>으로 파싱하도록 수정해야 함
    • 기존: { "event": "ai_response_id", "data": 123 }
    • 변경: { "event": "ai_response_id", "data": [123, 124, 125] }

Side Effects

  • 하나의 AI 응답이 여러 개의 ChatMessage로 분할되어 저장됨
  • 메시지 조회 시 기존과 동일하게 동작하지만, 하나의 응답이 여러 레코드로 분리됨
  • 문장부호가 없는 응답은 하나의 ChatMessage로 저장됨 (기존 동작 유지)

Technical Details

  • 문장 분할 규칙: 문장부호(. ! ?) 하나만 나와도 문장 종결로 간주
  • 그룹화 규칙: 세 문장씩 하나의 ChatMessage로 그룹화 (예: 10문장 → 4개 ChatMessage)
  • 저장 방식: 모든 ChatMessage를 한 번에 bulk 저장 (saveAll 사용)
  • 하위 호환성: 기존 sendAiResponseId(Long) 메서드는 유지되어 다른 코드에 영향 없음

@RoundTable02 RoundTable02 self-assigned this Jan 16, 2026
@RoundTable02 RoundTable02 merged commit 5669961 into qa Jan 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant