소개
뉴스봇 프로젝트 소개
바쁜 출근길에 오늘의 뉴스를 한눈에 볼 수 있는 방법을 고민하다 개발하게 된 뉴스봇입니다.
주요 기능
뉴스 요약 제공
뉴스 이해도를 확인하는 간단한 퀴즈 제공
자동화 구성
지정된 시간에 n8n이 자동 실행
네이버 뉴스 크롤링 수행
크롤링된 내용 정리 및 가공
텔레그램을 통해 사용자에게 정보 전달
이러한 구조로 사용자가 매일 아침 최신 뉴스를 쉽게 접하고 이해할 수 있도록 설계했습니다.
진행 방법
n8n에서 특정시간에 뉴스내용 크롤링
n8n 스케쥴 트리거를 이용하여 특정시간에 동작하도록 설정하였습니다.
뉴스내용 크롤링 및 가공
HTTP Request 노드로 불러오게 되면 아래와 같이 HTML로 가져오게 되고
HTML 내용 중 필요한 내용을 추리기 위해 HTML 노드로 다시 변환 해주었습니다.
기사의 제목과 내용을 CSS Selector를 설정을 해야하는데, 이 부분은 AI의 힘을 빌렸습니다.
HTML 원문을 주고 데이터를 뽑아내고 싶다고 하니 잘 알려주었습니다.
하지만 문제가 또 있었는데요, 테이블이 하나로 출력되어 다시 테이블을 나누기 위해 코드 노드를 사용하여 나누어 주는 작업을 했습니다.
코드 실행 후 테이블이 나누어진 걸 확인 할 수 있습니다.
AI agent를 사용하여 기사내용 요약 및 의견 달아주기
정리된 기사를 가지고 AI agent를 사용해 요약 및 의견을 달아주도록 했습니다.
프롬프트는 정리된 테이블에서 제목과 내용을 매칭시켜 주었구요.
System Message엔 명령을 잘 처리할 수 있도록 역할을 지정해 주었습니다.
하지만 Ai agent 결과가 하나의 테이블로 나오기 때문에 Structured Output Parser를 이용하여 테이블 다시 구분하였습니다.
결과는 아래와 같이 잘 나왔습니다.
나온 데이터를 저장하기
이제 나온 결과를 저장하기 위해 간단한 구글시트를 사용하였습니다.
각 행과 열에 title, article, opinion에 맞춰 Ai agent의 결과를 저장하였습니다.
기사를 가지고 간단한 문제 만들기
구글시트에 저장된 기사를 불러와 Ai agent를 이용하여 문제를 만들었습니다.
기사를 요약하는 Ai agent와 같이 설정 하였고, 프롬프트만 수정하였습니다.
위와 동일하게 구글시트에 문제 및 정답이 작성됩니다.
요약된 기사는 텔레그램 노드로 보내지게 되고, 요약된 기사로 문제를 만드는거 까지 한 사이클로 구성하였습니다.
문제를 주고 대답을 주고받는 기능을 구현하기 위해선 하나의 워크플로우로 안될거 같더라구요. 그래서 텔레그램의 입력을 감지할 수 있도록 텔레그램 트리거를 하나 더 추가했습니다.
텔레그램 봇으로 뉴스를 전달하고 문제를 보고 정답을 감지할 수 있는 워크플로우입니다.
봇이 문제를 내주고, 사용자가 메세지를 보내면 Ai agent가 감지하여 정답을 판별할 수 있도록 제작했습니다.
구글시트에 저장된 문제를 보고 텔레그램으로 전송하고, 정답을 입력 받으면 구글시트에 저장된 정답을 비교하여 상대방에게 알려줍니다.
주의할점은 해당 워크플로우를 상시 동작하도록 설정해놔야 바로바로 입력을 감지합니다..
출력결과물
<뉴스 알림봇>
<문제봇>
이처럼 상호작용하며 문제를 내주는 봇을 만들었습니다.
결과와 배운 점
처음 n8n을 사용하여 만들게 된 프로젝트였습니다. 머릿속에 구상한 내용을 실제로 구현하는 과정이 생각보다 어려웠습니다. GPT 등 여러 AI의 도움을 받아 개발했지만, n8n에 대한 기본 지식이 있었다면 더 수월하게 진행했을 것이라는 생각이 들었습니다. 그래도 지피터스 커뮤니티의 다양한 사례 덕분에 영감을 얻어 적용한 기능들도 있었고, 이번 프로젝트를 통해 n8n의 다른 기능들도 한번 사용해보고 새로운 프로젝트에 도전해보고 싶은 욕심이 생겼습니다.