-
[TIP] ChatGPT를 이용해서 뉴스레터 요약하기 - 자동화Article/UX Research 2024. 8. 1. 17:27
- 뉴스레터를 받지만 읽기가 귀찮은데 가끔 유용하다.
- 요약 정리가 되면 좋을 것 같다.
- 메일이 오면 ChatGPT를 이용해서 요약 정리하는 것을 자동화할 수 있을까?
- 파이썬을 쓰면 될 것 같은데 알아보니 ChatGPT 같은 인공지능 오픈소스 API 사용에 돈을 지불해야 한다.
- 최대한 돈을 안쓰고 apple automator와 단축어를 써서 자동화 해보자.
- 결론 : ChatGPT에서 저장하는 것은 수동으로 해야 하지만 나머지는 자동으로 할 수 있다.
작동 순서
- txt파일로부터 ChatGPT를 작동시키는 단축어 생성
- Automator를 이용해서 메일 -> 본문 내용 txt 추출 -> 만들어둔 단축어를 이용해서 ChatGPT 요약
- 뉴스레터가 이메일로 오는 다음날이 되면 자동으로 Automator를 실행
1. txt파일로부터 Chat gpt를 작동시키는 단축어 생성
- 맥 단축어 앱 실행
- 맥 단축어를 아래와 같이 만들어 줍니다.
텍스트에 ChatGPT에게 물어볼 프롬프트를 포함해서 단축어 입력으로부터 내용을 받아 오도록 했습니다.
(※ ChatGPT 맥용 앱이 설치 되어있어야 합니다. 링크)
애플 단축어 앱을 열어서 위와 같이 CatGPT에게 물어볼 수 있도록 설정한다. - 이렇게 만들어 둔 단축어를 빠른 동작으로 실행할 수 있도록 아래와 같이 설정합니다.
단축어 실행 설정
2. Automator를 이용해서 메일 -> 본문 내용 txt 추출 -> 만들어둔 단축어를 이용해서 ChatGPT 요약
Automator의 한정적인 기능을 확장해서 사용하기 위해서는 Apple Script나 java Script를 사용해야 하는데, 시스템 접근에 좀 더 용이할 것 같아서 Apple Script를 이용하는 방법으로 선택하고, 프로그래밍을 할 줄은 몰라서 ChatGPT에게 코드를 작성해달라고 부탁했습니다. 몇번의 시행착오와 오류 수정을 거쳐서 아래와 같은 과정으로 코드를 작성했습니다.
1) ChatGPT 요약 단축어 실행 파일을 Automator로 만들기
만들어둔 단축어를 자동으로 실행할 수 있도록 먼저 Automator를 이용해서 자동화 프로그램을 만듭니다.
- 먼저 Automator를 실행 한 후 '응용프로그램'을 선택합니다.
- 'AppleScript 실행' 을 선택해서 아래와 같은 코드를 작성해줍니다.
- 작성한 코드는 적당한 폴더에 'RunShortcutWithFile' 과 같은 이름이나 적당히 불러오기 편한 이름으로 저장해줍니다.
1234on run {input, parameters}tell application "Shortcuts" run shortcut "Summary for ChatGPT" with input inputend tellend runcs
2) 메일에서 온 내용을 변환 ChatGPT 요약 단축어 실행까지 연결되는 실행파일을 Automator로 만들기이후 메일이 도착한 '그 주'에 아래의 Automator가 실행되면, 자동으로 메일에서 내용을 추출해서 txt파일을 생성하여 특정 폴더에 저장하고, 이렇게 저장된 txt파일을 단축어를 이용하여 ChatGPT에게 질문하도록 AppleScript를 작성합니다.
- 위와 마찬가지로 Automator에 신규 생성 후 '응용프로그램'을 선택합니다.
- 'AppleScript 실행'을 선택해서 ChatGPT가 작성해준 아래와 같은 코드를 삽입합니다.
- 아래에 발신자의 이메일이라든가, 메일 계정설정이나, 메일함 같이 자신의 상황에 맞는 값으로 변경해야 합니다. (주의할 것은 여기서 말하는 메일 계정은 Gmail계정이 아니라 애플 메일 계정 설정에 계정명을 무엇으로 해줬는지를 적어야 한다는 점)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697on run {input, parameters}tell application "Mail"set theSender to "aaa@aaa.com" -- 여기서 특정 발신자의 Gmail 주소로 변경set theAccountName to "Google" -- 여기에 Apple Mail에 설정된 Gmail 계정의 이름 입력 (이메일 주소)set theMailboxName to "INBOX" -- 여기서 Gmail 받은 편지함의 이름 설정 (일반적으로 "INBOX")-- 모든 계정을 가져와서 계정 이름과 일치하는 계정을 찾습니다.set allAccounts to accountsset targetAccount to nullrepeat with acc in allAccountsif name of acc is theAccountName thenset targetAccount to accexit repeatend ifend repeatif targetAccount is null thenerror "계정을 찾을 수 없습니다: " & theAccountNameend if-- 현재 날짜와 주의 시작 및 끝 날짜를 가져옴set currentDate to current dateset currentWeekday to weekday of currentDateset daysToSubtract to (currentWeekday - Monday)set startOfWeek to currentDate - (daysToSubtract * days)set endOfWeek to startOfWeek + (6 * days)-- 지정된 계정의 받은 편지함에서 특정 발신자의 메일 검색set theMailbox to mailbox theMailboxName of targetAccountset theMessages to messages of theMailbox whose sender contains theSenderset saveDirectory to POSIX path of "/Users/work/Documents/폴더명/" -- 여기서 저장할 디렉토리 경로로 변경repeat with eachMessage in theMessagesset messageDate to date sent of eachMessage-- 메시지가 현재 주에 속하는지 확인if messageDate ≥ startOfWeek and messageDate ≤ endOfWeek thenset messageContent to content of eachMessageset messageSubject to subject of eachMessage-- 파일 이름에 사용할 수 없는 문자를 제거set validSubject to my replaceInvalidCharacters(messageSubject)-- 날짜를 "YYYY-MM-DD" 형식으로 포맷팅set messageDateString to my formatDate(messageDate)-- 파일 경로 생성 (메일 날짜 포함)set savePath to saveDirectory & messageDateString & " - " & validSubject & ".txt"-- 메일 내용을 UTF-8로 저장my writeTextToFile((messageDate as string) & return & messageContent, savePath)-- Automator 응용 프로그램 실행do shell script "open -a '앞에서 단축어 Automator응용프로그램 저장 위치/RunShortcutWithFile.app' " & quoted form of POSIX path of savePathend ifend repeatend tellreturn inputend run-- 파일 이름에 사용할 수 없는 문자를 제거하는 함수on replaceInvalidCharacters(input)set AppleScript's text item delimiters to ""set invalidCharacters to "/:*?\"<>|"set cleanedString to ""repeat with i from 1 to (count characters of input)set currentCharacter to character i of inputif invalidCharacters does not contain currentCharacter thenset cleanedString to cleanedString & currentCharacterend ifend repeatreturn cleanedStringend replaceInvalidCharacters-- 텍스트를 파일에 UTF-8로 저장하는 함수on writeTextToFile(theText, theFile)tryset fileRef to open for access POSIX file theFile with write permissionset eof of fileRef to 0write theText as «class utf8» to fileRefclose access fileRefon error errMsg number errNumtryclose access POSIX file theFileend tryerror errMsg number errNumend tryend writeTextToFile-- 날짜를 "YYYY-MM-DD" 형식으로 포맷팅하는 함수on formatDate(theDate)set {year:y, month:m, day:d} to theDateset m to text -2 thru -1 of ("0" & (m as integer)) -- 월을 두 자리 숫자로 포맷set d to text -2 thru -1 of ("0" & (d as integer)) -- 일을 두 자리 숫자로 포맷return (y & "-" & m & "-" & d) as stringend formatDatecs
3) 그림처럼 순차적으로 작동하는 실행 파일 생성 완료.Automator를 실행하면 자동으로 메일을 txt파일로 변환하여 GPT에 질문한다.
3. 뉴스레터가 오는 다음날이 되면 자동으로 Automator를 실행
이제 마지막으로 지금까지 만든 Automator 실행파일을 일정주기에 실행되도록 만들어야 하는데, ChatGPT에게 물어봤더니 아주 간단한 방법을 알려주었습니다.
- 애플 캘린더에 새로운 이벤트 생성 : 저는 뉴스레터가 오는 다음날로 이벤트를 생성했습니다.
- 뉴스렌터가 계속 올 테니 반복으로 설정합니다.
- 알림을 선택해서 > 사용자화를 클릭해보면 알림 방법을 선택할 수 있는데 여기서 파일 열기를 선택합니다.
- 파일 열기를 선택하고 아래 기타를 눌러 만들어둔 최종 Automator를 선택해주고 이벤트 당시로 설정을 해둡니다.
- 이렇게 하면 이벤트를 알릴 때마다 Automator를 자동으로 실행해주게 됩니다.
이렇게 ChatGPT의 API를 사용하지 않고, 애플의 기본 기능만으로 자동화를 통해서 뉴스레터를 GPT를 이용해서 요약하는 방법을 보여드렸습니다. GPT에서 요약해준 내용을 확인하고, 중요한 내용이 있으면 이메일을 확인해볼 수 있게 되었습니다. 필요한 경우엔 GPT가 요약해준 내용을 마크다운을 지원하는 노트에 저장도 할 수 있겠죠?
API 비용을 내지 않기 위한 꼼수 였습니다.
혹시 더 쉬운 방법이 있으면 답글로 알려주세요. 감사합니다.끝.
반응형'Article > UX Research' 카테고리의 다른 글
모바일 환경에서의 라디오 버튼 UX: 문제점과 최적화 가이드 (0) 2025.02.11 UX 리서처를 위한 ChatGPT Deep Research 활용법!! (0) 2025.02.06 이제 인터뷰 모더레이터도 인공지능이 하는 시대 (2) - Wondering.com 사용기 - (4) 2024.07.23 이제 인터뷰 모더레이터도 인공지능이 하는 시대 (1) (0) 2024.07.11