- 7-8월 초기 구축 문서 12개를 _archive/troubleshooting/2025_07-08_initial_setup/로 이동 - book/300_architecture/390_human_in_the_loop_intent_learning.md를 journey/research/intent_classification/로 이동 (개발 여정 문서) - 빈 폴더 제거 (journey/assets/*)
32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
# ChromaDB UUID 충돌 문제 해결
|
|
|
|
## 문제 상황
|
|
사용자가 ChromaDB에서 UUID 충돌이 발생할 수 있다는 우려를 제기했습니다.
|
|
|
|
## 원인 분석
|
|
ChromaDB에서 각 로빙의 메모리를 저장할 때, 컬렉션 이름 생성 방식을 확인한 결과:
|
|
|
|
```python
|
|
# /home/heejae/rb10408_test/app/state/memory_manager.py
|
|
self.collection_name = f"robeing_{robeing_id}_memories"
|
|
```
|
|
|
|
각 로빙은 고유한 ID를 가지고 있어 (`rb10408`, `rb10508_micro` 등), 컬렉션 이름이 중복될 가능성이 없었습니다.
|
|
|
|
## 추가 확인 사항
|
|
메모리 ID 생성 로직:
|
|
```python
|
|
def generate_id(self, content: str, timestamp: str) -> str:
|
|
"""고유 ID 생성"""
|
|
unique_string = f"{self.robeing_id}_{content}_{timestamp}"
|
|
return hashlib.md5(unique_string.encode()).hexdigest()
|
|
```
|
|
|
|
로빙 ID, 콘텐츠, 타임스탬프를 조합하여 MD5 해시를 생성하므로 충돌 가능성이 극히 낮습니다.
|
|
|
|
## 결론
|
|
이미 적절한 UUID 충돌 방지 메커니즘이 구현되어 있어 추가 조치가 필요하지 않았습니다.
|
|
|
|
## 관련 파일
|
|
- `/home/heejae/rb10408_test/app/state/memory_manager.py`
|