ChatGPT Gmail Agent 기반 30분 만에 중요 메일 분류 에이전트 만들기

ChatGPT Gmail Agent 기반 30분 만에 중요 메일 분류 에이전트 만들기

ChatGPT Gmail Agent 기반 30분 만에 중요 메일 분류 에이전트 만들기

매일 쌓이는 수백 개의 메일 중에서 진짜만 골라내기

오늘 만들 것
매일 쌓이는 수백 개의 메일 중에서 진짜만 골라내기

하루에도 수십 개에서 수백 개씩 쌓이는 메일함은 업무 집중력을 흩뜨리는 주범입니다. 특히 불필요한 뉴스레터나 시스템 알림 속에서 중요한 비즈니스 메시지를 놓치기 쉽습니다. 이러한 비효율을 해결하기 위해 나만의 인공지능 비서를 구축해 보겠습니다.

이번 가이드에서는 수신된 메일의 맥락을 스스로 이해하고 중요도를 분류하는 스마트 시스템을 만듭니다. 광고나 스팸은 걸러내고 당장 확인해야 할 핵심 내용만 선별하는 메일 에이전트 모델을 지향합니다.

단순한 메일 수집 단계를 넘어 본문의 핵심 의도를 정확하게 분석하는 파이프라인을 지향합니다. 메일함을 매번 새로고침하며 일일이 확인할 필요 없이 알림만으로도 급한 업무를 파악할 수 있는 자동화 환경이 마련됩니다.

시작하기 전에 챙길 도구들

시작하기 전에 챙길 도구들

시스템을 만들기 위해 우선 메일을 조회할 Gmail 계정이 필요합니다. 아울러 텍스트 분석과 요약을 담당할 OpenAI API 서비스 계정도 준비되어 있어야 합니다.

개발 과정에서는 인공지능 기반의 코드 편집 도구나 대화형 어시스턴트를 보조 도구로 활용하면 구현 시간을 크게 단축할 수 있습니다. 여기서는 범용적으로 쓰이는 파이썬 언어를 기준으로 삼아 단계적으로 완성해 가겠습니다.

작동 과정에서 발생하는 API 비용은 매우 저렴한 수준입니다. 가벼운 텍스트 처리가 주를 이루기 때문에 소액의 테스트 예산만으로도 충분히 실습과 일상적인 작동이 가능합니다.

복잡하게 모든 요소를 한 번에 연결하려 하기보다 순차적으로 살을 붙여 나가는 접근이 좋습니다. 메일 파싱, 내용 분석, 알림 전송이라는 세 가지 흐름을 나누어 설계하면 막힘없이 구현할 수 있습니다.

30분 만에 메일 분류기 조립하기

30분 만에 메일 분류기 조립하기

1
Gmail 메일 가져오는 뼈대 만들기

먼저 수신된 메일 본문을 긁어오는 파이썬 스크립트의 기초 구조를 설계합니다. 복잡한 연동 대신 접근이 쉬운 표준 라이브러리를 활용해 수신 메일을 탐색하겠습니다.

인공지능 도구를 활용하면 기본 데이터 구조를 빠르게 확보할 수 있습니다. 아래 프롬프트를 입력해 최근에 들어온 메일 정보를 읽어오는 스크립트를 작성합니다.

AI에게 보낸 프롬프트
Gmail의 IMAP 설정을 사용해서 최근 도착한 메일 5개의 제목과 본문을 가져오는 파이썬 코드를 작성해줘. 메일을 읽을 때는 imaplib 라이브러리를 사용하고, 복잡한 인증 대신 Gmail 앱 비밀번호를 입력해서 접속하는 단순한 구조로 짜줘. 파일명은 fetch_mails.py로 하고 실행 방법도 같이 알려줘.

처음부터 다소 복잡한 구글 클라우드 콘솔의 OAuth2 인증 설정을 진행하게 되면 개발 피로도가 높아집니다. 우선은 보안 설정에서 제공하는 전용 앱 비밀번호를 활용해 연결 상태를 확인하는 편이 효율적입니다.

초기 검증 단계에서는 세부적인 파싱 로직을 정교하게 가다듬는 데 시간을 쓰기보다 텍스트가 정상적으로 수신되는지 확인하는 데 집중합니다. 터미널 창에 메일 텍스트가 깨지지 않고 나타나면 성공입니다.

