110 Commits

Author SHA1 Message Date
Cho Yoon Jin
a9baf127cd
Merge pull request #69 from hwanny1128/fix/dashboard
Fix: 나의 회의록 참가자 수 조치
2025-10-31 15:42:56 +09:00
cyjadela
a96e3a6833 Fix: 나의 회의록 참가자 수 조치 2025-10-31 15:41:48 +09:00
djeon
aa2cbf54b4 for merge 2025-10-31 14:55:33 +09:00
djeon
761dddc466 fix: fix event hub error 2025-10-31 14:55:00 +09:00
djeon
f8e41309a2 for merge 2025-10-31 14:35:53 +09:00
cyjadela
82c6873450 Fix: 대시보드 조회 API 장소 해결 2025-10-31 14:06:55 +09:00
cyjadela
af53c80439 Fix: meeting 빌드 에러 해결 2025-10-31 13:36:05 +09:00
Cho Yoon Jin
3d6742505a
Merge pull request #64 from hwanny1128/fix/dashboard
Fix: 회의록 목록 조회 API 수정
2025-10-31 13:15:06 +09:00
cyjadela
44f02a2cc6 Fix: 회의록 목록 조회 API 수정 2025-10-31 13:14:18 +09:00
Minseo-Jo
c4bd8064ec 회의 종료 시 AI 응답 처리 개선
- MeetingEndDTO.TodoSummaryDTO에 assignee 필드 추가
- AI 응답의 todos를 직접 DTO로 변환하여 반환
- 안건별 todos 매핑 로직 개선

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 12:52:15 +09:00
Cho Yoon Jin
5515909206
Merge pull request #63 from hwanny1128/fix/dashboard
Fix: dashboard 대시보드 조회 API 수정
2025-10-31 12:13:14 +09:00
cyjadela
ec73def9d1 Fix: 대시보드 조회 내 회의록 로직 수정 2025-10-31 12:12:16 +09:00
cyjadela
1024fbd25d Fix: 회의록 목록 조회 수정 중 2025-10-31 11:48:44 +09:00
Cho Yoon Jin
db16306b06
Merge pull request #62 from hwanny1128/fix/dashboard
Fix: 대시보드 최근 회의 로직 수정
2025-10-31 11:10:25 +09:00
Minseo-Jo
b5159ef74e AI 제안사항 Hallucination 문제 해결 및 추출 개선
주요 변경사항:
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>
2025-10-31 11:09:22 +09:00
cyjadela
d647cbc4bb Fix: 대시보드 최근 회의 로직 수정 2025-10-31 11:08:35 +09:00
hjmoons
c00f1b03b9 Fix: PostgreSQL 예약어 'order' 컬럼명 이스케이프 처리
문제:
- PostgreSQL에서 order는 예약어
- INSERT 구문에서 'syntax error at or near "order"' 오류 발생

해결:
- @Column(name = "\"order\"") 로 수정
- SQL 생성 시 "order"로 이스케이프되어 예약어 충돌 방지

영향:
- MinutesSectionEntity INSERT/UPDATE 정상 동작
- 회의 메모 저장 기능 복구

File: meeting/src/main/java/com/unicorn/hgzero/meeting/infra/gateway/entity/MinutesSectionEntity.java:40
2025-10-30 18:54:40 +09:00
Minseo-Jo
7e3f7b9471 fix: AI 회의록 통합 - decisions 필드 및 Todo assignee 필드 추가
- AgendaSummaryDTO에 decisions 필드 추가 (안건별 결정사항 배열)
- ExtractedTodoDTO에 assignee 필드 추가 (담당자 정보)
- EndMeetingService에서 AI 추출 담당자 정보 매핑
- Python AI 서비스 모델 및 프롬프트 업데이트
2025-10-30 18:44:58 +09:00
djeon
e87f916657 fix: user id 저장 추가 (회의시작 API) 2025-10-30 18:43:54 +09:00
Minseo-Jo
0caa1ec3b6 Feat: AI 서비스 통합 및 회의록 기능 개선
- AI 서비스와 Meeting 서비스 통합 개선
  - AgendaSummaryDTO에 decisions 필드 추가 (안건별 결정사항 배열)
  - EndMeetingService에서 AI 서비스 타임아웃 처리 개선
  - AIServiceClient에 상세한 에러 로깅 추가

- 회의록 consolidate 프롬프트 개선
  - Todo 추출 로직 강화 (자연스러운 표현 인식)
  - 안건별 decisions 필드 추가 (대시보드 표시용)
  - 담당자 패턴 인식 개선

