# ChromaDB metadata None 값 에러 **날짜**: 2025-08-28 **서비스**: rb8001 **상태**: ✅ 해결 완료 ## 문제 - Frontend 접속 시 ChromaDB 저장 실패 - 에러: "Expected metadata value to be a str, int, float or bool, got None which is a NoneType" - PostgreSQL은 None 허용하여 정상 저장됨 ## 확인된 원인 ```python # rb8001/app/router/router.py:358-364 metadata = { "user_id": user_id, # UUID (정상) "slack_user_id": slack_user_id, # Frontend일 때 None ✅ 확인됨 "channel": channel, # Frontend일 때 None 가능성 "intent": intent # None 가능성 } ``` ## 해결책 ```python # None 값 필터링 추가 metadata = { k: v for k, v in { "user_id": user_id, "slack_user_id": slack_user_id, "channel": channel, "intent": intent }.items() if v is not None } ``` ## 수정 위치 - 파일: `rb8001/app/router/router.py` - 라인: 358-364 - 메소드: `store_conversation()` ## 검증 데이터 - **51124 로그**: ChromaDB 에러 메시지 확인됨 - **PostgreSQL**: slack_user_id=None 저장 확인됨 - **사용자**: happybell80 (UUID: 1e16e9d5-59f3-54da-a661-8abeabff4230) ## 테스트 결과 ✅ 1. Frontend 대화 → ChromaDB 저장 성공 (컬렉션: rb8001_1e16e9d5-59f3-54da-a661-8abeabff4230) 2. PostgreSQL → 정상 저장 확인 3. None 값 필터링 → 정상 작동 4. 메모리 ID: 7c751907f061cb588b95b1ec6cae7b78 생성 확인 ## 해결 완료 - 수정 커밋: 454fddf - 배포: Gitea Actions 자동 배포 완료 - 검증: "Conversation saved to both storages" 확인