2
AGENTS.md로 메일 분류 규칙 정의하기

가져온 데이터의 성격을 명확하게 식별하려면 메일 에이전트 기능이 참고할 판단 기준을 상세히 명시해야 합니다. 작업 디렉터리에 AGENTS.md 파일을 생성하고 상세한 역할을 부여해 줍니다.

판단 기준과 반환 형식을 명확하게 설정하면 모델이 출력하는 결과물의 일관성을 유지할 수 있습니다. 아래 양식을 복사하여 해당 파일에 저장합니다.

# Gmail Classifier Agent Rules
- 역할: 수신된 메일의 제목과 본문을 읽고 중요도를 판정함
- 분류 카테고리:
  1. VIP (중요): 결제, 긴급 오류, 협업 문의, 결제 실패 등 즉시 대응이 필요한 메일
  2. NORMAL (일반): 일반 뉴스레터, 일상 업무 피드백, 정기 리포트
  3. SPAM (스팸): 광고, 단순 홍보, 스팸 메일
- 규칙:
  - 답장은 항상 JSON 형식으로 반환할 것
  - JSON 형식 예시: {"category": "VIP", "reason": "이유 요약 1줄", "summary": "본문 요약 1줄"}

이처럼 동작 요건을 파이썬 코드 외부에 마크다운 형식으로 관리하면 분류 범주나 지침이 변경되었을 때 전체 프로그램을 수정하지 않아도 됩니다. 지침 파일만 갱신해 주면 즉시 적용됩니다.

판단 조건이 지나치게 복잡하면 정확도가 떨어질 수 있으므로 분류 경계를 간결하고 명확하게 규정하는 것이 핵심입니다. 각 등급의 핵심 속성 위주로 작성하는 것을 권장합니다.

3
ChatGPT API로 메일 판정 로직 붙이기

가져온 본문 텍스트와 앞에서 정해둔 기준 문서를 바탕으로 분류 연산을 처리할 차례입니다. 기존 스크립트에 분석 API를 접목하기 위해 인공지능에게 코드 보강을 요청합니다.

외부 규칙 문서를 불러와서 매개변수로 전달하고 결과를 받도록 처리합니다. 아래 요건을 반영해 코드 작성을 이어 나갑니다.

AI에게 보낸 프롬프트
fetch_mails.py 코드에 OpenAI API 연동 기능을 추가해줘. 가져온 메일 각각에 대해 AGENTS.md에 작성된 규칙에 따라 분류를 요청하고, VIP로 판정된 메일이 있으면 터미널에 알림을 띄우는 코드를 작성해줘. API 호출 시 system prompt로 AGENTS.md의 내용을 읽어서 전달하게 만들어줘.

요청이 반영된 스크립트를 구동하면 수신된 내역 옆에 VIP 또는 SPAM 등의 분류 태그가 함께 출력됩니다. 메일 에이전트 중심의 스마트한 자동 분류 프레임워크가 실질적으로 완성되는 시점입니다.

이러한 방식으로 구성하면 사용자가 길고 장황한 본문을 일일이 정독하지 않고도 걸러진 정보의 속성만 파악할 수 있어 의사결정의 편의성이 향상됩니다.

4
VIP 메일만 텔레그램으로 즉시 알림 받기

화면 출력에만 만족하지 않고 실시간 대응이 가능하도록 모바일 메신저를 연동해 중요한 소식만 즉시 전송받는 기능을 추가해 봅니다.

비즈니스 효율을 높이기 위해 핵심 메시지가 수신되는 즉시 텔레그램 봇으로 내용을 전달하도록 추가 구현을 진행합니다. 다음 내용을 도구에 전달하여 완성합니다.

AI에게 보낸 프롬프트
VIP로 분류된 메일이 감지되면 내 텔레그램 봇으로 알림 메시지를 전송하는 기능을 추가해줘. 텔레그램 메시지에는 메일 제목, 발신자, ChatGPT가 요약한 본문 1줄, 판정 이유가 포함되어야 해. 텔레그램 토큰과 채팅 ID는 환경 변수나 코드 상단에서 관리하도록 작성해줘.

