n8n 으로 챗봇 만들기: 카카오톡 대화 내용으로 RAG 만들어서 사용 (사례2)

스터디를 진행하면서, 아래와 같은 사항들에 궁금해 하셨고, 이를 N8N 으로 제작하면 재미 있을 듯 하여 실험을 하였습니다.

  • 카카오톡 대화 받아오기 ---> 매뉴얼 적으로 가능 (자동화 불가능)

  • 개인적 데이터로 RAG 만들어서 질의에 활용하기 ---> 성공

  • N8N 으로 챗봇 만들기 ---> 성공

  • 카카오톡으로 대화 전달하기 ---> 실패!

N8N 최종 결과물은 아래와 같습니다.

앱의 프로세스를 보여주는 흐름도

챗 결과 ("14기 n8n 에이전트 채팅방" 내용 RAG 화 이후 결과) :

중국어가 글을 쓰는 종이 한 장
중국어가 글을 쓰는 종이 한 장

진행 과정 및 고려 사항을 4 단계별로 구분하여 정리 하였습니다.

과정1. 카카오톡 대화 받아오기

kakao developers (https://developers.kakao.com/) 에 사용가능한 API 를 확인해 본 결과, 보내기는 존재하지만 가져오기가 없다는 것을 확인하였습니다. ㅠㅠ

전화로 한국어의 스크린 샷

GPT 에게 물어본 결과 아래와 같은 방법들은 추천해 주었고, "채팅 내보내기" 가 가장 효과적이라고 생각하여 이방법으로 진행 하였습니다.

한국어 유형이 다른 테이블

참고로 국내 서비스들의 폐쇄적인 인터페이스를 확인할 수 있는 사항입니다. (GPT 답변 입니다.)

다른 유형의 한국어를 보여주는 테이블

"14기 n8n 에이전트 채팅방" 에서 설정 --> 대화내용 내보내기 --> 메일 보내기 을 진행 합니다.

iPhone의 한국어 스크린 샷

아래와 같이 메일로 전달 됨을 확인 하였습니다. (대화 내용은 압축 파일로 첨부 됩니다.)

Kacook 채팅이라는 단어가있는 채팅 페이지의 스크린 샷

과정2. RAG 만들기

목표는 Gmail 에서 KaKao 메일을 가져와서, 첨부 파일을 RAG 에 집어 넣기 였습니다. 아래 링크 영상을 참조 하였습니다. (일부는 응용)

https://www.youtube.com/watch?v=Fk5pQ0fQkJ0&t=457s

N8N 워크플로우를 아래와 같이 만드는 것이 목표 입니다.

프로세스의 흐름도

먼저, RAG 에 삽입 할 파일을 gmail 에서 추출 합니다. 워크플로우에서 Gmail 노드에 아래와 같이 설정 합니다.

이메일 계정 설정의 스크린 샷

그리고 "decompress 노드" 와 "Extract from File 노드" 를 사용하여 별도의 코딩 없이 대화 내용이 담긴 Text 파일을 json 화 할 수 있었습니다.

두번째는 youtube 에 설명한 것처럼 supabase 가입, Vector 용 Table 생성을 진행합니다. 이때 Table 명을 확인하고, "Supabase Vector Store" 노드에 Table 명을 설정 합니다.

워터 스토어를 보여주는 웹 페이지의 스크린 샷

실행해보면 아래와 같이 채팅 내용이 Chunk 화 되어 Table 에 저장 됨을 확인할 수 있습니다. (n8n 워크플로우를 실행 하였는데, 아래 Table 에 변화가 없다면, 과정상 문제가 있는 것이기 때문에 다시 시도해 볼 필요가 있습니다.)

고려 사항: 성능이 만족 스럽지 않을 경우 Chunk Size, Chunk Overlap 를 변경해 볼 것 !

고객 스플리터의 설정을 보여주는 화면

과정3. Chatbot 만들기

해당 과정은 특별한 설정 없이 youtube 내용 그대로 따라하면 됩니다.

주의할 점은 Vector Store 생성에 사용한 "Embeddings" 노드를 동일하게 해야 한다 입니다.

프로세스 작동 방식을 보여주는 흐름도

과정4. 채팅 결과를 내 카카오톡으로 전달하기

먼저 kakao developers 에서 카카오톡 메시지 샘플을 따라해 봅니다.

아래 페이지에서 API 동작을 테스트 합니다.
https://developers.kakao.com/tool/rest-api/open/post/v2-api-talk-memo-default-send

결과는 아래와 같이 카카오톡 으로 제대로 전달 됨을 확인 하였습니다.

전화에 한국어 앱의 스크린 샷

하지만, N8N 워크플로우에서 "HTTP Request" 노드로 메세지 전달하기 위해서는 아래와 같이 "플랫폼 등록" --> "카카오 로그인 활성화" --> "동의 항목" 을 진행 해야 하며,

아래와 같은 정해진 포맷으로만 전달할 수 있기 때문에, 내가 생각한 "Auto Chatbot" 과는 거리가 먼 것을 확인하여 더 이상 진행하지 않도록 결정 하였습니다.

전화에 한국어 앱의 스크린 샷

7
4개의 답글

👉 이 게시글도 읽어보세요