블로그에 챗봇을 추가했습니다

블로그에 챗봇 넣기
오랜만에 블로그에 기능을 하나 추가했습니다. 요새 자동화 관련 일을 많이 하고 있는터라 테스트겸 한 번 만들어 봤습니다. 궁금한 분들은 블로그 우측하단에 챗봇 아이콘을 누르거나 아래 링크로 채팅을 테스트 할 수 있습니다.
https://typebot.bonik.me/chatbot
NBI-2049 챗봇 소개
AI랑 애정섞인 대화를 나누고, 위로 받는 분들도 계시던데 저는 일시키려고 만든 놈입니다. 그래서 적절한 모델명을 달아줬습니다. 반쯤 그래도 나름 최신기술이 많이 들어간 놈입니다.
챗봇 용도
챗봇의 용도는 블로그 구독자나 방문자 분들이 자주 묻는 질문에 답하고, 자동화 과정을 좀 더 편리하게 처리하기 위함입니다. 뭐 요새는 문의하시는 분들도 별로 없지만 제가 일일이 응답하기 귀찮아서 떨어져 나간 분들도 있고, 저도 똑같은 말 되풀이 하는걸 좋아하지 않아서 만들었습니다.
챗봇 사용 예
- 음악 레슨에 관한 문의에 답변이 가능합니다.
- 음악 레슨 시강 예약이 가능합니다.
- 큐베이스 한국어 패치에 관한 문의에 답변이 가능합니다.
- 큐베이스 한국어 패치 요청 처리가 가능합니다.
- 그 밖에 기능이 더 있었는데 현재 베타 버전이라 일단 제외했습니다.

챗봇 제작
챗봇 제작에 관한 이야기입니다.
사용 서버 및 AI
리눅스 홈서버와 오라클 클라우드를 사용하고 있으니 리누스 토발즈, 래리 앨리슨 형님께 감사드립니다. 구글의 AI를 주로 사용하다 보니 선다 피차이 형님께도 감사드립니다. Ollama 제작진 분들에게도 감사합니다.
프론트엔드
프론트 엔드는 챗봇이다보니 typebot을 사용했습니다. typebot 처음 써봤는데 무지 좋습니다. 신뢰의 전문가 분위기 나는 대머리 형님분이 만드셨던데 정말 잘 만든 것 같습니다. HTML, CSS, JS같은 거 쓸 필요없이 마우스질만 하다보면 금방 뚝딱입니다.(물론 백엔드와의 연결은 뚝딱 아닙니다.)

필요한 것들이 대부분 만들어져 있어서 레고 조립하듯이 조립만 잘 하면 고급 챗봇도 얼마든지 만들 수 있습니다. 게다가 사용법도 쉬워서 처음 사용하는데도 별 어려움이 없었습니다.
typebot은 self-hosted로 구동하고 저장소도 minio(S3저장소처럼 로컬 저장소를 이용하게 해주는 앱)를 실행해서 처리했습니다.
백엔드
백엔드는 저의 최애 자동화 앱 N8N으로 만듭니다. N8N은 어디서 오류나는지도 쉽게 알 수 있어서 생산성이 정말 좋습니다. N8N은 약간 잔머리를 굴리면 프론트엔드, 백엔드 다 만들 수 있습니다. 이번에는 챗이라 프론트엔드에 typebot을 사용했지만 예전에는 그냥 N8N만으로 전부 다 만들어 버리는 경우가 많았습니다.
N8N이 하는 역할
당연한 이야기지만 대부분의 기능은 N8N위에서 돌아갑니다. (아래 이미지는 여러 개의 워크플로우 중 하나입니다.)

- RAG데이터 관리 : 문서로 작성한 FAQ 등의 txt 문서를 잘라서 임베딩하고 벡터 DB에 보관합니다. txt파일이 업데이트되면 RAG데이터도 업데이트 됩니다.
- 고스트 멤버쉽 확인 : 고스트 서버로 요청을 보내 회원인지 아닌지 확인
- 스트라이프 결제 확인 : 스트라이프 서버로 요청을 보내 결제내역 확인
- 레슨예약 접수 및 알림 : 레슨예약이 들어오면 주인놈(접니다)한테 알림
- 파일업로드 알림 : typebot에서 사용자가 파일을 업로드하면 주인놈한테 알림
- 파일 분석 : 큐베이스실행파일이 업로드되면 버전 및 유효성 체크
- 한국어패치 여부 확인 : 큐베이스버전으로 한국어패치 여부 확인
- QNA : 고객의 질문을 분석해서 RAG데이터를 바탕으로 답변 작성
- 등등
챗봇 운영
챗봇성능
베타버전치고는 생각보다 성능은 좋은 것 같습니다. 물론 RAG데이터를 잘 만들고 시스템 메시지를 잘 쓰고, 적절한 질문인지 적절한 답변인지 점검을 해야 합니다. 점검도 공짜가 아니다보니 AI를 도입할 때는 구조를 잘 짜야 비용 대비 쓸만한 것 같습니다.
운영비
방문자가 별로 없다보니 현재는 무료 한도 내에서 돌아가기 때문에 운영비가 따로 들지는 않습니다. Gemini API낭비를 위해 유효한 질문만 Gemini API를 소비하도록 구성해 놓았습니다. 자세한 내용은 비싼 팁이라 공개하지 않습니다. 그런데 구글이 최근 Gemini 한도를 줄이는 추세라 비용결제가 필요한 시점이 머지 않은 것 같습니다. 요새 구글 서버가 한도까지 돌아가다가 503오류(서버가 처리할 수 없는 상태)를 뿜는 일이 많더군요.
챗봇 제작 후기...
반쯤 재미 삼아 경험 삼아 만들어봤는데 요새 도구들이 정말 좋다는 걸 많이 느낍니다. 처음에 AI사용할 때는 계속 파이썬 코드만 들여다 보면서 작업했는데 요새는 이쁜 화면 보면서 작업하니까 좋습니다. 원래 구상했던 기능이 많은데 시간날 때 마다 하나씩 추가하도록 하겠습니다.
요새 다들 AI를 외치는데 AI도 재밌지만 저는 한참 전부터 자동화에 관심이 많아서 자동화 작업을 많이 하고 있습니다. AI도 쓰긴 하지만 적절한 코딩과 임베딩만 잘 활용해도 AI api비용을 줄일 수 있는 것 같습니다.