설정이 끝나면 다른 업무를 진행하는 도중에도 중요한 용건에 대한 실시간 알림 요약본을 스마트폰으로 확인할 수 있습니다. 번거로운 알림 공세 없이 꼭 필요한 알림만 효율적으로 선별됩니다.

메신저 알림창에 표기할 메시지는 핵심 정보 위주로 정돈해야 한눈에 들어옵니다. 발송인과 핵심 요약 그리고 중요하게 판단한 사유만 정제된 형태로 담아 가독성을 높입니다.

자주 겪는 문제와 대처 방법

첫째, 메일 서버에 연결하는 과정에서 인증 예외 오류가 발생하는 상황입니다.

발생 에러는 프로그램 실행 시 콘솔에 로그인 오류(LOGIN failed) 문구가 찍히며 데이터 연동에 실패하는 양상을 보입니다.

원인은 계정 고유의 기존 비밀번호를 그대로 코드에 입력했거나 계정의 다중 보안 설정이 누락되어 구글 시스템에서 접근 권한을 거부했기 때문입니다.

대처 방안으로 보안 센터에서 2단계 인증을 진행한 뒤 생성된 전용 임시 앱 암호를 코드에 적용하면 정상적으로 데이터가 조회됩니다.

둘째, 불러온 메일의 텍스트가 심하게 깨져 문자 판독이 불가능한 현상입니다.

발생 에러는 수집된 결과물이 터미널 화면에 정상 한글로 출력되지 않고 깨진 문자열이나 기호로 표시되는 문제입니다.

원인은 발신자가 설정한 이메일 인코딩 표준 형식을 프로그램이 해독하지 못한 채 원시 텍스트로 바로 출력하여 매칭이 어긋났기 때문입니다.

대처 방안으로 내장 라이브러리의 다목적 이메일 디코딩 모듈을 사용해 인코딩을 해석하도록 처리 코드를 보완하면 깨끗한 텍스트를 얻을 수 있습니다.

셋째, 전송되는 데이터양에 비해 과도하게 높은 비용이 부과되는 문제입니다.

발생 에러는 실행 횟수가 미비함에도 대시보드에서 산출되는 크레딧 비용이 단시간에 빠르게 소모되는 양상입니다.

원인은 불필요한 메일 내 HTML 코드나 인라인 스타일 요소까지 통째로 데이터 전송에 포함되어 비용 낭비를 유발했기 때문입니다.

대처 방안으로 수집 시 태그 정보를 필터링하는 파싱 로직을 구현하거나 텍스트 앞부분에서 500자 내외로 길이를 제한해 넘기는 안전망을 둡니다.

넷째, 인공지능이 분류하는 기준의 일관성이 다소 떨어질 때가 있습니다. 이 경우 규칙 문서 내에 애매했던 분류 경계와 제외 대상 예시를 더욱 상세히 명시하는 방식으로 처리 일관성을 높일 수 있습니다.

추후 확장 가능한 자동화 방향

한 걸음 더

현재 상태는 긴급 정보의 수신 알림 수준이지만 더 나아가면 알림과 함께 자동으로 회신 답변 초안까지 미리 작성하도록 기능을 고도화할 수 있습니다. 예를 들어 규칙 문서인 AGENTS.md에 문의 유형에 따른 모범 답안 예시를 사전에 지침으로 추가해 두는 방식입니다.

요건을 충족하는 메일이 수집되면 알림과 동시에 바로 사용 가능한 임시 답장 문구까지 함께 제안받아 신속하게 피드백을 전달할 수 있습니다. 이로써 메일 확인부터 고객 응대까지 걸리는 단계적 조치 흐름이 대폭 단축됩니다.

이번에 구축한 파이프라인의 핵심은 단순히 수신 메일을 분류하는 단일 작업에 머무르지 않고 일상 업무의 프로세스를 자동화하는 근간을 이루는 데 있습니다. 관리 규칙 파일을 기반으로 처리 지침을 설계하고 확장해 나간다면 복잡한 비즈니스 루틴도 효율적으로 관리할 수 있습니다.

관련 검색어

  • 🔍 ChatGPT 사용법
  • 🔍 ChatGPT 비교
  • 🔍 Gmail 분류 사용법
  • 🔍 Gmail 분류 비교
  • 🔍 메일 에이전트 사용법
  • 🔍 메일 에이전트 비교

댓글 쓰기

다음 이전