# Slack 메시지 처리 문제 해결 ## 문제 상황들 ### 1. 일반 채널에서 멘션 없이도 응답하는 문제 - **증상**: 채널에서 멘션 없이 "안녕"이라고 해도 로빙이 응답 - **원인**: Slack 이벤트 핸들러가 모든 메시지에 반응하도록 설정됨 ### 2. 멘션 포함 메시지 처리 시 422 에러 - **증상**: "@로빙 넌 누구니" 같은 메시지에서 LLM 서비스 422 에러 발생 - **원인**: 멘션(`<@U096JGL9011>`)이 포함된 채로 LLM 서비스로 전송됨 ### 3. Slack 메시지 전송 실패 (404 Not Found) - **증상**: 응답 생성 후 Slack으로 전송 시 404 에러 - **원인**: 잘못된 API 엔드포인트 사용 ## 해결 방법 ### 1. DM 전용 처리로 변경 ```python # /home/heejae/rb10408_test/app/router/slack_handler.py @slack_app.event("message") async def handle_message_events(event, say, ack): await ack() # DM이 아닌 경우 무시 if event.get("channel_type") != "im": return ``` ### 2. 멘션 제거 로직 추가 ```python # /home/heejae/rb10408_test/main.py message = event.get("text", "") # 멘션 제거 (예: <@U123ABC> 형식) import re message = re.sub(r'<@[A-Z0-9]+>', '', message).strip() ``` ### 3. Slack API 엔드포인트 수정 ```python # 변경 전 "http://localhost:8502/send" # 변경 후 "http://localhost:8502/api/v1/send" ``` ## 추가 발견 사항 - Slack 스킬 서비스는 포트 8502 사용 (8503 아님) - API는 `/api/v1` prefix 필요 - 서비스 위치: `/home/heejae/skill-slack/` ## 관련 파일 - `/home/heejae/rb10408_test/app/router/slack_handler.py` - `/home/heejae/rb10408_test/main.py` - `/home/heejae/rb10408_test/app/core/config.py`