SimChat + RAG(OPENAI Embedding + Retrieve)
왕곰의 취미박스
지금까지 근근히 일하다가 시간날 때마다 계속해서 챗봇 기능을 더 업데이트 해야된다고 생각했습니다.
그리고 가장 관심있었던 RAG기능.
이걸 꼭 넣어야겠다 생각을 했었습니다.
그러나 오픈소스 모델인 Llama를 사용하려면 높은 사양의 GPU서버가 필요했기 때문에
Bert 모델을 통한 질문 유사도 측정 기능만을 적용시킨 후 반쯤 포기하고 있었습니다.
그래도 시대가 시대인 만큼 꼭 넣어봐야겠다는 욕심에 다시 제작을 시작했어요.
포인트는 다음과 같습니다.
1. meta의 Llama를 감당할 서버 비용은 답이 없다.... OpenAi의 API KEY를 사용하자....
2. 챗봇은 RAG기능이 반드시 필요하다. private한 Document내에서 답변하자.
(자기소개서, 동화책 소개, 문제집 제작, 제품 설명서 등등)
3. 파일을 복수로 등록해서 한번 Vectorize한다.
(일단 지원가능한 파일은 PDF, TXT, CSV, xlsx로 한정하자)
4. 속도는 어느정도 나오나? (로컬이라면 노답이지만 OPENAI를 이용하면 과금되어도 속도는 괜찮다)
대략적인 요구명세가 나왔습니다.
그럼 이제 흘러가는 순서를 이렇게 해봅니다
0. 해당 기능은 반드시 OPEN AI APIKEY가 필요하다.
1. 학습을 위한 데이터셋 파일을 업로드 할 수 있어야 한다.
2. 학습을 진행할 경우 업로드된 파일을 전부 load해서 병합시키고 embedding을 시키고 vectorStore 제작. 각 챗봇에 알맞은 domain별로 계층을 나누어 둔다.
3. vectorized 된 데이터 셋에 Rerive시킨 결과를 보여주도록 한다.
그래서 만들어진 결과 잘 작동이 되는 것 같습니다.
사용자 UI 및 서버파일 작성등이 생략되었지만, 생각보다 이것도 꽤나 걸렸습니다.
Exception처리가 정말 많더라구요....
그래도 RAG가 문제없이 되는걸 보니 뿌듯하기도 하구요 ㅎㅎ
다들 한번씩 들러서 질문하거나 챗봇 만들어서 사용해보셔도 좋습니다.
(챗봇 만들기)
https://simchat.aimor.site/
(자기소개서 챗봇 GPT 모드)
https://simchat.aimor.site/msg?c_key=a8228927-9bbb-448f-886b-9ed41997b192
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 10월 14일 오전 8:25