feat. URLs 접근 요약을 위한 GPTs
진정한 ChatGPT 활용법의 시작은 유료 GPT를 결제하는 것입니다. 제가 OpenAI 홍보대사는 아닙니다만, 오늘은 실험실 사례는 플러그인을 써야 하는데, GPT Plus 유료 요금제에서만 가능하거든요.
종종 GPT를 무료로 이용하여 업무 생산성 향상이나 수익화를 얻을 수 있다고 하시는 강의를 유료로 판매하시는 분들을 보입니다. 물론 그런 강의를 유료로 판매하는 것이나 사는 것 모두 효용이 있다고 생각합니다만, 역시 저는 사용법은 무료로 익히더라도 GPT를 유료로 이용하는 것이 생산성에는 훨씬 도움이 된다고 생각합니다. 월에 2.7만원 수준이니까요.
온라인에 공개된 뉴스나 보고 자료 등을 요약해서 보고 자료를 만드는 작업이지요. 물론 PDF로 된 보고서 등을 요약 분석할 수도 있지만, 일단 오늘은 온라인에서 뉴스나 블로그 검색만으로 수행하는 데스크 리서치 예시입니다. 검색을 통한 조사와 정리는, 꼭 조사 부서가 아니라도 마케팅이든 경영기획이든 수많은 직군에서 인턴부터 부장님까지 벗어날 수 없는 업무가 아닐까요.
4가지 단계로 간략하게 과정을 소개해보도록 하겠습니다.
1. 검색 결과 URL 수집하기
2. 페이지 URL에 접근하기 좋은 플러그인은 선택하기
3. Aaron Browser로 URL에 접근하여 페이지 내용 요약하기
4. 요약한 내용을 다시 일목요연하게 보고서로 정리하기
물론 가까운 미래에는 이 전체 과정도 모두 한 번에 자동화하여 진행할 수 있게 되리라 생각합니다. 이를테면 AutoGPT 등이 그런 영역이죠. 하지만 실제로 체험해보신 분들은 아시겠지만 AutoGPT 등은 아직은 대중들이 쓰기에는 진입 장벽이 있습니다. 저는 이렇게 공개글을 쓸 떼에는 가급적 '클릭'과 '복사-붙여넣기' 만으로 가능한 방법론을 지향합니다.
[2024년 1월 업데이트.
이 글이 작성된 시점은 2023년 9월로, 2024년들어 현재는 더 이상 ChatGPT가 '플러그인'을 지원하지 않고, 써드파티 기능 모두 GPTs로 통합되었습니다. 접근 방법은 다르지만 Aaron Browser는 여전히 GPTs에서 만나볼 수 있으며, 'URL 수집 -> 요약 -> 보고서 정리' 활용은 동일하게 가능합니다. 이 부분을 참고하여 읽어주시면 감사하겠습니다. 그리고 여러분 Explore GPTs 메뉴를 통해 자료수집을 위한 또다른 GPT들도 찾아보세요!]
오늘의 사례는 '추석 물가'에 대한 리서치로 해보겠습니다. 이 글을 작성하는 시점이 마침 추석 연휴 직전이거든요. 추석 물가가 높아졌다거나 낮아졌다거나, 그에 대한 사람들의 반응이 어떻다거나, 전체적인 내용을 조사해보겠습니다.
검색 결과 URL 수집하기는 여러가지 방법이 있습니다만, 제가 권하는 것은 역시 '손으로 보고 눈으로 찾기'입니다. 네이버나 구글에서 '뉴스' 탭을 선택하고 '추석 물가'라고 검색해서 URL을 모아보겠습니다.
눈으로 보면 정확하게 '물가'에 대한 것이 아닌 내용도 나오긴 나옵니다. 그러니, 이 정도의 판단에는 뇌를 써보도록 하죠.
링크를 우클릭하여 '링크 주소 복사'를 선택하시거나, 기사를 클릭하고 들어가서 주소창에서 URL를 복사하거나, 혹은 기사의 '공유'버튼을 눌러서 URL를 복사하거나 모두 상관없습니다.
이것도 굳이 코드를 작성하면 검색 결과를 모으는 것 자체도, 물론 자동화시키는 방법이 있습니다. 그리고 이 검색 결과 수집 자체를 GPT에게 맡길 수도 있겠습니다만, 제가 몇 가지 테스트를 해봤는데요, '검색 결과'에서 직접 URL 따는 것은 대부분 GPT 플러그인에서 잘 안 됩니다. 이를테면, Link Reader라고 하는 플러그인으로 시도해본 결과입니다.
ChatGPT 플러그인 중에 구글 검색 결과 자체를 요약해주는 플러그인도 있는데, 직접 해보니 뉴스나 문서 검색 결과 전체 목록에 접근하지 못해서 상위 3개 정도가 가능할 뿐 검색 결과에 포함된 URL을 전부 딸 수는 없더라고요.
(대부분 GPT 플러그인이 서버 호출을 통해 URL로 가서 페이지 내용들을 리턴 받아오니, robot.txt에 막히고 정책에 의해 접근할 수 없다고 나오는 것이죠.)
그리하여 만약 수십개 수준의 게시물을 탐색해야 한다면, 그 정도는 역시 '손으로 보고 눈으로' 하는 것이 효과적이라고 생각합니다. 다만 수백 개를 해야한다면 일단 그 과정을 도와주는 '리스틀리' 같은 노코드 툴도 있습니다.
참고 -> 리스틀리로 구글 뉴스 엑셀로 한번에 정리하기
그렇게 뉴스 페이지를 5개 정도 손으로 수집해봤습니다. 매체별로 좀 다양하게, 연합뉴스, 이코노미스트, 뉴시스, 헤럴드네요. 자 이제 이 링크들을 갖고 내용을 추출해서 요약할 차례입니다.
https://www.yna.co.kr/view/AKR20230923039100004?input=1195m
https://economist.co.kr/article/view/ecn202309240009
https://newsis.com/view/?id=NISX20230923_0002461769&cID=10401&pID=10400
https://news.jtbc.co.kr/article/article.aspx?news_id=NB12145439
http://news.heraldcorp.com/view.php?ud=20230924000025
특정 URL에 접근해서 해당 내용을 요약하기에 가장 괜찮은 플로그인은 무엇일까요? 목적에 따라 달라질 수 있지만, 저는 Aaron Browser를 선택했습니다.
솔직히 ChatGPT 플러그인 스토어 검색 순위에서 알파벳 정렬의 우위를 점유하기 위한 이름이 아닐까 하는 혐의점 때문에(Aa로 시작하는 고유명사라니!) 괜히 나중에 테스트 해보았습니다만, 결과물도 이 녀석이 좋더라고요.
제가 이 글을 쓰고 있는 브런치북의 제목도 '탄트의 실험실'입니다만, 저 역시 늘 새롭게 실험하고 배워가는 입장이기 때문에, 더 나은 방법과 대안이 있는 경우 언제든 덧글로 알려주시면 감사하겠습니다.
후보군에 있었던 Webpage Summerizer와 Scraping Bee를 각각 살펴보겠습니다. 설명에 차이는 있지만, 모두 특정 URLs로 접근하여 해당 내용을 추출하고 요약할 수 있다는 기능을 포함하고 있습니다.
제가 몇 가지 테스트 후에 Aaron Browser을 택한 것은, 내용 추출 자체가 가장 깔끔했기 때문입니다. 함께 보실까요.
Webpage Summerizer에 들어오는 내용입니다. HTML 태그를 거의다 날것으로 그냥 들고 들어오네요. 물론 이 안에 추석 물가에 대한 내용도 담겨 있으니 요약은 작동합니다.
Scraping Bee도 이런 식으로, 가급적 본문에 해당하는 내용이 구분되어 있긴 하지만 파싱이 잘 안 되어서 내용이 들어옵니다. 물론 캡쳐에서 짤렸을 뿐 저 아래에 본문 텍스트가 있습니다.
결과물을 보면 아시다시피 Aaron Browser가 소위 파싱이 잘 되어있습니다.(기사 본문 외에 옆의 메뉴나 다른 추천 게시글 제목 텍스트까지 들어오는 것을 원천적으로 막을 수는 없습니다만)
똑같은 URL을 호출해서 더 적은 텍스트의 프롬프트에 더 유효한 내용이 많이 담기는 것이 당연히 좋겠죠. 사소하지만 속도나 퀄리티 등의 면에서, 결과물에 이점이 있을 것입니다.
Aaron Browser는 프롬프트 엔지니어링도 성의 있게 되어있는데, 궁금하신 분은 물론 언제든 열어볼 수 있습니다. 이를테면 아래와 같은 프롬프트는 아주 마음에 들죠.
"In responses to user, please prioritize organizing your language to provide a direct answer to the user's question before introducing more information for a more detailed description."
(사용자가 질문한 언어대로 답변하라는 프롬프트)
"Ensure the information provided is accurate, clear, and concise. Avoid overly complex or lengthy explanations when a simple, direct response will suffice, while in the mean time, make sure to provide all the information the user will found valuable based on your correct understanding of user's intention."
(요약을 명확하게 하라는 가이드에 해당하는 프롬프트)
(c) Aaron Browser
여기서 질문. 그냥 기사 내용을 텍스트로 ChatGPT에 모두 복사-붙여넣기 하고 요약을 돌리면 되는 것 아닌가요? 라고 누군가는 생각할 수도 있습니다. 그런 접근법은 틀리지 않습니다. 몇 개만 요약하려면, 괜히 이런 플러그인을 쓰는 것보다 손으로 하는 것이 더 빠를 때가 있죠.
하지만 반복하기 어렵고 손으로 붙여넣기를 하다보면 중간에 오류가 생길 수 있고 등등의 이유가 크지만, 아래 3번의 프로세스에서 그 차이가 더욱 나타납니다. 바로 페이지별로 게시 날짜와 출처가 다를 수 있는데, 이런 정보들을 효과적으로 일괄로 처리하려면 이렇게 URL마다 접근하는 것이 좋죠. 온라인에서 검색한 결과를 취합하는 데스크 리서치에 있어서는, 수십 번을 반복하기 편리하면서도 목적에 부합하는 방법입니다.
그럼 3단계로 넘어가 보시죠.
이제 URLs만 있으면 내용을 복붙하지 않고도 요약을 요청할 준비가 되었습니다. 그럼 데스크 리서치에서 요약을 위한 프롬프트는 어떻게 주면 좋을까요?
역시나 목적에 따라 방식은 여러가지가 있지만, 저는 사실적 보고 내용에 해당하는 팩트Fact와, 누군가의 의견을 구분해서 요약하는 것을 선호합니다. 그리고 항상 데스크 리서치는 해당 내용의 보고 시점과 출처가 중요하죠.
몇 번의 실험 후에 다음과 같은 프롬프트를 작성해보았습니다.
저는 시장 조사를 위한 연구원으로, '추석 물가'에 대한 조사를 진행하고자 합니다. 각 뉴스에서 보도된 내용들을 각각 사실과 의견으로 정리해야합니다.
<뉴스 링크 넣는 자리>
위의 URLs에서 다음의 규칙에 따라 요약 결과를 정리해주세요.
1) 보고된 시점 혹은 날짜가 있는 경우, 문서의 시작에 표시해주십시오. 시점과 날짜는 전체 문서 내용을 감안하여 파악해주세요. 다음과 같은 형식으로 표기해주십시오.
ex. (보고된 시점: 2023년 9월 20일 (확실치 않은 경우 시기 추정))
조사 내용 요약 본문 시작
2) 보고한 기관 혹은 출처를 꼭 명시해주세요.
ex. 출처: 00뉴스
3) Fact로 판단되는 것을 먼저 정리해주시고, 특정 인물이나 주체의 '의견'이 포함되는 경우 별도의 컬럼으로 요약해주세요.
ex.
Fact 요약
1. 전체 문서에서 추출된 내용
2. 개별적인 사실에 대한 서술
3. 계속해서 발견되는 사실에 대한 서술
등등
본문에 언급된 의견
1. OOO는 추석 물가에 관련하여 다음과 같은 의견을 남겼습니다.
2. ~~~
왜 이렇게 작성하는지, ChatGPT와 함께 일하는 방법에 대한 일반 원리의 이해는 저의 다른 글을 참고해주시거나, 웹에서 저보다 뛰어난 분들이 작성해주신 내용을 참고해주세요. (실시간 채팅 번역에 최적화된 프롬프트 만들기)
자, 그럼 위에 요청한 URL별 요약 결과는?
잘 작동합니다!
Fact와 의견을 구분해서 잘 정리해주고, 하나의 페이지 요약이 끝나면 계속해서 알아서 다음 페이지로 넘어갑니다. 실시간으로 타이핑이 뜨는 것을 보고, 또 Aaron Browser가 순차적으로 돌아가면서 개별 기사가 요약되는 것을 보는 재미가 있습니다. 전체 목록에 따라서 몇 분이 걸릴수도 있기 때문에 실행해놓고 커피를 타와도 됩니다.
이제 아주 간단한 프롬프트를 통해, 요약한 내용을 다시 정리시키면 됩니다.
동일한 세션 내에서 다음과 같은 프롬프트를 줘보도록 하겠습니다.
보고서 작성 1:
위의 Fact 요약 중에 핵심적인 숫자는 표로 정리해주세요 여러 개의 Fact 요약의 내용을 통합하여 표로 작성할 수 있다면 그렇게 해주시기 바랍니다.
항목/내용/출처/보고된 시점
보고서 작성 2:
주요 의견을 글로 문단으로 작성해주세요. 다음과 같은 형식으로 표로 정리해주세요.
발언자/발언내용/출처/보고된 시점/해당 발언이 포함된 URL
그럼 요약 내용 중 일부를 이렇게 일목요연하게 표로 다시 정리해줍니다. 전체적으로 물가가 올랐다는 의견이고, 혹은 정부에서 발표하는 물가와 현장 민심의 물가에 차이가 있다 뭐 이런 분분한 내용도 있습니다.
이에 대해 전체 글에 담긴 내용을 물론 다음과 같이 대화형으로 물어볼 수도 있습니다.
할루시네이션까지는 아니지만 물가 상승 이유는 살짝 목적에서 어긋나는 내용도 포함된 것 같습니다만, ChatGPT에게 100% 모든 일을 맡길 수는 없으니 역시나 작업자가 보고서에 포함시키는 데에 최종적 검수는 해서 완료해야겠죠.
그런데 애초에 한 번에 통합 보고서로 만들면 더 빠를 것 같은데, 왜 먼저 요약을 시키고, 그것을 다시 정리시킬까요? 여기에는 그 이해의 깊이에 따라 다양한 대답이 가능합니다.
간단한 대답: 그게 결과물이 훨씬 좋으니까요. GPT는 Step by Step을 잘합니다.
(조금 긴 대답: Step by Step이라는 문구 자체를 프롬프트에 주거나 혹은, 동시적인 업무 과정보다 순차적인 과업을 지식했을 때에 산출물이 더욱 좋다는 것은 LLM의 프롬프트 엔지니어링에 관련된 다수의 논문에서 보고하고 있는 내용입니다. 그 이유에 대한 대중적 설명으로는, 첫 째로 이는 GPT와 같은 LLM의 추론 특성 때문이라고 할 수 있습니다. LLM은 '주어진 내용'을 바탕으로 다음 내용을 추론하여 글을 작성하기 때문에, 한 번에 작성 완료한 이전 내용을 포함하여 그것을 바탕으로 글을 작성하는 것이, 여러 미션을 동시에 작성하는 것보다 확률적으로 효과적입니다. 둘째로 일반적으로 실은 하나의 과업으로 보이는 것이 논리적으로는 혹은 알고리즘적으로는 두세단계의 각각 다른 과업일 경우가 많기 때문입니다. 이를테면 보고서 작성은 하나의 과정이지만, 함축을 중심으로 하는 '요약'과, 그 내용을 특정 형태의 보고서로 작성하는 '정리'는 다른 목적의 과업이므로, 분리하여 수행하는 것이 효과적이라 볼 수 있습니다. 역시 이 괄호 안의 내용은 백프로 이해하지 않아도 GPT를 써먹는 데에 문제는 없습니다만..!)
정리한 내용을 차트나 다이어그램 등으로 시각화 하는 ChatGPT 플러그인은 다음에 다루도록 하겠습니다.
이상의 과정을 활용하면 계속 개별 페이지 URL을 추가하면서 요약 정리를 이어갈 수 있습니다. 수십 개의 페이지를 링크 URL만 넣어주고 요약하도록 명령을 해두고, 나머지 시간은 커피 한 잔 마시며 쉬면 됩니다.
제가 요즘 ChatGPT 얘기를 하면서 라떼 얘기를 너무 많이 해서 서대표도 이제 늙었구나 소리를 종종 듣습니다만, 그래도 말이죠, '세상 정말 좋아지지 않았습니까?'라는 말이 절로 나옵니다.
아시다시피, 문서 요약은 자연어 처리 분야의 유구한 과제였습니다. 최근에는 '그 이전의 어떤 알고리즘보다 LLM을 활용한 문서 요약이 항상 성능이 좋다는 것 자체를 연구한 논문'이 발표되었다던데(영문 웹에서 지나가다 보았는데 다시 찾으려니 못 찾겠네요 혹시 아시는 분은 덧글을..), 격세지감이죠.
LLM이 없던 시대에 소위 1세대, 2세대 자연어 처리를 경험해본 사람과, 커리어를 시작하고 나니 이미 LLM이 세상에 있었던 사람들이 툴을 바라보는 데에 차이점이 분명 있을 것 같습니다. 직접 스크래퍼를 짜고 데이터를 파싱해서 토크나이징을 하며 한땀 한땀 해나가던 대학원 시절을 생각하면 짠내가 나죠.
제가 제목에 살짝 주목을 끌기 위해 '데스크 리서치 속도를 5배 향상시키는'이라고 썼지만, 이 글 곳곳에 담긴 본질을 이해하신 분들은 5배도 겸손한 표현이라는 것을 이해해주시리라 믿습니다. 개인 업무를 수십배 수월하게 만들 단서가 많이 있죠.
더 중요한 것은 '생각하는 방법'입니다. 내가 반복해서 하는 일을 절차를 정의하고, 그것 중에서 손으로 하는것이 더 효과적인 일과 자동화시키는 것이 더 효과적인 일을 구분하고, 그것을 효과적으로 도와주는 도구를 찾고, 반복 작업이 5배, 10배 스케일업될 수 있도록 실행하는 것, 이런 활용을 위한 AI 리터러시와 업무 습관이 역시나 커리어의 성패를 가르는 것이겠죠.
역시나 프롬프트 노하우는 자신의 업무에 맞게 '쌓아가는' 데에 임팩트가 있다고 봅니다. 이런 글을 보고, 직접 실습해보고, 자신의 스타일에 맞게 튜닝해보는 실행력이 있는 분들이 항상 더 앞서 나가는 것이겠죠. 그리고 라이크을 눌러주거나 덧글을 써주시는 행동 역시 좋은 독자 분들의 센스가 아닐까요, 호호 :)
글쓴이 소개: 서기슬(탄트)
'탄트'는 제가 회사에서 동료들과 소통할 때에 쓰는 닉네임입니다. Constacts, Inc.의 Co-founder이자 CEO로서 진정성 있는 소통과 신뢰도 있는 관계의 문제를 풀기 위한 소셜 미디어 서비스를 만들고 있습니다. 온라인에 IT 서비스와 대중문화 등에 대한 다양한 에세이를 써왔는데요, '탄트의 실험실' 매거진은 스타트업 대표이자 또한 데이터 사이언티스트로서 일하고 연구하며 소소하게 깨닫은 인사이트를 공유하기 위해 쓰기 시작했습니다.
https://brunch.co.kr/magazine/constacts-life