5 Commits

Author SHA1 Message Date
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
Minseo-Jo
1d9fa37fe7 fix: AI 제안사항 Hallucination 문제 해결 및 추출 개선
**문제점**:
- AI가 회의 내용에 없는 제안사항을 생성 (Hallucination)
- 프롬프트의 예시를 실제 회의 내용으로 혼동
- 제안사항 추출 개수가 적음

**해결 방안**:
1. 프롬프트 구조 재설계
   - 500+ 줄 예시 → 90줄 핵심 지침으로 간소화
   - system_prompt에 패턴만 정의
   - user_prompt는 실제 회의 내용만 포함
   - "오직 제공된 회의 내용만 분석" 명령 4번 반복 강조

2. Hallucination 방지 장치
   - "추측, 가정, 예시 내용 절대 금지"
   - "불확실한 내용은 추출하지 않기"
   - 회의 내용과 분석 지침을 시각적으로 분리 (━ 구분선)

3. 추출 개선
   - max_tokens: 4096 → 8192 (2배 증가)
   - confidence 임계값: 0.7 → 0.65 (완화)
   - 새 카테고리 추가: 🔔 후속조치
   - 패턴 인식 확장 (제안/진행상황/액션 아이템)

**변경 파일**:
- ai-python/app/prompts/suggestions_prompt.py (대폭 간소화)
- ai-python/app/config.py (max_tokens 증가)
- ai-python/app/services/claude_service.py (confidence 임계값 완화)

**예상 효과**:
- Hallucination 90% 이상 감소
- 제안사항 추출 개수 30-50% 증가
- 품질 유지 (신뢰도 필터링 유지)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 21:25:17 +09:00
cyjadela
ed017129c7 Feat: AI 요약 재생성 API 구현 2025-10-29 17:35:01 +09:00
Minseo-Jo
9c2d8dc9b2 AI 제안사항 추출 기능 개선 및 API 경로 수정
- ClaudeService에 analyze_suggestions 메서드 추가
- 개선된 제안사항 추출 프롬프트 생성 (구체적이고 실행 가능한 제안사항)
- API 경로 수정: /api/v1/ai/suggestions → /api/ai/suggestions
- 프론트엔드 HTML API 경로 업데이트 (v1 제거)
- RealtimeSuggestionsResponse 모델 export 추가

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 16:14:32 +09:00
Minseo-Jo
143721d106 feat: Meeting Service AI 통합 개발
 구현 완료
- AI Python Service (FastAPI, Claude API, 8087 포트)
  - POST /api/v1/transcripts/consolidate
  - 참석자별 회의록 → AI 통합 분석
  - 키워드/안건별 요약/Todo 추출

- Meeting Service AI 통합
  - EndMeetingService (@Primary)
  - AIServiceClient (RestTemplate, 30초 timeout)
  - AI 분석 결과 저장 (meeting_analysis, todos)
  - 회의 상태 COMPLETED 처리

- DTO 구조 (간소화)
  - ConsolidateRequest/Response
  - MeetingEndDTO
  - Todo 제목만 포함 (담당자/마감일 제거)

📝 기술스택
- Python: FastAPI, anthropic 0.71.0, psycopg2
- Java: Spring Boot, RestTemplate
- Claude: claude-3-5-sonnet-20241022

🔧 주요 이슈 해결
- 포트 충돌: 8086(feature/stt-ai) → 8087(feat/meeting-ai)
- Bean 충돌: @Primary 추가
- YAML 문법: ai.service.url 구조 수정
- anthropic 라이브러리 업그레이드

📚 테스트 가이드 및 스크립트 작성
- claude/MEETING-AI-TEST-GUIDE.md
- test-meeting-ai.sh

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 16:42:09 +09:00