mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 10:16:24 +00:00
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>
This commit is contained in:
parent
5b4ca011c3
commit
e9e03e1ff8
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -26,7 +26,7 @@ claude_service = ClaudeService()
|
||||
|
||||
### 동작 방식
|
||||
1. Redis에서 누적된 회의 텍스트 조회 (5초마다)
|
||||
2. 임계값(10개 세그먼트) 이상이면 Claude API로 분석
|
||||
2. 임계값(4개 세그먼트, 약 60초) 이상이면 Claude API로 분석
|
||||
3. 분석 결과를 SSE 이벤트로 전송
|
||||
|
||||
### SSE 이벤트 형식
|
||||
|
||||
@ -42,8 +42,8 @@ class Settings(BaseSettings):
|
||||
# 로깅
|
||||
log_level: str = "INFO"
|
||||
|
||||
# 분석 임계값 (MVP 수준)
|
||||
min_segments_for_analysis: int = 3 # 3개 세그먼트 = 약 15-30초 분량의 대화
|
||||
# 분석 임계값 (충분한 맥락 확보)
|
||||
min_segments_for_analysis: int = 4 # 4개 세그먼트 (약 60초, 제안사항 추출에 충분한 맥락)
|
||||
text_retention_seconds: int = 300 # 5분
|
||||
|
||||
class Config:
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -1,43 +1,59 @@
|
||||
"""AI 제안사항 추출 프롬프트"""
|
||||
"""AI 제안사항 추출 프롬프트 (MVP 최적화)"""
|
||||
|
||||
|
||||
def get_suggestions_prompt(transcript_text: str) -> tuple[str, str]:
|
||||
"""
|
||||
회의 텍스트에서 AI 제안사항을 추출하는 프롬프트 생성
|
||||
회의 텍스트에서 AI 제안사항을 추출하는 프롬프트 생성 (MVP용)
|
||||
|
||||
Returns:
|
||||
(system_prompt, user_prompt) 튜플
|
||||
"""
|
||||
|
||||
system_prompt = """당신은 회의 내용 분석 전문가입니다.
|
||||
회의 텍스트를 분석하여 실행 가능한 제안사항을 추출해주세요."""
|
||||
system_prompt = """당신은 회의 내용에서 실행 가능한 액션 아이템을 찾는 전문가입니다.
|
||||
복잡한 분석보다는, 명확하게 "해야 할 일"이 언급된 부분을 빠르게 찾아내는 것이 목표입니다."""
|
||||
|
||||
user_prompt = f"""다음 회의 내용을 분석하여 **구체적이고 실행 가능한 제안사항**을 추출해주세요.
|
||||
user_prompt = f"""다음 회의 대화에서 **실행해야 할 제안사항**을 찾아주세요.
|
||||
|
||||
# 회의 내용
|
||||
{transcript_text}
|
||||
|
||||
---
|
||||
|
||||
# 제안사항 추출 기준
|
||||
1. **실행 가능성**: 바로 실행할 수 있는 구체적인 액션 아이템
|
||||
2. **명확성**: 누가, 무엇을, 언제까지 해야 하는지 명확한 내용
|
||||
3. **중요도**: 회의 목표 달성에 중요한 사항
|
||||
4. **완결성**: 하나의 제안사항이 독립적으로 완결된 내용
|
||||
# 제안사항을 찾는 간단한 방법
|
||||
|
||||
# 제안사항 유형 예시
|
||||
- **후속 작업**: "시장 조사 보고서를 다음 주까지 작성하여 공유"
|
||||
- **의사결정 필요**: "예산안 3안 중 최종안을 이번 주 금요일까지 결정"
|
||||
- **리스크 대응**: "법률 검토를 위해 법무팀과 사전 협의 필요"
|
||||
- **일정 조율**: "다음 회의를 3월 15일로 확정하고 참석자에게 공지"
|
||||
- **자료 준비**: "경쟁사 분석 자료를 회의 전까지 준비"
|
||||
- **검토 요청**: "초안에 대한 팀원들의 피드백 수집 필요"
|
||||
- **승인 필요**: "최종 기획안을 경영진에게 보고하여 승인 받기"
|
||||
아래 패턴이 포함된 문장을 찾으세요:
|
||||
|
||||
# 제안사항 작성 가이드
|
||||
- **구체적으로**: "검토 필요" (X) → "법무팀과 계약서 조항 검토 미팅 잡기" (O)
|
||||
- **명확하게**: "나중에 하기" (X) → "다음 주 화요일까지 완료" (O)
|
||||
- **실행 가능하게**: "잘 되길 바람" (X) → "주간 진행상황 공유 미팅 설정" (O)
|
||||
## ✅ 명확한 액션 패턴
|
||||
- "~해야 한다", "~해야 할 것 같다"
|
||||
- "~하기로 했다", "~하기로 결정"
|
||||
- "~할 예정이다", "~할 계획이다"
|
||||
- "~해주세요", "~부탁드립니다"
|
||||
- "~하도록 하겠습니다", "~진행하겠습니다"
|
||||
- "~확인해 보겠습니다", "~검토하겠습니다"
|
||||
|
||||
## ⏰ 시간 관련 표현
|
||||
- "다음 주까지", "이번 주 금요일까지"
|
||||
- "내일", "오늘 중으로"
|
||||
- "회의 전까지", "발표 전에"
|
||||
|
||||
## 👤 담당자 관련 표현
|
||||
- "김 대리가", "박 과장님이"
|
||||
- "우리 팀에서", "마케팅팀이"
|
||||
- "제가", "저희가"
|
||||
|
||||
# 실제 회의 예시로 학습하기
|
||||
|
||||
## 예시 1
|
||||
**회의 내용**: "마케팅 예산안을 김 팀장님이 다음 주 수요일까지 검토해서 공유해 주시기로 했습니다."
|
||||
**추출**: "마케팅 예산안을 다음 주 수요일까지 검토하여 공유" (담당: 김 팀장)
|
||||
|
||||
## 예시 2
|
||||
**회의 내용**: "그럼 제가 내일 오전에 고객사에 연락해서 미팅 일정을 잡도록 하겠습니다."
|
||||
**추출**: "고객사에 연락하여 미팅 일정 조율" (시간: 내일 오전)
|
||||
|
||||
## 예시 3
|
||||
**회의 내용**: "법무팀과 계약서 검토를 이번 주 내로 끝내야 할 것 같아요."
|
||||
**추출**: "법무팀과 계약서 검토 진행" (기한: 이번 주 내)
|
||||
|
||||
---
|
||||
|
||||
@ -59,14 +75,24 @@ def get_suggestions_prompt(transcript_text: str) -> tuple[str, str]:
|
||||
}}
|
||||
```
|
||||
|
||||
# 중요 규칙
|
||||
1. **회의 내용에 명시된 사항만** 추출 (추측하지 않기)
|
||||
2. **최소 3개, 최대 7개**의 제안사항 추출
|
||||
3. 중요도가 높은 순서로 정렬
|
||||
4. confidence는 **0.7 이상**만 포함
|
||||
5. 각 제안사항은 **50자 이상** 구체적으로 작성
|
||||
6. JSON만 출력 (```json이나 다른 텍스트 포함 금지)
|
||||
# MVP 추출 규칙 (쉽고 명확하게)
|
||||
|
||||
이제 위 회의 내용에서 제안사항을 JSON 형식으로 추출해주세요."""
|
||||
1. **위에 제시된 패턴을 먼저 찾으세요**
|
||||
- "~해야", "~하기로", "~할 예정", "~부탁" 등
|
||||
|
||||
2. **실제로 언급된 내용만 추출** (추측 금지)
|
||||
|
||||
3. **1개 이상 추출** (없으면 빈 배열 반환)
|
||||
|
||||
4. **confidence 기준 완화**: 0.6 이상이면 OK
|
||||
|
||||
5. **길이 제한 완화**: 20자 이상이면 OK
|
||||
|
||||
6. **JSON만 출력** (```json, 주석, 설명 모두 금지)
|
||||
|
||||
---
|
||||
|
||||
이제 위 회의 내용에서 제안사항을 JSON 형식으로 추출하세요.
|
||||
명확한 액션 패턴("~해야", "~하기로" 등)이 있는 문장을 찾아 추출하면 됩니다."""
|
||||
|
||||
return system_prompt, user_prompt
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user