2024.03.31

보도자료 요약봇 만들기


뒤로가기

보도자료 요약봇

얼마전에 친구의 부탁으로 만들어봤다. 친구는 업무상의 이유로 이런저런 사이트를 들어가서 글을 확인해봐야한다. 글이 올라왔는지 확인해야하고, 글이 올라왔으면 들어가서 내용을 확인해봐야한다. 게다가 공공기관은 대부분 PDF, HWP 형태로 올리기 때문에 글을 읽는게 상당히 번거롭다고 한다. 그래서 나한테 이를 자동으로 해줄수는 없냐고 물어보는 것이었다. 필요한 기능을 정리해보면 크롤링, 저장, 요약, 알림 정도였다. 기술적으로 문제가 될 부분은 없고, 게다가 요즘은 GPT도 있으니 내용을 요약하는 것은 GPT에게 맡기면 된다는 생각이 드는 순간

만들어보면 재밌겠는데?

라는 생각이 머릿속을 스쳤다. 바로 맥북을 열고 개발을 시작했다.

보도자료 요약봇은 이미 만들었고, 한달째 잘 돌아가고 있다. 근데 채널 인원은 10명뿐이 안된다ㅋㅋ. 역시 홍보가 제일 어려운것 같다.

개발 환경 & 운영 환경

파이썬을 활용해서 개발했고 개발은 주로 맥북에서 진행했다. 다만, 맥북을 24시간 켜두고 서버를 돌려둘수는 없기때문에 프로그램을 돌릴 환경이 필요하다. 이는 라즈베리파이를 활용했다. 3년전 쯤에 이것저것 해보면서 라즈베리파이를 3개 구매했는데, 그 중 하나를 사용한다. Raspberry Pi 4 Model B 8GB 모델이다. 엘레파츠에서는 현재 10만원에 판매되고 있는데, 당시에 구매할때에는 방열케이스에 이것저것 같이 구매하느라 대당 20만원 정도 지출했던걸로 기억한다. 다만 최근에 라즈베리파이5가 나와서 구매하실 분들은 참고하시면 되겠다.

결론은 개발은 맥북에서 하고, 24시간 돌려둘 서버는 라즈베리파이를 활용한다.

구조

운영 환경에서는 두개의 서비스(데몬)을 실행시킨다. Crawler와 Notifier가 그것이다. 서비스로 돌리고 있기 때문에 프로그램 수행 중 무언가 프로세스를 죽여야하거나, 문제가 생기거나, except가 안될때 프로세스를 죽이면 바로 다시 새로운 프로세스가 실행된다.

Crawler

  • 크롤링할 사이트 들어가서 크롤링
  • PDF, HWP, HWPX 등 문서 읽기
  • 문서 열어서 ChatGPT API로 요약 요청
  • DB에 요약한 결과 및 기타 크롤링 정보 Insert

Notifier

  • DB에서 텔레그렘으로 알려야하는 메시지 있는지 체크
  • 있으면 메시지 보내고, DB Update
  • 뒤로가기