mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 09:06:24 +00:00
주요 변경사항:
1. AI 서비스 설정
- claude_max_tokens: 8192 → 25000으로 증가 (회의록 통합을 위한 충분한 토큰 확보)
- AI 서비스 타임아웃: 30초 → 60초로 증가
2. 프롬프트 개선 (consolidate_prompt.py)
- JSON 생성 전문가 역할 추가
- JSON 이스케이프 규칙 명시 (큰따옴표, 줄바꿈, 역슬래시)
- Markdown 볼드체(**) 제거하여 JSON 파싱 오류 방지
- 문자열 검증 지시사항 추가
3. JSON 파싱 개선 (claude_service.py)
- 4단계 재시도 전략 구현:
* 이스케이프되지 않은 개행 문자 자동 수정
* strict=False 옵션으로 파싱
* 잘린 응답 복구 시도
* 제어 문자 제거 후 재시도
- 디버깅 로깅 강화 (Input/Output Tokens, Stop Reason)
- 파싱 실패 시 전체 응답을 파일로 저장
4. 회의 종료 로직 개선 (EndMeetingService.java)
- 통합 회의록 생성 또는 조회 로직 추가 (userId=NULL)
- Minutes 테이블에 전체 결정사항 저장
- AgendaSection에 minutesId 정확히 매핑
5. 테스트 데이터 추가
- AI 회의록 요약 테스트용 SQL 스크립트 작성
- 3명 참석자, 3개 안건의 현실적인 회의 시나리오
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
notification 메일 알림발송
아래와 같이 메일발송 Email List를 loop돌려서 event 객체를 생성한 후에 publishNotificationRequest 메소드를 통해 Event 메세지 발행하시면 됩니다.
// 각 참석자에게 개별 알림 이벤트 발행
for (String participantEmail : participants) {
NotificationRequestEvent event = NotificationRequestEvent.builder()
.notificationType("MEETING_INVITATION")
.recipientEmail(participantEmail)
.recipientId(participantEmail)
.recipientName(participantEmail)
.title("회의 초대")
.message(String.format("'%s' 회의에 초대되었습니다. 일시: %s, 장소: %s",
title, startTime, location))
.relatedEntityId(meetingId)
.relatedEntityType("MEETING")
.requestedBy(organizerId)
.requestedByName(organizerName)
.eventTime(LocalDateTime.now())
.build();
publishNotificationRequest(event);
}