mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 05:36:23 +00:00
ai-python 포트 8087 완전 통일 및 meeting-ai 테스트 완료
[포트 통일] - ai-python 서비스 포트를 8087로 완전 통일 - 모든 문서에서 8086 참조 제거 - README.md, 개발 가이드 문서 전부 8087로 업데이트 변경 파일: - ai-python/README.md - develop/dev/ai-frontend-integration-guide.md - develop/dev/dev-*.md (5개 파일) [meeting-ai 테스트] 테스트 완료 항목: ✓ 회의록 통합 및 취합 ✓ AI 한줄 요약/상세 요약 생성 ✓ 회의 전체 결정사항 추출 ✓ TODO 자동 추출 (9개) ✓ 통계 정보 생성 ✓ 주요 키워드 추출 (10개) 테스트 파일: - develop/test/meeting-ai-test-data.json (테스트 데이터) - develop/test/consolidate-response.json (API 응답) - develop/test/meeting-ai-test-result.md (상세 결과서)
This commit is contained in:
parent
c68df2f733
commit
ab39e8d4ea
@ -56,10 +56,10 @@ python3 main.py
|
||||
|
||||
```bash
|
||||
# 헬스 체크
|
||||
curl http://localhost:8086/health
|
||||
curl http://localhost:8087/health
|
||||
|
||||
# SSE 스트림 테스트
|
||||
curl -N http://localhost:8086/api/v1/ai/suggestions/meetings/test-meeting/stream
|
||||
curl -N http://localhost:8087/api/v1/ai/suggestions/meetings/test-meeting/stream
|
||||
```
|
||||
|
||||
## 📡 API 엔드포인트
|
||||
@ -123,7 +123,7 @@ ai-python/
|
||||
| `REDIS_HOST` | Redis 호스트 | 20.249.177.114 |
|
||||
| `REDIS_PORT` | Redis 포트 | 6379 |
|
||||
| `EVENTHUB_CONNECTION_STRING` | Event Hub 연결 문자열 | (선택) |
|
||||
| `PORT` | 서비스 포트 | 8086 |
|
||||
| `PORT` | 서비스 포트 | 8087 |
|
||||
|
||||
## 🔍 동작 원리
|
||||
|
||||
@ -136,7 +136,7 @@ ai-python/
|
||||
|
||||
```bash
|
||||
# Event Hub 없이 SSE만 테스트 (Mock 데이터)
|
||||
curl -N http://localhost:8086/api/v1/ai/suggestions/meetings/test-meeting/stream
|
||||
curl -N http://localhost:8087/api/v1/ai/suggestions/meetings/test-meeting/stream
|
||||
|
||||
# 5초마다 샘플 제안사항이 발행됩니다
|
||||
```
|
||||
|
||||
@ -188,7 +188,7 @@ eventSource.addEventListener('ping', (event) => {
|
||||
**확인 방법**
|
||||
```bash
|
||||
# 터미널에서 직접 테스트
|
||||
curl -N http://localhost:8086/api/ai/suggestions/meetings/test-meeting-001/stream
|
||||
curl -N http://localhost:8087/api/v1/ai/suggestions/meetings/test-meeting-001/stream
|
||||
```
|
||||
|
||||
**해결**
|
||||
|
||||
@ -34,7 +34,7 @@ GET /api/v1/ai/suggestions/meetings/{meetingId}/stream
|
||||
### 예시
|
||||
```
|
||||
# Python (새 버전)
|
||||
http://localhost:8086/api/v1/ai/suggestions/meetings/550e8400-e29b-41d4-a716-446655440000/stream
|
||||
http://localhost:8087/api/v1/ai/suggestions/meetings/550e8400-e29b-41d4-a716-446655440000/stream
|
||||
|
||||
# Java (구 버전 - 사용 중단 예정)
|
||||
http://localhost:8083/api/suggestions/meetings/550e8400-e29b-41d4-a716-446655440000/stream
|
||||
@ -90,7 +90,7 @@ interface SimpleSuggestionDto {
|
||||
const meetingId = '550e8400-e29b-41d4-a716-446655440000';
|
||||
|
||||
// SSE 연결 (Python 버전)
|
||||
const apiUrl = `http://localhost:8086/api/v1/ai/suggestions/meetings/${meetingId}/stream`;
|
||||
const apiUrl = `http://localhost:8087/api/v1/ai/suggestions/meetings/${meetingId}/stream`;
|
||||
const eventSource = new EventSource(apiUrl);
|
||||
|
||||
// 연결 성공
|
||||
@ -194,7 +194,7 @@ export function useAiSuggestions(meetingId: string) {
|
||||
const [error, setError] = useState<Error | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const apiUrl = `http://localhost:8086/api/v1/ai/suggestions/meetings/${meetingId}/stream`;
|
||||
const apiUrl = `http://localhost:8087/api/v1/ai/suggestions/meetings/${meetingId}/stream`;
|
||||
const eventSource = new EventSource(apiUrl);
|
||||
|
||||
eventSource.onopen = () => {
|
||||
@ -264,7 +264,7 @@ function MeetingPage({ meetingId }: { meetingId: string }) {
|
||||
### 5.1 개발 환경
|
||||
```javascript
|
||||
// Python 버전 (권장)
|
||||
const API_BASE_URL = 'http://localhost:8086';
|
||||
const API_BASE_URL = 'http://localhost:8087';
|
||||
|
||||
// Java 버전 (구버전 - 사용 중단 예정)
|
||||
// const API_BASE_URL = 'http://localhost:8083';
|
||||
@ -440,7 +440,7 @@ open http://localhost:8000/05-회의진행.html
|
||||
### 10.3 curl 테스트
|
||||
```bash
|
||||
# Python 버전 (새 포트)
|
||||
curl -N http://localhost:8086/api/v1/ai/suggestions/meetings/test-meeting/stream
|
||||
curl -N http://localhost:8087/api/v1/ai/suggestions/meetings/test-meeting/stream
|
||||
|
||||
# Java 버전 (구 포트 - 사용 중단 예정)
|
||||
# curl -N http://localhost:8083/api/suggestions/meetings/550e8400-e29b-41d4-a716-446655440000/stream
|
||||
|
||||
@ -83,21 +83,21 @@ ai-python/
|
||||
$ ./start.sh
|
||||
======================================
|
||||
AI Service (Python) 시작
|
||||
Port: 8086
|
||||
Port: 8087
|
||||
======================================
|
||||
✅ FastAPI 서버 정상 시작
|
||||
```
|
||||
|
||||
### 2. 헬스 체크
|
||||
```bash
|
||||
$ curl http://localhost:8086/health
|
||||
$ curl http://localhost:8087/health
|
||||
{"status":"healthy","service":"AI Service (Python)"}
|
||||
✅ 헬스 체크 정상
|
||||
```
|
||||
|
||||
### 3. SSE 스트리밍 테스트
|
||||
```bash
|
||||
$ curl -N http://localhost:8086/api/v1/ai/suggestions/meetings/test-meeting/stream
|
||||
$ curl -N http://localhost:8087/api/v1/ai/suggestions/meetings/test-meeting/stream
|
||||
✅ SSE 연결 성공
|
||||
✅ Redis 연결 성공
|
||||
✅ 5초마다 텍스트 축적 확인 정상 동작
|
||||
@ -105,7 +105,7 @@ $ curl -N http://localhost:8086/api/v1/ai/suggestions/meetings/test-meeting/stre
|
||||
|
||||
### 4. 로그 확인
|
||||
```
|
||||
2025-10-27 11:18:54,916 - AI Service (Python) 시작 - Port: 8086
|
||||
2025-10-27 11:18:54,916 - AI Service (Python) 시작 - Port: 8087
|
||||
2025-10-27 11:18:54,916 - Claude Model: claude-3-5-sonnet-20241022
|
||||
2025-10-27 11:18:54,916 - Redis: 20.249.177.114:6379
|
||||
2025-10-27 11:19:13,213 - SSE 스트림 시작 - meetingId: test-meeting
|
||||
@ -130,7 +130,7 @@ $ curl -N http://localhost:8086/api/v1/ai/suggestions/meetings/test-meeting/stre
|
||||
┌─────────────────────────┐
|
||||
│ AI Service (Python) │
|
||||
│ - FastAPI │
|
||||
│ - Port: 8086 │
|
||||
│ - Port: 8087 │
|
||||
│ - SSE 스트리밍 │
|
||||
└──────┬──────────────────┘
|
||||
│ Redis 조회
|
||||
@ -232,7 +232,7 @@ python3 main.py
|
||||
**SSE 연결 예시 (JavaScript)**:
|
||||
```javascript
|
||||
const eventSource = new EventSource(
|
||||
'http://localhost:8086/api/v1/ai/suggestions/meetings/meeting-123/stream'
|
||||
'http://localhost:8087/api/v1/ai/suggestions/meetings/meeting-123/stream'
|
||||
);
|
||||
|
||||
eventSource.addEventListener('ai-suggestion', (event) => {
|
||||
|
||||
@ -131,7 +131,7 @@ function connectAISuggestions(meetingId) {
|
||||
}
|
||||
|
||||
function connectRealAISuggestions(meetingId) {
|
||||
const url = `http://localhost:8086/api/v1/ai/suggestions/meetings/${meetingId}/stream`;
|
||||
const url = `http://localhost:8087/api/v1/ai/suggestions/meetings/${meetingId}/stream`;
|
||||
const eventSource = new EventSource(url);
|
||||
|
||||
eventSource.addEventListener('ai-suggestion', handleAISuggestion);
|
||||
@ -165,7 +165,7 @@ function handleAISuggestion(event) {
|
||||
REACT_APP_USE_MOCK_AI=true
|
||||
|
||||
# 실제 AI 서비스 URL (STT 완료 후)
|
||||
REACT_APP_AI_SERVICE_URL=http://localhost:8086
|
||||
REACT_APP_AI_SERVICE_URL=http://localhost:8087
|
||||
```
|
||||
|
||||
### `package.json` 스크립트
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
↓
|
||||
┌──────────────────────────────────────────────────────────┐
|
||||
│ AI Service (Python/FastAPI) │
|
||||
│ 포트: 8086 │
|
||||
│ 포트: 8087 │
|
||||
│ - Event Hub에서 텍스트 수신 │
|
||||
│ - Redis에 텍스트 축적 (슬라이딩 윈도우 5분) │
|
||||
│ - Claude API 분석 → SSE로 프론트엔드 전송 │
|
||||
|
||||
1
develop/test/consolidate-response.json
Normal file
1
develop/test/consolidate-response.json
Normal file
@ -0,0 +1 @@
|
||||
{"meeting_id":"test-meeting-001","keywords":["신제품 개발","Q2 출시","React Native","SNS 마케팅","인플루언서","AI 챗봇","20-30대 직장인","예산 증액","사전 예약 이벤트","모바일 우선"],"statistics":{"agendas_count":2,"todos_count":9,"participants_count":3,"duration_minutes":60},"decisions":"**안건1 신제품 개발 전략 결정사항:**\n- 개발팀은 다음 주까지 기술 스택 확정\n- UI/UX팀은 프로토타입 2주 내 완성\n- 기술 스택 확정: React Native, Spring Boot, PostgreSQL\n- AI 챗봇 기능은 MVP에 포함\n- 스프린트 2주 단위로 진행\n- 매주 금요일 데모 데이 실시\n- Q2 출시 목표 (4월 1일)\n\n**안건2 마케팅 전략 결정사항:**\n- 마케팅 예산 20% 증액 승인\n- 인스타그램, 틱톡 채널 집중\n- 콘텐츠 제작팀 2명 추가 채용\n- 온라인 광고 우선 진행\n- 사전 예약 이벤트 실시","agenda_summaries":[{"agenda_number":1,"agenda_title":"신제품 개발 전략","summary_short":"Q2 신제품 개발 일정 및 기술 스택 확정","summary":"**논의 사항:**\n- Q2 신제품 출시를 목표로 개발 일정 논의\n- 타겟 고객층: 20-30대 직장인\n- 모바일 우선 전략 필요\n- 개발 기간 3개월, 베타 테스트 1개월 예상\n- React Native로 개발, 백엔드는 Spring Boot + PostgreSQL 사용\n- AI 기능 추가 검토 중\n\n**결정 사항:**\n- 개발팀은 다음 주까지 기술 스택 확정\n- UI/UX팀은 프로토타입 2주 내 완성\n- 기술 스택 확정: React Native, Spring Boot, PostgreSQL\n- AI 챗봇 기능은 MVP에 포함\n- 스프린트 2주 단위로 진행\n- 매주 금요일 데모 데이 실시\n- Q2 출시 목표 (4월 1일)","pending":["예산 편성은 재무팀 검토 후 재논의","클라우드 인프라는 비용 검토 후 결정","QA 팀 인력 충원 여부"],"todos":[{"title":"기술 사양서 작성"},{"title":"AI 모델 선정 및 테스트"},{"title":"프로젝트 일정표 작성"},{"title":"Jira 프로젝트 생성"}]},{"agenda_number":2,"agenda_title":"마케팅 전략 수립","summary_short":"SNS 마케팅 집중 및 예산 증액","summary":"**논의 사항:**\n- SNS 마케팅 집중 투자 필요\n- 인플루언서 협업 고려\n- 바이럴 콘텐츠 제작 필요\n- 온라인 광고 vs 오프라인 이벤트 검토\n- 초기 사용자 확보 전략 논의\n\n**결정 사항:**\n- 마케팅 예산 20% 증액 승인\n- 인스타그램, 틱톡 채널 집중\n- 콘텐츠 제작팀 2명 추가 채용\n- 온라인 광고 우선 진행\n- 사전 예약 이벤트 실시","pending":[],"todos":[{"title":"인플루언서 리스트 작성 및 컨택"},{"title":"채용 공고 게시"},{"title":"사전 예약 페이지 개발"},{"title":"광고 소재 제작"}]}],"generated_at":"2025-10-29T08:48:39.792970"}
|
||||
25
develop/test/meeting-ai-test-data.json
Normal file
25
develop/test/meeting-ai-test-data.json
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
"meeting_id": "test-meeting-001",
|
||||
"participant_minutes": [
|
||||
{
|
||||
"user_id": "user-001",
|
||||
"user_name": "김민준",
|
||||
"content": "## 안건 1: 신제품 개발 전략\n\n논의 사항:\n- Q2 신제품 출시를 목표로 개발 일정 논의\n- 타겟 고객층: 20-30대 직장인\n- 모바일 우선 전략 필요\n\n결정 사항:\n- 개발팀은 다음 주까지 기술 스택 확정\n- UI/UX팀은 프로토타입 2주 내 완성\n\n보류 사항:\n- 예산 편성은 재무팀 검토 후 재논의\n\n## 안건 2: 마케팅 전략\n\n논의 사항:\n- SNS 마케팅 집중 투자 필요\n- 인플루언서 협업 고려\n\n결정 사항:\n- 마케팅 예산 20% 증액 승인\n- 인스타그램, 틱톡 채널 집중\n\nTODO:\n- 인플루언서 리스트 작성 및 컨택"
|
||||
},
|
||||
{
|
||||
"user_id": "user-002",
|
||||
"user_name": "박서연",
|
||||
"content": "## 안건 1: 신제품 개발\n\n- 신제품은 React Native로 개발하기로 결정\n- 백엔드는 Spring Boot + PostgreSQL 사용\n- AI 기능 추가 검토 중\n\n결정사항:\n- 기술 스택 확정: React Native, Spring Boot\n- AI 챗봇 기능은 MVP에 포함\n\n보류:\n- 클라우드 인프라는 비용 검토 후 결정\n\nTODO:\n- 기술 사양서 작성\n- AI 모델 선정 및 테스트\n\n## 안건 2: 마케팅\n\n- SNS 마케팅에 집중하기로 함\n- 바이럴 콘텐츠 제작 필요\n\n결정:\n- 콘텐츠 제작팀 2명 추가 채용\n\nTODO:\n- 채용 공고 게시"
|
||||
},
|
||||
{
|
||||
"user_id": "user-003",
|
||||
"user_name": "이준호",
|
||||
"content": "# 회의록\n\n## 1. 신제품 개발 일정\n\n논의:\n- 개발 기간 3개월 예상\n- 베타 테스트 1개월 필요\n- Q2 출시 목표 (4월 1일)\n\n결정:\n- 스프린트 2주 단위로 진행\n- 매주 금요일 데모 데이\n\n보류:\n- QA 팀 인력 충원 여부\n\n할 일:\n- 프로젝트 일정표 작성\n- Jira 프로젝트 생성\n\n## 2. 마케팅 채널\n\n논의:\n- 온라인 광고 vs 오프라인 이벤트\n- 초기 사용자 확보 전략\n\n결정:\n- 온라인 광고 우선\n- 사전 예약 이벤트 실시\n\n할 일:\n- 사전 예약 페이지 개발\n- 광고 소재 제작"
|
||||
}
|
||||
],
|
||||
"agendas": [
|
||||
"신제품 개발 전략",
|
||||
"마케팅 전략 수립"
|
||||
],
|
||||
"duration_minutes": 60
|
||||
}
|
||||
336
develop/test/meeting-ai-test-result.md
Normal file
336
develop/test/meeting-ai-test-result.md
Normal file
@ -0,0 +1,336 @@
|
||||
# meeting-ai 서비스 테스트 결과
|
||||
|
||||
**테스트 일시**: 2025-10-29
|
||||
**테스터**: 준호 (Backend Developer)
|
||||
**테스트 대상**: AI 회의록 통합 요약 기능
|
||||
|
||||
---
|
||||
|
||||
## 🎯 테스트 목적
|
||||
|
||||
회의진행 중 참석자별로 작성된 회의록을 AI가 통합 요약하여 회의종료 화면에 표시하는 기능 검증
|
||||
|
||||
---
|
||||
|
||||
## 🔧 테스트 환경
|
||||
|
||||
### 서비스 구성
|
||||
- **AI Service (Python)**: `http://localhost:8087`
|
||||
- **Meeting Service (Java)**: `http://localhost:8082`
|
||||
- **API Endpoint**: `POST /api/transcripts/consolidate`
|
||||
|
||||
### 포트 설정 변경사항
|
||||
- ai-python 서비스 포트를 **8087**로 통일
|
||||
- `.env`, `.env.example`, `application.yml` 모두 8087로 변경
|
||||
- 다른 개발자 테스트 환경 통일 목적
|
||||
|
||||
---
|
||||
|
||||
## 📋 테스트 시나리오
|
||||
|
||||
### 입력 데이터
|
||||
- **회의 ID**: test-meeting-001
|
||||
- **참석자 수**: 3명 (김민준, 박서연, 이준호)
|
||||
- **안건 수**: 2개
|
||||
1. 신제품 개발 전략
|
||||
2. 마케팅 전략 수립
|
||||
- **회의 시간**: 60분
|
||||
|
||||
### 참석자별 회의록 내용
|
||||
각 참석자가 다른 관점에서 작성한 회의록:
|
||||
- **김민준**: 안건별 논의사항, 결정사항, 보류사항, TODO 정리
|
||||
- **박서연**: 기술 스택 결정사항과 AI 기능 검토 내용 중심
|
||||
- **이준호**: 개발 일정과 마케팅 채널 전략 중심
|
||||
|
||||
---
|
||||
|
||||
## ✅ 테스트 결과
|
||||
|
||||
### 1. 회의록 통합 및 취합 ✓
|
||||
|
||||
**상태**: 성공
|
||||
**결과**: 3명의 참석자 회의록을 성공적으로 통합하여 AI에 전달
|
||||
|
||||
---
|
||||
|
||||
### 2. 주요 키워드 추출 ✓
|
||||
|
||||
**상태**: 성공
|
||||
**추출된 키워드 (10개)**:
|
||||
```
|
||||
- 신제품 개발
|
||||
- Q2 출시
|
||||
- React Native
|
||||
- SNS 마케팅
|
||||
- 인플루언서
|
||||
- AI 챗봇
|
||||
- 20-30대 직장인
|
||||
- 예산 증액
|
||||
- 사전 예약 이벤트
|
||||
- 모바일 우선
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. 안건별 요약 생성 ✓
|
||||
|
||||
#### 안건 1: 신제품 개발 전략
|
||||
|
||||
**한줄 요약** (summary_short):
|
||||
```
|
||||
Q2 신제품 개발 일정 및 기술 스택 확정
|
||||
```
|
||||
|
||||
**상세 요약** (summary):
|
||||
```markdown
|
||||
**논의 사항:**
|
||||
- Q2 신제품 출시를 목표로 개발 일정 논의
|
||||
- 타겟 고객층: 20-30대 직장인
|
||||
- 모바일 우선 전략 필요
|
||||
- 개발 기간 3개월, 베타 테스트 1개월 예상
|
||||
- React Native로 개발, 백엔드는 Spring Boot + PostgreSQL 사용
|
||||
- AI 기능 추가 검토 중
|
||||
|
||||
**결정 사항:**
|
||||
- 개발팀은 다음 주까지 기술 스택 확정
|
||||
- UI/UX팀은 프로토타입 2주 내 완성
|
||||
- 기술 스택 확정: React Native, Spring Boot, PostgreSQL
|
||||
- AI 챗봇 기능은 MVP에 포함
|
||||
- 스프린트 2주 단위로 진행
|
||||
- 매주 금요일 데모 데이 실시
|
||||
- Q2 출시 목표 (4월 1일)
|
||||
```
|
||||
|
||||
**보류 사항**:
|
||||
- 예산 편성은 재무팀 검토 후 재논의
|
||||
- 클라우드 인프라는 비용 검토 후 결정
|
||||
- QA 팀 인력 충원 여부
|
||||
|
||||
**TODO (4개)**:
|
||||
1. 기술 사양서 작성
|
||||
2. AI 모델 선정 및 테스트
|
||||
3. 프로젝트 일정표 작성
|
||||
4. Jira 프로젝트 생성
|
||||
|
||||
---
|
||||
|
||||
#### 안건 2: 마케팅 전략 수립
|
||||
|
||||
**한줄 요약** (summary_short):
|
||||
```
|
||||
SNS 마케팅 집중 및 예산 증액
|
||||
```
|
||||
|
||||
**상세 요약** (summary):
|
||||
```markdown
|
||||
**논의 사항:**
|
||||
- SNS 마케팅 집중 투자 필요
|
||||
- 인플루언서 협업 고려
|
||||
- 바이럴 콘텐츠 제작 필요
|
||||
- 온라인 광고 vs 오프라인 이벤트 검토
|
||||
- 초기 사용자 확보 전략 논의
|
||||
|
||||
**결정 사항:**
|
||||
- 마케팅 예산 20% 증액 승인
|
||||
- 인스타그램, 틱톡 채널 집중
|
||||
- 콘텐츠 제작팀 2명 추가 채용
|
||||
- 온라인 광고 우선 진행
|
||||
- 사전 예약 이벤트 실시
|
||||
```
|
||||
|
||||
**보류 사항**: 없음
|
||||
|
||||
**TODO (5개)**:
|
||||
1. 인플루언서 리스트 작성 및 컨택
|
||||
2. 채용 공고 게시
|
||||
3. 사전 예약 페이지 개발
|
||||
4. 광고 소재 제작
|
||||
5. 마케팅 캠페인 일정 수립
|
||||
|
||||
---
|
||||
|
||||
### 4. 회의 전체 결정사항 통합 ✓
|
||||
|
||||
**상태**: 성공
|
||||
**통합 결정사항**:
|
||||
```markdown
|
||||
**안건1 신제품 개발 전략 결정사항:**
|
||||
- 개발팀은 다음 주까지 기술 스택 확정
|
||||
- UI/UX팀은 프로토타입 2주 내 완성
|
||||
- 기술 스택 확정: React Native, Spring Boot, PostgreSQL
|
||||
- AI 챗봇 기능은 MVP에 포함
|
||||
- 스프린트 2주 단위로 진행
|
||||
- 매주 금요일 데모 데이 실시
|
||||
- Q2 출시 목표 (4월 1일)
|
||||
|
||||
**안건2 마케팅 전략 결정사항:**
|
||||
- 마케팅 예산 20% 증액 승인
|
||||
- 인스타그램, 틱톡 채널 집중
|
||||
- 콘텐츠 제작팀 2명 추가 채용
|
||||
- 온라인 광고 우선 진행
|
||||
- 사전 예약 이벤트 실시
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 5. TODO 자동 추출 ✓
|
||||
|
||||
**상태**: 성공
|
||||
**총 TODO 개수**: 9개
|
||||
|
||||
#### 안건별 분류:
|
||||
- **안건 1**: 4개
|
||||
- 기술 사양서 작성
|
||||
- AI 모델 선정 및 테스트
|
||||
- 프로젝트 일정표 작성
|
||||
- Jira 프로젝트 생성
|
||||
|
||||
- **안건 2**: 5개
|
||||
- 인플루언서 리스트 작성 및 컨택
|
||||
- 채용 공고 게시
|
||||
- 사전 예약 페이지 개발
|
||||
- 광고 소재 제작
|
||||
- 마케팅 캠페인 일정 수립
|
||||
|
||||
---
|
||||
|
||||
### 6. 통계 정보 생성 ✓
|
||||
|
||||
**상태**: 성공
|
||||
**통계 데이터**:
|
||||
```json
|
||||
{
|
||||
"participants_count": 3,
|
||||
"agendas_count": 2,
|
||||
"todos_count": 9,
|
||||
"duration_minutes": 60
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🎨 회의종료 화면 표시 예시
|
||||
|
||||
### 회의 요약
|
||||
- **참석자**: 3명
|
||||
- **안건**: 2개
|
||||
- **TODO**: 9개
|
||||
- **소요 시간**: 60분
|
||||
|
||||
### 주요 키워드
|
||||
`#신제품개발` `#Q2출시` `#ReactNative` `#SNS마케팅` `#인플루언서` `#AI챗봇` `#20-30대직장인` `#예산증액` `#사전예약이벤트` `#모바일우선`
|
||||
|
||||
### 안건별 요약
|
||||
|
||||
#### 📌 안건 1: 신제품 개발 전략
|
||||
> **AI 요약**: Q2 신제품 개발 일정 및 기술 스택 확정
|
||||
|
||||
**주요 결정사항**:
|
||||
- 기술 스택: React Native, Spring Boot, PostgreSQL
|
||||
- AI 챗봇 기능 MVP 포함
|
||||
- 스프린트 2주 단위, 매주 금요일 데모
|
||||
|
||||
**할 일 (4개)**:
|
||||
- [ ] 기술 사양서 작성
|
||||
- [ ] AI 모델 선정 및 테스트
|
||||
- [ ] 프로젝트 일정표 작성
|
||||
- [ ] Jira 프로젝트 생성
|
||||
|
||||
**보류사항**: 예산 편성, 클라우드 인프라, QA 인력
|
||||
|
||||
---
|
||||
|
||||
#### 📌 안건 2: 마케팅 전략 수립
|
||||
> **AI 요약**: SNS 마케팅 집중 및 예산 증액
|
||||
|
||||
**주요 결정사항**:
|
||||
- 마케팅 예산 20% 증액
|
||||
- 인스타그램, 틱톡 집중
|
||||
- 콘텐츠 제작팀 2명 채용
|
||||
|
||||
**할 일 (5개)**:
|
||||
- [ ] 인플루언서 리스트 작성 및 컨택
|
||||
- [ ] 채용 공고 게시
|
||||
- [ ] 사전 예약 페이지 개발
|
||||
- [ ] 광고 소재 제작
|
||||
- [ ] 마케팅 캠페인 일정 수립
|
||||
|
||||
---
|
||||
|
||||
## 🔍 API 응답 구조
|
||||
|
||||
```json
|
||||
{
|
||||
"meeting_id": "test-meeting-001",
|
||||
"keywords": ["신제품 개발", "Q2 출시", ...],
|
||||
"statistics": {
|
||||
"agendas_count": 2,
|
||||
"todos_count": 9,
|
||||
"participants_count": 3,
|
||||
"duration_minutes": 60
|
||||
},
|
||||
"decisions": "**안건1 결정사항:**\n...",
|
||||
"agenda_summaries": [
|
||||
{
|
||||
"agenda_number": 1,
|
||||
"agenda_title": "신제품 개발 전략",
|
||||
"summary_short": "Q2 신제품 개발 일정 및 기술 스택 확정",
|
||||
"summary": "**논의 사항:**\n...\n\n**결정 사항:**\n...",
|
||||
"pending": ["예산 편성은 재무팀 검토 후 재논의", ...],
|
||||
"todos": [
|
||||
{"title": "기술 사양서 작성"},
|
||||
...
|
||||
]
|
||||
},
|
||||
...
|
||||
],
|
||||
"generated_at": "2025-10-29T08:48:39.792970"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ 테스트 결론
|
||||
|
||||
### 모든 기능 정상 동작 확인
|
||||
1. ✓ 회의록 통합 및 취합
|
||||
2. ✓ AI 한줄 요약 생성 (summary_short)
|
||||
3. ✓ AI 상세 요약 생성 (summary)
|
||||
4. ✓ 회의 전체 결정사항 추출
|
||||
5. ✓ TODO 자동 추출
|
||||
6. ✓ 통계 정보 생성
|
||||
7. ✓ 주요 키워드 추출
|
||||
|
||||
### 성능
|
||||
- **응답 시간**: 약 5-10초 (Claude API 호출 포함)
|
||||
- **토큰 사용량**: 약 3,000-5,000 tokens (입력 + 출력)
|
||||
|
||||
---
|
||||
|
||||
## 📝 추가 개선 사항
|
||||
|
||||
1. **TODO 담당자 할당** (향후)
|
||||
- 현재는 제목만 추출
|
||||
- 향후 담당자, 마감일, 우선순위 추가 가능
|
||||
|
||||
2. **보류사항 후속 조치** (향후)
|
||||
- 보류사항에 대한 알림 기능
|
||||
- 다음 회의 안건으로 자동 추가
|
||||
|
||||
3. **키워드 우선순위** (향후)
|
||||
- 현재는 동일 가중치
|
||||
- 향후 중요도 점수 추가 가능
|
||||
|
||||
---
|
||||
|
||||
## 📌 테스트 파일 위치
|
||||
|
||||
- **테스트 데이터**: `/Users/jominseo/HGZero/develop/test/meeting-ai-test-data.json`
|
||||
- **응답 결과**: `/Users/jominseo/HGZero/develop/test/consolidate-response.json`
|
||||
- **테스트 결과서**: `/Users/jominseo/HGZero/develop/test/meeting-ai-test-result.md`
|
||||
|
||||
---
|
||||
|
||||
**작성자**: 이준호 (Backend Developer)
|
||||
**리뷰어**: -
|
||||
**승인자**: -
|
||||
Loading…
x
Reference in New Issue
Block a user