mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 17:16:25 +00:00
for merge
This commit is contained in:
commit
663999a139
4
.gitignore
vendored
4
.gitignore
vendored
@ -58,3 +58,7 @@ logs/
|
||||
**/logs/
|
||||
*.log
|
||||
**/*.log
|
||||
|
||||
# Deprecated/Backup directories
|
||||
ai-java-back/
|
||||
ai/
|
||||
|
||||
@ -25,6 +25,11 @@ public class TranscriptSegmentReadyEvent {
|
||||
*/
|
||||
private String meetingId;
|
||||
|
||||
/**
|
||||
* 세션 ID
|
||||
*/
|
||||
private String sessionId;
|
||||
|
||||
/**
|
||||
* 변환 텍스트 세그먼트 ID
|
||||
*/
|
||||
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.
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