설명
backend-gookwhe의 Monitor 서비스를 독립 실행 스크립트에서 FastAPI 기반 웹 애플리케이션으로 전환하여 회의 수집을 관리할 수 있는 REST API를 제공.
현재 구조
Monitor Service (독립 스크립트)
├─ 2초마다 회의 목록 폴링
├─ DB에 회의 저장
└─ Celery 태스크 트리거 (자동)
→ 관리 UI 없음, 로그로만 상태 확인
Plain Text
복사
개선 후 구조
FastAPI App (:8001)
├─ REST API 엔드포인트 (회의 관리)
│ ├─ GET /meetings # 모든 회의 조회
│ ├─ GET /meetings/active # 수집 중인 회의
│ ├─ POST /meetings/{id}/start # 수동 수집 시작
│ ├─ POST /meetings/{id}/stop # 수집 중지
│ └─ POST /meetings/{id}/summarize # AI 요약 생성
│
└─ Background Service (모니터링)
├─ 2초마다 회의 폴링
└─ Celery 태스크 자동 트리거
Plain Text
복사
기대 효과
•
•
•
•
•
작업할 내용
Phase 1: FastAPI 기본 구조
FastAPI 앱 초기화 (app/main.py)
기존 Monitor를 FastAPI Background Task로 전환
Health check 엔드포인트 추가 (GET /health)
Swagger UI 설정
Phase 2: 회의 관리 API
회의 조회 API 구현
GET /meetings - 모든 회의 조회
GET /meetings/{id} - 특정 회의 조회
GET /meetings/active - 수집 중인 회의 목록
회의 수집 제어 API 구현
POST /meetings/{id}/start - 수동 수집 시작
POST /meetings/{id}/stop - 수집 중지
속기록 조회 API 구현
GET /transcripts/{meeting_id} - 회의별 속기록 조회
Phase 3: 추가 기능
AI 요약 API 구현
POST /meetings/{id}/summarize - AI 요약 생성
OpenAI API 연동
Chunk 병합 API 구현
POST /meetings/{id}/merge - Chunk 병합
배치 작업 스케줄러 추가 (APScheduler)
종료된 회의 자동 병합 (10분마다)
AI 요약 자동 생성 (매일 새벽 2시)
Phase 4: 배포 및 문서화
Docker 설정 업데이트 (FastAPI 포트 노출)
README 업데이트 (API 사용법)
entrypoint.sh 수정 (FastAPI 실행 추가)
참고 자료
현재 파일 구조:
backend-gookwhe/
├─ src/
│ ├─ main.py # Monitor 진입점
│ ├─ monitor.py # 폴링 로직
│ ├─ tasks.py # Celery 태스크
│ └─ collector.py # WebSocket 수집
└─ entrypoint.sh # 3개 프로세스 실행
Plain Text
복사
개선 후 구조:
backend-gookwhe/
├─ app/
│ ├─ main.py # FastAPI 앱
│ ├─ api/
│ │ ├─ meetings.py # 회의 관리 API
│ │ ├─ transcripts.py # 속기록 조회 API
│ │ └─ health.py # Health check
│ ├─ services/
│ │ ├─ monitor.py # 백그라운드 모니터링
│ │ ├─ collector.py # WebSocket 수집
│ │ └─ summarizer.py # AI 요약
│ └─ db/
│ ├─ database.py # DB 연결
│ └─ models.py # 모델
└─ entrypoint.sh # 업데이트
Plain Text
복사
