diff --git a/ideas/250819_claude_사용자구분및ChromaDB격리문제.md b/ideas/250819_claude_사용자구분및ChromaDB격리문제.md index 12b9946..777b89e 100644 --- a/ideas/250819_claude_사용자구분및ChromaDB격리문제.md +++ b/ideas/250819_claude_사용자구분및ChromaDB격리문제.md @@ -126,14 +126,6 @@ CREATE TABLE user_identity_mapping ( 2. **중요**: 슬랙 봇 토큰 통일 (사용자 경험) 3. **개선**: Gateway 통합 (아키텍처 일관성) -## 예상 작업량 - -- ChromaDB 분리: 2-3시간 (코드 수정 + 테스트) -- 데이터 마이그레이션: 1시간 -- 슬랙 토큰 통일: 30분 -- 전체 테스트: 2시간 - -**총 예상**: 5-6시간 ## 위험 및 고려사항 @@ -181,4 +173,68 @@ CREATE TABLE user_identity_mapping ( --- +## 추가 검증 결과 (2025-08-19 12:30) + +### slack_user_mapping 테이블 검증 완료 + +#### 데이터베이스 상태 +- **테이블 존재**: ✅ auth_db.slack_user_mapping +- **정확한 매핑 데이터**: + ``` + U0925SXQFDK → aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa → 김종태 + U091UNVE41M → bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb → 전희재 + UHHYONG91 → cccccccc-cccc-cccc-cccc-cccccccccccc → 황한용 + ``` + +#### 코드 분석 결과 +1. **rb8001**: + - slack_user_mapping 테이블 조회 로직 없음 + - Slack user_id만 ChromaDB metadata에 저장 + - 실제 사용자 이름 변환 없이 LLM에 전달 + +2. **rb10508_micro**: + - 마찬가지로 slack_user_mapping 미사용 + - ChromaDB identity 컬렉션 자체가 없음 + - 사용자 이름은 get_identity()로 조회하나 실제 데이터 없음 + +### 문제 근본 원인 확정 + +**DB에는 올바른 매핑이 있으나, 서비스 코드에서 이를 활용하지 않음** + +- slack_user_mapping 테이블 생성: 2025-08-12 22:11 +- 서비스 코드 업데이트: 없음 +- 결과: LLM이 ChromaDB의 오염된 메모리에서 잘못된 이름 학습 + +### 로그 증거 +``` +INFO:app.router.slack_handler:Event: app_mention from U0925SXQFDK +INFO:app.router.router:Conversation saved for user U0925SXQFDK +INFO:app.router.slack_handler:Router result: { + 'content': '전희재님, 8001이 무엇을 의미하는지...' +} +``` + +종태님(U0925SXQFDK) 이벤트에 "전희재님"으로 응답하는 명확한 증거 + +### 개선 필요 코드 위치 + +1. **rb8001/app/router/router.py**: + - route_message() 함수에서 slack_user_mapping 조회 추가 + - user_name을 LLM context에 전달 + +2. **rb8001/app/llm/gemini_handler.py**: + - 시스템 프롬프트에 정확한 사용자 이름 포함 + +3. **rb10508_micro/app/core/brain.py**: + - think() 함수에서 slack_user_mapping 조회 + - user_name 파라미터에 실제 이름 전달 + +### 필수 해결 방안 + +1. slack_user_mapping 테이블 활용 코드 추가 +2. ChromaDB 사용자별 컬렉션 분리 +3. LLM 프롬프트에 정확한 사용자 정보 전달 + +--- + **문서 끝** \ No newline at end of file