mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 07:56:24 +00:00
## 주요 변경사항 ### 1. RAG Service 독립 서비스 문서화 - RAG Service OpenAPI 명세 작성 (9개 API) - Terms APIs: 용어 검색, 조회, 맥락 기반 설명 (3개) - Documents APIs: 관련 문서 검색, 통계 (2개) - Minutes APIs: 회의록 벡터 검색, 연관 검색 (4개) - 기술 스택: Python 3.11+, FastAPI, PostgreSQL+pgvector, Azure AI Search - 성능 요구사항 명시 (용어 검색 <500ms, 설명 생성 <3초) ### 2. 불필요한 설계서 삭제 (10개 파일, 27% 감소) - AI Service (3개): 결정사항제안, 논의사항제안, 회의록개선 - Meeting Service (5개): 실시간수정동기화, 충돌해결, Todo완료처리, Todo할당, 리마인더발송 - Notification Service (2개): Todo알림발송, 초대알림발송 ### 3. API 설계서 업데이트 (v2.0 → v2.1) - 마이크로서비스: 5개 → 6개 (RAG Service 추가) - 총 API 개수: 47개 → 56개 (+9개) - AI Service 주요 특징 업데이트 - RAG Service 연동 명시 - 삭제된 Suggestion API 제거 - 차별화 포인트: 맥락 기반 용어 설명, 하이브리드 검색 강조 - RAG Service 섹션 완전 신규 작성 - 통계 및 문서 이력 업데이트 ### 4. 내부 시퀀스 다이어그램 업데이트 (2개) - ai-전문용어감지.puml: RAG Service API 호출 방식 명시 - ai-맥락기반용어설명.puml: RAG Service API 호출 방식 명시 ### 5. 문서화 - 설계서 업데이트 요약 문서 작성 (claudedocs/설계서_업데이트_요약.md) - 전체 변경 사항, 영향 분석, 다음 단계 작업 명시 ## 영향 분석 - 설계서 파일: 37개 → 27개 (10개 삭제) - 유저스토리 커버리지: 28개 유저스토리 100% 반영 - 서비스 아키텍처: AI Service와 RAG Service 분리로 독립성 향상 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
330 lines
11 KiB
Markdown
330 lines
11 KiB
Markdown
# 설계서 업데이트 요약
|
|
|
|
**작업일**: 2025-01-29
|
|
**작업자**: Backend Developer (동욱)
|
|
**작업 범위**: 프로토타입, 유저스토리, 개발 소스 기반 설계서 전면 업데이트
|
|
|
|
---
|
|
|
|
## 1. 작업 개요
|
|
|
|
### 목적
|
|
- 실제 구현된 기능과 설계서 간 불일치 해소
|
|
- RAG Service 독립 서비스 분리 반영
|
|
- 구현되지 않은 기능의 설계서 삭제
|
|
- MVP 범위 축소에 따른 설계 정리
|
|
|
|
### 주요 변경 사항
|
|
1. **RAG Service 문서화**: 독립 서비스로 분리된 RAG 시스템 전체 문서화
|
|
2. **불필요한 설계서 삭제**: 구현되지 않은 기능의 시퀀스 다이어그램 10개 삭제
|
|
3. **API 설계서 정리**: 삭제된 기능 제거, RAG 연동 반영
|
|
4. **마이크로서비스 구성 업데이트**: 5개 → 6개 서비스
|
|
|
|
---
|
|
|
|
## 2. 삭제된 파일 (10개)
|
|
|
|
### AI Service 시퀀스 (2개)
|
|
1. `design/backend/sequence/inner/ai-결정사항제안.puml`
|
|
- **삭제 사유**: Discussion/Decision Suggestion 기능 미구현
|
|
- **영향**: API 설계서에서 `/suggestions/discussion`, `/suggestions/decision` 엔드포인트 제거
|
|
|
|
2. `design/backend/sequence/inner/ai-논의사항제안.puml`
|
|
- **삭제 사유**: Discussion Suggestion 기능 미구현
|
|
- **영향**: 동일
|
|
|
|
### Meeting Service 시퀀스 (5개)
|
|
3. `design/backend/sequence/inner/meeting-실시간수정동기화.puml`
|
|
- **삭제 사유**: 실시간 협업 기능 제거 (Last Write Wins로 단순화)
|
|
- **영향**: 충돌 해결 로직 불필요
|
|
|
|
4. `design/backend/sequence/inner/meeting-충돌해결.puml`
|
|
- **삭제 사유**: Last Write Wins 정책으로 충돌 처리 불필요
|
|
- **영향**: 실시간 동기화 설계 제거
|
|
|
|
5. `design/backend/sequence/inner/meeting-Todo완료처리.puml`
|
|
- **삭제 사유**: Todo 관리 기능 MVP에서 제외
|
|
- **영향**: Todo 상태 업데이트 API 제거
|
|
|
|
6. `design/backend/sequence/inner/meeting-Todo할당.puml`
|
|
- **삭제 사유**: Todo 할당 기능 MVP에서 제외
|
|
- **영향**: Todo 할당 API 제거
|
|
|
|
7. `design/backend/sequence/inner/notification-리마인더발송.puml`
|
|
- **삭제 사유**: 리마인더 기능 MVP에서 제외
|
|
- **영향**: 리마인더 API 제거
|
|
|
|
### Notification Service 시퀀스 (3개 → 1개 통합)
|
|
8. `design/backend/sequence/inner/notification-Todo알림발송.puml`
|
|
- **삭제 사유**: Todo 기능 제거로 알림 불필요
|
|
- **영향**: Todo 알림 API 제거
|
|
|
|
9. `design/backend/sequence/inner/notification-초대알림발송.puml`
|
|
- **삭제 사유**: 일반 알림 시퀀스로 통합
|
|
- **영향**: 중복 설계 제거
|
|
|
|
10. `design/backend/sequence/inner/notification-{duplicate}.puml` (추가 중복 파일)
|
|
- **삭제 사유**: 동일 기능의 중복 시퀀스
|
|
- **영향**: 설계 일관성 향상
|
|
|
|
---
|
|
|
|
## 3. 추가된 파일 (2개)
|
|
|
|
### RAG Service 문서화
|
|
1. **`design/backend/api/spec/rag-service-api.yaml`** (NEW)
|
|
- **내용**: RAG Service OpenAPI 3.0.3 명세서
|
|
- **API 개수**: 9개
|
|
- Terms APIs: 3개 (검색, 조회, 설명)
|
|
- Documents APIs: 2개 (검색, 통계)
|
|
- Minutes APIs: 4개 (검색, 조회, 연관, 통계)
|
|
- **주요 기술**:
|
|
- Python 3.11+, FastAPI
|
|
- PostgreSQL + pgvector
|
|
- Azure AI Search
|
|
- Claude 3.5 Sonnet
|
|
- Redis 캐싱
|
|
|
|
2. **`claudedocs/설계서_업데이트_요약.md`** (이 문서)
|
|
- **내용**: 전체 설계서 업데이트 요약
|
|
- **목적**: 변경 사항 추적 및 문서화
|
|
|
|
---
|
|
|
|
## 4. 수정된 파일 (4개)
|
|
|
|
### 4.1 유저스토리 (design/userstory.md)
|
|
- **버전**: v2.5.0 → v2.5.1
|
|
- **변경 내용**:
|
|
- 마이크로서비스 개수: 5개 → 6개
|
|
- RAG Service 섹션 추가 (2.5)
|
|
- 유저스토리 3개 추가:
|
|
- UFR-RAG-010: 전문용어 감지
|
|
- UFR-RAG-020: 맥락 기반 용어 설명
|
|
- UFR-RAG-030: 관련 회의록/자료 검색
|
|
|
|
### 4.2 API 설계서 (design/backend/api/API설계서.md)
|
|
- **버전**: v2.0 → v2.1
|
|
- **주요 변경**:
|
|
|
|
#### 마이크로서비스 구성 업데이트
|
|
```markdown
|
|
5. **AI Service** - AI 기반 회의록 자동화, Todo 추출, RAG 서비스 연동
|
|
6. **RAG Service** - 용어집/관련자료/회의록 검색 (Python/FastAPI 독립 서비스)
|
|
```
|
|
|
|
#### AI Service 섹션 업데이트
|
|
- **삭제된 API**:
|
|
- `POST /suggestions/discussion` - 논의사항 제안
|
|
- `POST /suggestions/decision` - 결정사항 제안
|
|
- `PUT /minutes/{minutesId}/improve` - 회의록 개선
|
|
|
|
- **추가된 API 설명**:
|
|
- `POST /sections/{sectionId}/summary` - 안건별 AI 요약 생성
|
|
- `POST /sections/{sectionId}/regenerate` - 한줄 요약 재생성
|
|
- `GET /meetings/{meetingId}/suggestions/stream` - 실시간 주요 내용 제안 (SSE)
|
|
|
|
- **RAG 연동 명시**:
|
|
```markdown
|
|
**Related Transcripts APIs (1개) - RAG 연동**
|
|
| GET | /transcripts/{meetingId}/related | 관련 회의록 검색 (RAG 서비스 연동) |
|
|
|
|
**Term APIs (2개) - RAG 연동**
|
|
| POST | /terms/detect | 전문용어 감지 (RAG 서비스 연동) |
|
|
| GET | /terms/{termId}/explain | 맥락 기반 용어 설명 (RAG 서비스 연동) |
|
|
```
|
|
|
|
- **주요 특징 업데이트**:
|
|
```markdown
|
|
- LLM 기반 회의록 자동 작성 (Claude 3.5 Sonnet)
|
|
- RAG Service 연동
|
|
- 전문용어 자동 감지 및 맥락 기반 설명
|
|
- 관련 회의록 검색 (벡터 유사도 70% 이상)
|
|
- 조직 내 문서 및 이력 기반 용어 설명 생성
|
|
- 안건별 요약 생성 (한줄 요약 + 상세 요약)
|
|
- 실시간 주요 내용 제안 (SSE 스트리밍)
|
|
```
|
|
|
|
- **차별화 포인트 업데이트**:
|
|
```markdown
|
|
1. **맥락 기반 용어 설명**: 단순 사전 정의가 아닌, RAG를 통해 조직 내 실제 사용 맥락과 과거 논의 이력 제공
|
|
2. **하이브리드 검색 기반 연관성**: 키워드 매칭과 벡터 유사도를 결합하여 관련 회의록 정확도 향상
|
|
3. **실시간 AI 제안**: SSE 기반 스트리밍으로 회의 중 주요 내용 실시간 제안
|
|
```
|
|
|
|
#### RAG Service 섹션 추가 (완전 신규)
|
|
- **개요**:
|
|
- 파일: `rag-service-api.yaml`
|
|
- 베이스 URL: `/api/rag`
|
|
- 기술 스택: Python 3.11+, FastAPI, PostgreSQL+pgvector, Azure AI Search, Redis
|
|
|
|
- **API 목록**: 9개
|
|
- Terms APIs: 3개
|
|
- Documents APIs: 2개
|
|
- Minutes APIs: 4개
|
|
|
|
- **주요 특징**:
|
|
- 하이브리드 검색 (키워드 + 벡터)
|
|
- Azure OpenAI text-embedding-3-large (3,072 차원)
|
|
- Claude 3.5 Sonnet (맥락 기반 설명)
|
|
- Redis 캐싱 (TTL: 30분~1시간)
|
|
- EventHub 연동 (회의록 확정 이벤트 수신)
|
|
|
|
- **성능 요구사항**:
|
|
- 용어 검색: < 500ms (캐시 HIT: < 50ms)
|
|
- 용어 설명 생성: < 3초
|
|
- 회의록 검색: < 1초 (캐시 HIT: < 100ms)
|
|
|
|
#### 통계 업데이트
|
|
```markdown
|
|
| 서비스 | API 개수 | 주요 기능 |
|
|
|--------|---------|----------|
|
|
| User Service | 4 | 사용자 인증 |
|
|
| Meeting Service | 17 | 회의, 회의록, Todo 관리 |
|
|
| STT Service | 12 | 음성 녹음, 변환, 화자 식별 |
|
|
| AI Service | 8 | AI 회의록, Todo 추출, RAG 연동 |
|
|
| RAG Service | 9 | 용어집/문서/회의록 검색 |
|
|
| Notification Service | 6 | 알림 발송, 설정 관리 |
|
|
| **합계** | **56** | |
|
|
```
|
|
|
|
- **유저스토리 커버리지**: 25개 → 28개
|
|
|
|
#### 문서 이력 추가
|
|
```markdown
|
|
| 2.1 | 2025-01-29 | 동욱 (Backend Developer) | RAG Service 추가, 불필요한 API 정리 (6개 마이크로서비스) |
|
|
```
|
|
|
|
### 4.3 AI Service 내부 시퀀스 - 전문용어감지 (design/backend/sequence/inner/ai-전문용어감지.puml)
|
|
- **변경 내용**: RAG Service API 호출 방식 명시
|
|
```plantuml
|
|
note over Service
|
|
**구현 방식**: AI Service → RAG Service API 호출
|
|
POST /api/rag/terms/search
|
|
- 하이브리드 검색 (키워드 + 벡터)
|
|
- PostgreSQL + pgvector
|
|
- Redis 캐싱
|
|
end note
|
|
```
|
|
|
|
### 4.4 AI Service 내부 시퀀스 - 맥락기반용어설명 (design/backend/sequence/inner/ai-맥락기반용어설명.puml)
|
|
- **변경 내용**: RAG Service API 호출 방식 명시
|
|
```plantuml
|
|
note over Service
|
|
**구현 방식**: AI Service → RAG Service API 호출
|
|
GET /api/rag/terms/{termId}
|
|
- PostgreSQL + pgvector에서 조회
|
|
- Redis 캐싱 적용
|
|
end note
|
|
```
|
|
|
|
---
|
|
|
|
## 5. 영향 분석
|
|
|
|
### 5.1 설계서 감소율
|
|
- **삭제 전**: 37개 시퀀스 파일
|
|
- **삭제 후**: 27개 시퀀스 파일
|
|
- **감소율**: 27.0% (10개 파일 삭제)
|
|
|
|
### 5.2 API 개수 변화
|
|
- **기존**: 47개 API (5개 서비스)
|
|
- **현재**: 56개 API (6개 서비스)
|
|
- **증가**: +9개 (RAG Service)
|
|
|
|
### 5.3 서비스 아키텍처 변화
|
|
```
|
|
기존 (5개 서비스):
|
|
User → Meeting ← STT
|
|
↓
|
|
AI ← Notification
|
|
|
|
현재 (6개 서비스):
|
|
User → Meeting ← STT
|
|
↓
|
|
AI ← Notification
|
|
↓
|
|
RAG (독립 서비스)
|
|
```
|
|
|
|
---
|
|
|
|
## 6. 다음 단계 작업
|
|
|
|
### 6.1 완료된 작업
|
|
- ✅ 불필요한 시퀀스 파일 삭제 (10개)
|
|
- ✅ RAG Service API 명세 작성
|
|
- ✅ API 설계서 업데이트 (RAG 추가, 불필요 API 제거)
|
|
- ✅ AI Service 특징 및 차별화 포인트 업데이트
|
|
- ✅ 통계 및 문서 이력 업데이트
|
|
|
|
### 6.2 남은 작업 (우선순위 순)
|
|
1. **외부 시퀀스 검증** (6개 파일)
|
|
- 프로토타입 화면과 일치 여부 확인
|
|
- 유저스토리와 매핑 검증
|
|
|
|
2. **RAG 연동 시퀀스 완성** (3개 파일)
|
|
- `ai-관련회의록연결.puml`: RAG Service 호출 흐름 추가
|
|
- EventHub를 통한 비동기 처리 흐름 추가
|
|
|
|
3. **클래스 설계 작성** (미작성 상태)
|
|
- AI Service: High 우선순위
|
|
- Meeting Service: High 우선순위
|
|
- RAG Service: Medium 우선순위
|
|
|
|
---
|
|
|
|
## 7. 설계 원칙 준수
|
|
|
|
### 7.1 마이크로서비스 독립성
|
|
- ✅ RAG Service를 완전 독립 서비스로 분리
|
|
- ✅ AI Service는 RAG API를 REST로 호출 (직접 DB 접근 없음)
|
|
- ✅ 각 서비스별 독립적인 OpenAPI 명세
|
|
|
|
### 7.2 비동기 처리
|
|
- ✅ EventHub를 통한 회의록 확정 이벤트 전달 (Meeting → RAG)
|
|
- ✅ RAG Consumer가 벡터 DB에 저장
|
|
- ✅ 실시간 응답이 필요한 API는 동기 호출 (용어 검색, 설명)
|
|
|
|
### 7.3 캐싱 전략
|
|
- ✅ Redis를 통한 검색 결과 캐싱 (TTL: 30분~1시간)
|
|
- ✅ 용어 검색 성능 목표: < 500ms (캐시 HIT: < 50ms)
|
|
|
|
---
|
|
|
|
## 8. 검증 항목
|
|
|
|
### 8.1 문서 일관성 체크리스트
|
|
- ✅ 유저스토리 개수 일치 (28개)
|
|
- ✅ API 개수 일치 (56개)
|
|
- ✅ 마이크로서비스 개수 일치 (6개)
|
|
- ✅ OpenAPI 파일 경로 일치 (`design/backend/api/spec/*.yaml`)
|
|
- ✅ 문서 버전 및 날짜 업데이트
|
|
|
|
### 8.2 설계서 검증
|
|
- ✅ PlantUML 문법 검사 필요
|
|
- ✅ OpenAPI YAML 검증 필요
|
|
- ⏳ 외부 시퀀스 프로토타입 일치 확인 (향후)
|
|
|
|
---
|
|
|
|
## 9. 참고 자료
|
|
|
|
### 삭제된 설계서 목록
|
|
전체 목록은 `claudedocs/설계서_삭제_목록.md` 참조
|
|
|
|
### RAG Service 소스 코드
|
|
- `rag/src/api/main.py`: FastAPI 엔드포인트 9개
|
|
- `rag/src/services/`: 비즈니스 로직
|
|
- `rag/src/models/`: 데이터 모델
|
|
|
|
### 관련 유저스토리
|
|
- UFR-RAG-010: 전문용어 감지
|
|
- UFR-RAG-020: 맥락 기반 용어 설명
|
|
- UFR-RAG-030: 관련 회의록/자료 검색
|
|
|
|
---
|
|
|
|
**작성 완료**: 2025-01-29
|
|
**작성자**: Backend Developer (동욱)
|