저도 아래의 다른분의 post와 유사하게 flowise를 이용해 LLM에 기존 문서 학습하는 과정을 진행해보았습니다.
목표
상담을 하는 데에 있어 중복된 질문이 많아 이에 대한 업무 로딩을 줄이는 것이 목적
현재 보유하고 있는 의료 질문-답변 데이터 기반 + 기존 데이터에 없는 질문의 경우 필요 시 새로운 답변 생성하는 챗봇
'Flowise'?
Flowise는 상업적 용도와 개인 용도 모두 무료인 오픈 소스 프로젝트입니다. 이는 LangChain.js를 기반으로 하며 LLM(대형 언어 모델) 기반 애플리케이션 개발을 위한 고급 그래픽 사용자 인터페이스를 제공합니다. 이러한 애플리케이션을 Gen Apps, LLM Apps, Prompt Chaining, LLM Chains 등이라고도 합니다. 노코드로 LLM 기반 애플리케이션 구축 가능
참조
https://www.youtube.com/@leonvanzyl/videos
https://github.com/FlowiseAI/Flowise
준비물
질문-답변 데이터
openAI API key를 사용하기 위한 결제
serp API API key (생소한 질문에 대처하기 위해 serp의 구글 검색 결과를 추가하기 위해)
벡터 DB인 pinecone API key
과정
-맥북 환경
Download and Install NodeJS https://nodejs.org/en/download
Flowise 설치
NodeJS 설치 후 맥북의 경우 '터미널' 실행
터미널에서 아래 순서로 입력
오류 발생..
맥북의 접근성 문제로 생각되어 구글링으로 문제 해결..
flows start
2번과 3번 수행
Chatflow 생성
구조 1 : 내가 가지고 있는 질문-답변 데이터를 업로드
구조 2 : 업로드한 데이터를 기계가 이해할 수 있도록 벡터로 변환, 임베딩
구조 3 : 매번 임베딩을 새로할 수 없으니, 해당 벡터들을 저장하는 벡터DB 이용해서 저장(ex. pinecone)
구조 4 : 임베딩 백터 데이터와, AI chat model, 그리고 이 둘을 연결하는 버퍼 메모리 연결 (버퍼 메모리 ; 버퍼메모리는 데이터의 처리속도나 처리단위, 데이터 사용시간이 서로 다른 두 장치나 프로그램 사이에서 데이터를 주고받기 위한 목적으로 사용되는 장치)
구조 5 : 구조1~4까지를 하나의 툴로 묶음
구조 6 : 구조 5(1~4 묶음)에 추가하여, 생소한 질문에 대처하기 위한 검색 tool을 추가
구조 7 : 구조 5와 구조 6을 하나의 agent로 연결
chatflow 1 : 구조1~3을 벡터 DB에 일차적으로 저장하기 위한 flow 구축 > 한번 돌려서 업로드한 데이터가 임베딩되어 벡터 DB에 저장되도록 하기 위한 목적
chatflow 2 : chat flow 1에서 벡터DB에 저장된 벡터들을 이용한 tool인 구조 5와 sera API를 이용해 구글 검색 결과를 가져올 수 있는 tool인 구조 6을 합쳐서 구성
serp API 추가가 필요할 것으로 생각한 이유
serp API 추가 전
serp API 추가 후