docs: ChromaDB 컬렉션명 패턴을 서비스별 prefix 방식으로 통일

- 기존: user_{uuid}_emails 형식
- 변경: {service}_{uuid} 형식 (예: rb8001_{uuid}, skill_email_{uuid})
- 서비스별 데이터 격리 및 관리 용이성 향상
- 8/28 UUID 통합 문서의 검증된 패턴 적용
This commit is contained in:
happybell80 2025-08-31 13:28:46 +09:00
parent 76b5ff0db3
commit 4220e6ac25

View File

@ -13,7 +13,7 @@
- **rb8001**: UUID 매핑 API 제공하지만 내부적으로 혼용
- **skill-email**: slack_id 직접 사용 (UUID 미지원)
- **Gateway**: JWT에서 UUID 추출 후 전달
- **ChromaDB**: 일관성 없는 collection 명명 체계
- **ChromaDB**: 일관성 없는 collection 명명 체계 → 서비스별 prefix 방식으로 통일 필요 ({service}_{uuid})
### 1.2 영향 범위
- 서비스 간 통신 오류 발생
@ -140,8 +140,8 @@ async def list_emails(request: EmailRequest):
# user_id를 UUID로 받음
user_uuid = request.user_id # 이제 UUID
# ChromaDB collection 명명 규칙 통일
collection_name = f"user_{user_uuid}_emails" # UUID 사용
# ChromaDB collection 명명 규칙 통일 (서비스별 prefix)
collection_name = f"skill_email_{user_uuid}" # 서비스_UUID 형식
credentials = await credentials_provider.get_credentials(user_uuid)
# ...
@ -201,7 +201,7 @@ async def handle_slack_event(request: Request):
---
### Phase 4: ChromaDB Collection 정리 (Day 7)
**목표**: UUID 기반 일관된 명명 체계 적용
**목표**: 서비스별 prefix + UUID 기반 일관된 명명 체계 적용
#### 4.1 Collection 마이그레이션 스크립트
```python
@ -230,7 +230,9 @@ async def migrate_collections():
user_uuid = await get_uuid_from_slack_id(slack_id)
if user_uuid:
new_name = f"user_{user_uuid}_emails"
# 서비스별 prefix 방식 (예: rb8001_{uuid}, skill_email_{uuid})
service_name = old_name.split("_")[0] if "_" in old_name else "rb8001"
new_name = f"{service_name}_{user_uuid}"
# 컬렉션 복사
old_collection = client.get_collection(old_name)
@ -305,8 +307,8 @@ async def test_full_flow():
emails = await fetch_emails(user_uuid)
assert emails is not None
# 5. ChromaDB 컬렉션 확인
collection_name = f"user_{user_uuid}_emails"
# 5. ChromaDB 컬렉션 확인 (서비스별 prefix)
collection_name = f"skill_email_{user_uuid}"
collection = chromadb_client.get_collection(collection_name)
assert collection is not None
@ -394,7 +396,7 @@ if not uuid_mapping:
- ✅ 모든 서비스가 UUID를 primary key로 사용
- ✅ Slack ID는 진입점에서만 UUID로 변환
- ✅ ChromaDB 컬렉션명 통일 (user_{uuid}_*)
- ✅ ChromaDB 컬렉션명 통일 ({service}_{uuid} 형식)
- ✅ 서비스 간 통신 오류 0%
- ✅ 기존 기능 100% 하위 호환성 유지