ChatGPT Slack 대화 요약 파이프라인 구축하기

ChatGPT Slack 대화 요약 파이프라인 구축하기

ChatGPT Slack 대화 요약 파이프라인 구축하기

밀린 메시지, AI가 한 장의 일지로 요약해 줍니다

오늘 만들 것
밀린 메시지, AI가 한 장의 일지로 요약해 줍니다

아침에 출근하여 슬랙을 켜면 채널마다 수십 개씩 쌓인 대화가 반깁니다. 회의 내용과 사담이 섞인 글들을 하나씩 읽다 보면 오전 시간이 금방 지나갑니다.

그렇다고 읽지 않고 넘어가기에는 중요한 의사결정이나 업무 요청을 놓칠까 봐 염려됩니다. 매일 반복되는 이러한 번거로움을 해결할 방법은 없을까요?

이번에는 대량의 텍스트 데이터를 모아 깔끔한 문서로 가공하는 파이프라인을 구축해 보겠습니다. 어제 올라온 대화를 모아 ChatGPT로 요약하고, 이를 다크 테마 웹페이지로 출력하는 흐름입니다.

수동으로 읽을 때 15분 이상 걸리던 작업을 단 3초 만에 훑어볼 수 있도록 자동화 시스템을 완성해 봅시다.

준비할 도구는 API 키와 메신저 토큰입니다

준비할 도구는 API 키와 메신저 토큰입니다

자동화 구현을 위해 몇 가지 도구를 준비해야 합니다. 핵심이 되는 ChatGPT API와 메시지를 받아올 메신저 토큰이 필요합니다.

개발 환경에 익숙하지 않더라도 괜찮습니다. 안내에 따라 환경 변수를 설정하고 스크립트를 실행하는 과정만 거치면 누구나 완성할 수 있습니다.

기본적으로 Python 환경과 외부 API 요청을 위한 인증 키가 준비되었다면 즉시 시작할 수 있습니다. 아래 단계를 따라 순서대로 진행해 보겠습니다.

슬랙 요약 파이프라인, 단계별로 구축하기

슬랙 요약 파이프라인, 단계별로 구축하기

메시지 데이터를 수집하고 요약한 뒤 시각화하는 파이프라인을 단계별로 구성해 보겠습니다. 한 번에 모든 것을 구현하기보다는 나누어 진행하는 것이 좋습니다.

1
슬랙 API로 어제 메시지 수집하기
AI에게 보낸 프롬프트
특정 채널의 어제 하루 동안의 메시지 내역을 수집하여 slack_history.json 파일로 저장하는 Python 스크립트를 작성해줘. slack_sdk 라이브러리를 사용하고, 필요한 토큰과 채널 ID는 .env 파일에서 불러오도록 작성해줘.

첫 단계는 대화 데이터를 파일로 가져오는 작업입니다. 처음부터 요약과 화면 UI 구현을 한꺼번에 요청하면 오류가 발생하기 쉽습니다.

우선 데이터 수집 기능부터 독립적으로 동작하는지 확인하는 것이 효율적입니다. 프롬프트를 실행하면 라이브러리를 활용해 어제 타임스탬프를 계산하는 코드가 생성됩니다.

이 코드는 API를 호출하여 지정된 채널의 대화 내용을 수집합니다. 수집된 원본 텍스트는 지정한 파일 이름으로 깔끔하게 저장됩니다.

2
AI 모델로 핵심 주제 구조화하기
AI에게 보낸 프롬프트
slack_history.json을 읽어서 ChatGPT API(gpt-4o)로 주요 대화 주제별로 요약하고, 날짜, 참여자 목록, 핵심 안건, 결정 사항을 포함한 summary.json을 만들어줘. OpenAI SDK 최신 버전을 써줘.

비정형 메시지 더미에서 필요한 정보만 골라내어 구조화된 형태로 재가공합니다. 줄글로만 작성하면 추후 웹 화면에 표시하기 어렵습니다.

구조화된 파일 포맷으로 틀을 잡아두면 데이터 처리가 한결 수월해집니다. 이 프롬프트는 참여자 대화와 결정 사항을 분석해 줍니다.

그 결과로 주요 의사결정 사항과 안건이 분류되어 지정된 파일에 저장됩니다. 이를 통해 데이터 처리가 원활해집니다.

