1. breakpoint() 를 이용하여 디버깅 하기
메시지에 무슨 데이터가 들어오는지 확인하고 스레드로 답변! 하는 기능을 만들어 볼건데
그전에 breakpoint 사용을 해볼겁니다.
슬랙에 다음과 같이 [ 안녕 ] 이라고 쳤을때 @app.message("안녕") 이 실행될텐데
그 아래 breakpoint(); 를 추가하여 멈춰 볼겁니다.
breakpoint();
그리고 이후 (pdb) 파이썬 디버그 뜨는데, 여기서 p message (print message) 를 입력하면
p message
메시지에 대한 정보들이 나옵니다.
pp message (pretty print message) 를 입력하게 되면 더 보기 좋게 데이터들이 아래처럼 나옵니다.
pp message
보면 알겠지만 딕셔너리 데이터 / json 형태입니다.
2. breakpoint -> pp message 로 나온 데이터 살펴보기
여기 데이터를 좀 살펴 보면
여기서 채널(channel) 은
업무 생상성 향상 <-- 이 채널을 말합니다.
이는 슬랙에서도 확인이 가능한데요,
이렇게 직접 채널 우클릭하여 [채널 세부정보 보기] 클릭 -> 채널 ID 를 확인 할 수 있습니다.
그리고 event_ts / ts 이렇게 두개가 있는데
일단 ts 는 time stamp 인데요, 즉 시간을 기록합니다.
그렇다면 event_ts 는 이벤트가 발생한 시간을 기록하는거겠죠? 그러니까 메시지를 보낸 시간(ts) 와 이벤트를 발생한 시간(event_ts) 을 구별 한다는 것입니다.
#app.py
@app.message("안녕")
def message_hello(message, say):
# say(...) 함수는 같은 채널에 메시지를 다시 보내주는 함수야
# <@{user}> 문법은 슬랙에서 멘션을 의미함 (즉, 사용자에게 직접 말하는 것처럼 보여)
breakpoint()
message_text = message.get("text")
response = aice_chain(message_text)
# say(response)
say(response,thread_ts=message.get("ts"))
# say(f"안녕하세요 <@{message['user']}> 님!")
위 app.py 코드 에서 아래 say(response) 는 그냥 대답을 하는 코드인데,
say(response)
response 뒤에 인자로 thread_ts = message.get["ts"] 를 추가 하게 되면 해당 메시지에 답변을 다는 형태로 바뀌게 됩니다.
say(response,thread_ts=message.get("ts"))
실제로 슬랙에 안녕이라고 보내니까 답변을 달아주는 형식으로 변한걸 확인 할 수 있습니다.
댓글을 클릭 해보면 스레드 내에서 아래 사진 처럼 댓글을 달아주는 것을 볼 수 있습니다.
'✨Ai 프로젝트 만들기' 카테고리의 다른 글
6. OpenAI 를 활용하여 Aice 자격증 챗봇 만들기 (결과) (2) | 2025.06.26 |
---|---|
5. OpenAI 를 활용하여 Aice 자격증 챗봇 만들기 (0) | 2025.06.26 |
4. OpenAI 를 활용하여 Aice 자격증 챗봇 만들기 - 대화 하기(맨션을 통해) (0) | 2025.06.23 |
1. OpenAI 를 활용하여 Aice 자격증 챗봇 만들기 (2) | 2025.06.17 |
2. OpenAI 를 활용하여 Aice 자격증 챗봇 만들기 - prompt 만들기 (1) | 2025.06.16 |