From 8c9531925c0234ce1476b791ce5a54ad5c25c7b5 Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Tue, 19 Aug 2025 12:58:49 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20slack=5Fuser=5Fmapping=20=EA=B2=80?= =?UTF-8?q?=EC=A6=9D=20=EA=B2=B0=EA=B3=BC=20=EC=B6=94=EA=B0=80=20-=20DB=20?= =?UTF-8?q?=EB=A7=A4=ED=95=91=20=EC=A0=95=EC=83=81=20=ED=99=95=EC=9D=B8,?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=20=EB=AF=B8=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=20=EB=AC=B8=EC=A0=9C=20=EB=B0=9C=EA=B2=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ..._사용자구분및ChromaDB격리문제.md | 72 ++++++++++++++++--- 1 file changed, 64 insertions(+), 8 deletions(-) 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