From 3069b2cdf553154ef431d92806ac725c53b4da89 Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Tue, 26 Aug 2025 22:22:27 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20Slack=20ID=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EC=8B=9C=20=EC=88=98=EC=A0=95=20=ED=8C=8C=EC=9D=BC=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EB=B0=8F=20=EC=8A=AC=EB=9E=99=20=EB=AA=85=EB=A0=B9?= =?UTF-8?q?=EC=96=B4=20=EC=84=A4=EA=B3=84=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - gmail_tokens 컬럼 변경 시 수정해야 할 4개 파일 명시 - 슬랙에서 뉴스 키워드 설정하는 명령어 설계 - 일반 메시지 명령어와 슬래시 명령어 대안 제시 - 코드 제거하고 설명으로 대체 --- .../250826_slack_id_column_standardization.md | 45 ++++++++++++++----- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/troubleshooting/250826_slack_id_column_standardization.md b/troubleshooting/250826_slack_id_column_standardization.md index c4edd69..fd9b02e 100644 --- a/troubleshooting/250826_slack_id_column_standardization.md +++ b/troubleshooting/250826_slack_id_column_standardization.md @@ -17,6 +17,8 @@ | conversation_logs | slack_user_id | VARCHAR(100) | ### 해결 방안 + +#### DB 스키마 변경 ```sql -- gmail_tokens 컬럼명 변경 ALTER TABLE gmail_tokens ADD COLUMN slack_user_id VARCHAR(100); @@ -24,6 +26,14 @@ UPDATE gmail_tokens SET slack_user_id = slack_id; ALTER TABLE gmail_tokens DROP COLUMN slack_id; ``` +#### 코드 수정 필요 +| 파일 경로 | 변경 내용 | +|-----------|----------| +| auth-server/models.py | slack_id → slack_user_id | +| robeing-monitor/database.py | slack_id → slack_user_id | +| skill-email/db_client.py | slack_id → slack_user_id | +| rb8001/app/brain/state_client.py | gmail_tokens 조회 시 컬럼명 | + --- ## 2. 뉴스 키워드 하드코딩 문제 @@ -47,20 +57,31 @@ CREATE TABLE user_preferences ( ); ``` -```python -# rb8001/dm_skill.py 수정 -async def get_user_keywords(slack_user_id: str) -> List[str]: - db = SessionLocal() - result = db.execute( - text("SELECT news_keywords FROM user_preferences WHERE slack_user_id = :sid"), - {"sid": slack_user_id} - ).fetchone() - return result[0] if result else ["AI", "기술", "IT"] -``` +### rb8001 코드 수정 +- dm_skill.py의 get_news_content() 메서드에서 사용자별 키워드 조회 +- 하드코딩된 ["AI", "기술", "IT"] 대신 user_preferences 테이블에서 조회 +- 없으면 기본값 사용 + +### 슬랙 명령어 설계 + +#### 일반 메시지 명령어 +- **설정**: "@로빙 뉴스 키워드 설정: 삼성, 반도체, AI" +- **확인**: "@로빙 내 뉴스 키워드" +- **초기화**: "@로빙 뉴스 키워드 초기화" + +#### 슬래시 명령어 (대안) +- **/news-keywords set** 삼성, 반도체, AI +- **/news-keywords list** +- **/news-keywords reset** + +#### 구현 방법 +1. rb8001이 메시지에서 "뉴스 키워드 설정:" 패턴 감지 +2. user_preferences 테이블에 키워드 저장 (INSERT ON CONFLICT UPDATE) +3. 다음 브리핑부터 해당 키워드로 뉴스 검색 ### 프론트엔드 연동 -- ActivityPanel 설정 UI 활용 (250825 문서 참조) -- Gateway API로 user_preferences CRUD 구현 +- ActivityPanel 설정 UI에서도 동일하게 user_preferences 수정 +- Gateway API 엔드포인트로 CRUD 구현 ---