- Kubernetes 배포 설정 개선
  - meeting-service.yaml에 AI_SERVICE_URL 환경변수 추가
  - AI_SERVICE_TIMEOUT 설정 추가

- 데이터베이스 관리 SQL 스크립트 추가
  - check-agenda-sections.sql: 안건 섹션 확인
  - cleanup-test-data.sql: 테스트 데이터 정리
  - insert-test-data-final.sql: 최종 테스트 데이터

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 18:07:57 +09:00
djeon
eb8818494f Fix: EventHub 설정 조건 수정으로 실제 이벤트 발행 활성화
문제:
- @ConditionalOnExpression의 SpEL 표현식 오류로 EventHubConfig가 활성화되지 않음
- NoOpEventPublisher가 대신 사용되어 Event Hub로 메시지가 발행되지 않음

해결:
- @ConditionalOnProperty 사용으로 변경
- eventhub.connection-string 속성 존재 여부로 Bean 활성화 제어

영향:
- EventHub 설정이 있을 때 EventHubPublisher가 정상 활성화됨
- 회의 시작/종료, Todo 할당 등의 이벤트가 Event Hub로 발행됨

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 16:24:46 +09:00
Minseo-Jo
e9e03e1ff8 Refactor: AI 서비스 Python 구현 및 디렉토리 구조 변경
- ai-python: FastAPI 기반 AI 서비스 구현
  - 실시간 회의 제안 기능 추가
  - Claude API 통합
  - EventHub 및 Redis 연동

- ai-java-back: 기존 Java AI 서비스 백업 디렉토리로 이동
  - Spring Boot 기반 구현 보존

- ai 디렉토리: Java 서비스 파일 삭제 처리

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 10:02:33 +09:00
Cho Yoon Jin
8f14b2d2dd
Merge pull request #36 from hwanny1128/feat/meeting
Chore: 회의록 수정 - AI 요약 정보 추가
2025-10-29 18:03:16 +09:00
cyjadela
78d72451fa Chore: 회의록 수정 - AI 요약 정보 추가 2025-10-29 17:58:26 +09:00
Minseo-Jo
c68df2f733 포트 설정 통일: ai-python 서비스 8087 포트로 변경
- ai-python/.env: PORT를 8086에서 8087로 변경
- ai-python/.env.example: PORT를 8086에서 8087로 변경
- meeting/application.yml: AI Service 설정 추가 (기본 포트 8087)
- develop/dev/ai-frontend-integration-guide.md: 문서 업데이트 (8087 포트 반영)

목적: 다른 개발자들의 테스트 환경 통일 및 혼란 방지
2025-10-29 17:45:28 +09:00
cyjadela
24c2507927 Fix: 테이블 변경에 따른 에러 해결 2025-10-29 16:49:02 +09:00
cyjadela
b302076e24 Merge branch 'main' of https://github.com/hwanny1128/HGZero into feat/meeting 2025-10-29 16:25:06 +09:00
cyjadela
7ca0200a1e Chore: 기존 회의록 수정 API 사용 X 2025-10-29 16:12:59 +09:00
cyjadela
f1e9565d5b Feat: 회의록 수정 API 개발 2025-10-29 16:06:32 +09:00
djeon
a84449e88d for merge 2025-10-29 15:33:31 +09:00
djeon
50b4f645e3 for merge 2025-10-29 15:32:33 +09:00
cyjadela
7e2094bcbc Chore: 회의록 상세조회 API - db 변경사항 적용 2025-10-29 15:32:00 +09:00
Minseo-Jo
77ad99bdc7 feat: AgendaSection todos JSON 파싱 로직 추가
- ObjectMapper를 사용하여 todos JSON 문자열을 파싱
- TodoJson DTO 클래스 추가
- parseTodosJson() 메서드 구현
- MeetingStatisticsResponse에서 실제 Todo 개수 계산
- 에러 처리 로직 추가 (파싱 실패 시 빈 리스트 반환)

JSON 구조: [{title, assignee, dueDate, description, priority}]

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 15:26:15 +09:00
Minseo-Jo
093b8751d5 fix: Meeting 서비스 컴파일 에러 수정
- MeetingAiController의 메서드 호출 오류 수정
  - getAgendaSectionsByMeeting() -> getAgendaSectionsByMeetingId()로 변경
  - AgendaSection의 todos, pendingItems가 JSON 문자열이므로 null로 처리
  - getSummary() 메서드가 없어 aiSummaryShort 사용
