스터디를 진행하면서, 아래와 같은 사항들에 궁금해 하셨고, 이를 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 를 변경해 볼 것 !
과정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" 과는 거리가 먼 것을 확인하여 더 이상 진행하지 않도록 결정 하였습니다.