스터디를 진행하면서, 아래와 같은 사항들에 궁금해 하셨고, 이를 N8N 으로 제작하면 재미 있을 듯 하여 실험을 하였습니다.
카카오톡 대화 받아오기 ---> 매뉴얼 적으로 가능 (자동화 불가능)
개인적 데이터로 RAG 만들어서 질의에 활용하기 ---> 성공
N8N 으로 챗봇 만들기 ---> 성공
카카오톡으로 대화 전달하기 ---> 실패!
N8N 최종 결과물은 아래와 같습니다.
챗 결과 ("14기 n8n 에이전트 채팅방" 내용 RAG 화 이후 결과) :
진행 과정 및 고려 사항을 4 단계별로 구분하여 정리 하였습니다.
과정1. 카카오톡 대화 받아오기
kakao developers (https://developers.kakao.com/) 에 사용가능한 API 를 확인해 본 결과, 보내기는 존재하지만 가져오기가 없다는 것을 확인하였습니다. ㅠㅠ
GPT 에게 물어본 결과 아래와 같은 방법들은 추천해 주었고, "채팅 내보내기" 가 가장 효과적이라고 생각하여 이방법으로 진행 하였습니다.
참고로 국내 서비스들의 폐쇄적인 인터페이스를 확인할 수 있는 사항입니다. (GPT 답변 입니다.)
"14기 n8n 에이전트 채팅방" 에서 설정 --> 대화내용 내보내기 --> 메일 보내기 을 진행 합니다.
아래와 같이 메일로 전달 됨을 확인 하였습니다. (대화 내용은 압축 파일로 첨부 됩니다.)
과정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 를 변경해 볼 것 !