- GitHub Actions 빌드 에러 해결

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 15:22:22 +09:00
Minseo-Jo
b236067b7c chore: .gitignore에 로그 파일 추가 및 기존 로그 파일 추적 제거
- logs/, *.log 패턴 추가
- 기존 추적되던 로그 파일 제거
- 향후 merge 충돌 방지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 15:16:45 +09:00
Minseo-Jo
d854ce6312 Merge feat/meeting-ai into main - AI 서비스 빌드 에러 수정
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 15:15:04 +09:00
Minseo-Jo
9370d10d68 fix: AI 서비스 빌드 에러 수정 - 사용하지 않는 InMemoryCheckpointStore 클래스 삭제
- Azure Event Hubs 의존성이 필요한 InMemoryCheckpointStore.java 파일 삭제
- 해당 클래스는 프로젝트에서 사용되지 않음
- GitHub Actions 빌드 에러 해결

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 15:14:20 +09:00
Minseo-Jo
6770dd4ad9 Merge feat/meeting-ai into main
회의 종료 API 및 AI 회의록 통합 기능을 main 브랜치에 병합

주요 기능:
- 회의 종료 시 AI 자동 요약 생성
- 안건별 논의사항/결정사항 자동 정리
- 주요 키워드 추출
- Todo 및 보류사항 자동 식별

충돌 해결:
- MinutesSectionEntity: id 필드명으로 통일
- AgendaSection 관련 파일들: feat/meeting-ai 버전 사용
- application.yml: AI Service 포트 8086 설정 유지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 14:49:37 +09:00
Minseo-Jo
e30aa5c116 feat: Meeting AI 통합 - 회의 종료 API 및 AI 회의록 요약 기능 구현
주요 변경사항:
- 회의 종료 API 구현 (POST /api/meetings/{meetingId}/end)
- AI 회의록 통합 요약 기능 구현
- Claude API 연동 및 프롬프트 최적화
- 안건별 요약, 키워드 추출, 결정사항 자동 정리

AI Service (Python):
- Claude 모델 설정: claude-sonnet-4-5-20250929
- 회의록 통합 프롬프트 개선
- AgendaSummary 모델 summary 필드 매핑 수정
- decisions 필드 추가 및 응답 구조 정리
- 입력 데이터 로깅 추가

Meeting Service (Java):
- EndMeetingService AI 통합 로직 구현
- MeetingAnalysis 엔티티 decisions 필드 추가
- AgendaSection opinions 필드 제거
- AI Service 포트 8086으로 설정
- DB 마이그레이션 스크립트 추가 (V7)

테스트 결과:
 회의 종료 API 정상 동작
 AI 응답 검증 (keywords, summary, decisions)
 안건별 요약 및 보류사항 추출
 처리 시간: ~11초, 토큰: ~2,600

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 14:46:41 +09:00
djeon
5859b1c498 fix: change event hub connection string 2025-10-29 14:36:41 +09:00
djeon
c662393261 fix: change eventhub connection string 2025-10-29 14:34:26 +09:00
cyjadela
d0aa6353da Feat: 회의 중 메모 저장 API 구현 2025-10-29 14:08:27 +09:00
cyjadela
764a620980 Chore: 회의록 상세 조회 API - AgendaSection 업데이트 반영 2025-10-29 13:26:20 +09:00
Minseo-Jo
96e09ae83d fix: AgendaSection opinions 필드 제거 및 DB 마이그레이션 스크립트 추가
- AgendaSection 도메인 및 Entity에서 opinions 필드 제거
- ParticipantOpinion 내부 클래스 삭제
- MeetingAiController 및 AgendaSectionResponse에서 opinions 관련 로직 제거
- agenda_sections 테이블 마이그레이션 SQL 스크립트 추가
  * agenda_number: varchar(50) → integer 변환
  * decisions, pending_items, todos: text → json 변환
  * opinions 컬럼 삭제
- 자동 백업 및 롤백 기능 포함

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 11:19:16 +09:00
djeon
3e9dcb8981 fix: enable flyway 2025-10-29 10:51:41 +09:00
cyjadela
77f38abe48 Chore: 회의 시작 API 상태 조건 변경 2025-10-29 10:09:12 +09:00
djeon
01540bca91 push meeting mig sql 2025-10-29 10:05:15 +09:00
Minseo-Jo
621d4c16df 작업 중: Meeting AI 통합 개발 진행 상황 저장 2025-10-29 09:15:23 +09:00
djeon
a0f42bb22d for merge 2025-10-29 06:01:41 +09:00
djeon
77f0bc247b for merge 2025-10-29 05:56:46 +09:00