소개
뉴스봇 프로젝트 소개
바쁜 출근길에 오늘의 뉴스를 한눈에 볼 수 있는 방법을 고민하다 개발하게 된 뉴스봇입니다.
주요 기능
뉴스 요약 제공
뉴스 이해도를 확인하는 간단한 퀴즈 제공
자동화 구성
지정된 시간에 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의 다른 기능들도 한번 사용해보고 새로운 프로젝트에 도전해보고 싶은 욕심이 생겼습니다.