DOCS/journey/troubleshooting/250803_Slack_메시지_처리_문제_해결.md
Claude-51124 22557e7132 docs: 오래된 트러블슈팅 아카이브 및 구조 정리
- 7-8월 초기 구축 문서 12개를 _archive/troubleshooting/2025_07-08_initial_setup/로 이동
- book/300_architecture/390_human_in_the_loop_intent_learning.md를 journey/research/intent_classification/로 이동 (개발 여정 문서)
- 빈 폴더 제거 (journey/assets/*)
2025-11-17 14:06:05 +09:00

1.7 KiB

Slack 메시지 처리 문제 해결

문제 상황들

1. 일반 채널에서 멘션 없이도 응답하는 문제

  • 증상: 채널에서 멘션 없이 "안녕"이라고 해도 로빙이 응답
  • 원인: Slack 이벤트 핸들러가 모든 메시지에 반응하도록 설정됨

2. 멘션 포함 메시지 처리 시 422 에러

  • 증상: "@로빙 넌 누구니" 같은 메시지에서 LLM 서비스 422 에러 발생
  • 원인: 멘션(<@U096JGL9011>)이 포함된 채로 LLM 서비스로 전송됨

3. Slack 메시지 전송 실패 (404 Not Found)

  • 증상: 응답 생성 후 Slack으로 전송 시 404 에러
  • 원인: 잘못된 API 엔드포인트 사용

해결 방법

1. DM 전용 처리로 변경

# /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. 멘션 제거 로직 추가

# /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 엔드포인트 수정

# 변경 전
"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