3
보기 좋게 HTML 웹페이지로 자동 생성하기
AI에게 보낸 프롬프트
summary.json의 내용을 세련된 다크 테마 HTML로 시각화해줘. index.html 파일 하나에 Tailwind CSS를 CDN으로 포함하고, 타임라인 형식으로 핵심 내용이 카드 형태로 보기 좋게 정렬되도록 꾸며줘.

단순한 텍스트나 데이터 파일은 한눈에 파악하기 어렵고 다른 사람과 공유하기도 불편합니다. 시각적인 화면으로 구성하는 작업이 필요합니다.

스타일시트 프레임워크를 활용하면 복잡한 설정 없이도 세련된 대시보드를 빠르게 제작할 수 있습니다. 템플릿 코드를 브라우저로 실행해 확인해 봅시다.

생성된 웹페이지를 열면 어제 나눈 대화 내용과 결정 사항이 시간순 카드 형태로 정렬되어 한눈에 들어옵니다.

4
페이징 처리와 예외 상황 보강하기
AI에게 보낸 프롬프트
이 스크립트에서 슬랙 메시지가 100개가 넘어가면 페이징 처리가 필요한데 누락되어 있어. 100개 초과 메시지도 끊기지 않고 계속 긁어오도록 스크립트를 보강하고, API 호출 에러가 날 때 예외 처리를 추가해줘.

실제 슬랙 채널에서는 하루에도 수백 개 이상의 메시지가 오갑니다. 기본 API 호출 방식만 사용하면 데이터 일부가 누락될 수 있습니다.

누락 방지 로직을 추가하면 커서를 사용하여 다음 페이지의 데이터를 연속적으로 조회하도록 코드가 보강됩니다.

대화량이 아무리 많아도 유실 없이 수집되어 분석 리포트에 반영되므로 시스템의 안정성이 한층 높아집니다.

실행 중 발생할 수 있는 주요 문제 해결법

자동화 도구를 동작시키다 보면 예기치 못한 에러가 나타날 수 있습니다. 자주 발생하는 세 가지 상황과 해결책을 알아봅니다.

첫째, 인증 오류가 발생하며 스크립트가 멈추는 경우입니다. 슬랙 API 설정 페이지에서 발급받은 인증 토큰 값에 오타가 없는지 확인해 보세요.

환경 변수 파일에 기재된 변수명이 스크립트와 일치하는지도 체크해야 합니다. 파일이 실행 경로와 동일한 디렉토리에 있는지도 확인 대상입니다.

둘째, 생성된 요약 파일의 한글 텍스트가 깨져서 출력되는 현상입니다. 이는 윈도우 등 운영체제 환경에 따른 파일 인코딩 차이로 인해 발생합니다.

파일을 읽고 쓸 때 인코딩 옵션을 명시적으로 지정해 주면 해결됩니다. AI에게 코드를 보완해 달라고 지시할 때 인코딩 설정을 추가해 달라고 요청하세요.

셋째, 브라우저에서 대시보드 화면을 열었으나 데이터가 표시되지 않는 현상입니다. 보안 정책으로 인해 로컬 파일을 직접 읽어오지 못해 발생합니다.

이때는 내장된 웹서버 명령어를 이용해 가상 서버를 구동하면 해결됩니다. 터미널에서 간이 서버 구동 명령을 내린 후 로컬 호스트로 접속하면 화면이 정상 출력됩니다.

웹훅을 활용한 알림 자동화 확장하기

한 걸음 더

생성된 요약 화면을 매일 수동으로 열어보는 번거로움을 줄이고 싶다면 알림 연동 기능을 추가해 보시기 바랍니다.

특정 시간마다 파이프라인이 자동 실행되도록 스케줄러를 등록하고, 분석된 요약본을 메신저 웹훅으로 연동할 수 있습니다.

수십 개의 대화를 일일이 읽어보지 않고도 핵심 요약 내용만 알림으로 간편하게 받아보는 스마트한 업무 환경이 완성됩니다.

다음 단계에서는 수집된 핵심 데이터를 기반으로 사내 위키나 문서 도구에 자동으로 기록을 남겨주는 에이전트 시스템을 다루어 보겠습니다.

관련 검색어

  • 🔍 ChatGPT 사용법
  • 🔍 ChatGPT 비교
  • 🔍 Slack 요약 사용법
  • 🔍 Slack 요약 비교
  • 🔍 자동화 파이프라인 사용법
  • 🔍 자동화 파이프라인 비교

댓글 쓰기

다음 이전