나만의 맞춤형 챗봇 구현기: RAG와 오픈소스로 만드는 CS챗봇의 시작
소개
저는 개인화된 FAQ 챗봇을 만들어보고자 했습니다. 기존의 일반적인 챗봇과는 달리,
사용자의 문서와 데이터를 기반으로 정확한 답변을 제공하는 시스템을 구축하고자 했습니다.
주요 목표:
맞춤형 FAQ 시스템 구축
RAG(Retrieval Augmented Generation, 검색 증강 생성) 기술 활용
오픈소스 기반의 자체 호스팅 가능한 솔루션 개발
진행 방법
사용한 도구
1. 문서 처리/임베딩:
벡터 데이터베이스 - https://www.pinecone.io/
임베딩 모델 - openai의 text-embedding-3-small을 사용했어요. 차원이 1,536
업로드한 문서를 쪼개서 관련된 차원에 맞게 분류한 다음 저장을 하는 개념이라고 이해함.
이렇게 임베딩을 하면, LLM이 문서를 편하게 가져올 수 있다고 함.
2. 챗봇 구현:
n8n.io, self-hosting방법으로 설치하고, 개인도메인을 연결했습니다.
원래, 로컬서버를 만들어서 사용할 수 있는 데, 챗봇을 외부에서 사용하려면 도메인이 연결이 되어야 합니다.
지난 스터디는 쉬고, 홈서버만드는 거 살펴봤어요.
제 서버.
독립된 url로 챗봇의 레이아웃을 사용
브라우저에 url을 입력하면 바로 사용할 수 있음.
proxmox라는 VM을 관리하는 OS를 설치했어요.
클라우드서버를 이용해도 되지만, 왠지 무서워서 홈서버로 접근해보려고 함.
리눅스서버를 설치하고, 도커로 배포해서 사용해보려고 했지만, 더 막강한 게 눈에 띔
그게 바로 proxmox,
컴퓨터 1대에 이 서비스를 설치하면, 가상으로 여러대의 PC를 사용할 수 있습니다.
우분투서버도 설치하고, 윈도우서버도 설치하고, 시놀로지나스도 설치하고
스냅샷기능이 있어서 언제라도 되돌릴 수 있고 -> 초보는 안전장치가 있어야 함.
저는 가상피씨를 20년정도 사용했는 데, 이 스냅샷기능은 엄청 편하답니다.
제꺼 아니고, 대략 이런 식으로 생겼어요. 왼쪽에 102,104 이런게 하나의 컴이라고 보시면 됩니다.
구현 과정
1. 문서 전처리 및 데이터베이스 구축
단순하게, 회사소개에 필요한 내용을 워드로 정리해서 구글드라이브에 업로드한다.
구글드라이브에 파일이 새로 생성되면 이걸 트리거해서 벡터디비에 저장하는 것으로 구현한다.
(구글인증이 제일 어려워. 이것만 잘해도 뭐든 할 수 있을 것 같음)벡터 데이터베이스에 임베딩 저장
2. n8n의 chat node 살펴보기
독립된 웹이 이미 구현되어 있음.
이 웹에서 대화를 하면 됨
간단하게 UI를 변경할 수 있음.
2가지 모드가 있는 데,
이 챗을 독립적으로 동작하도록 하거나, 다른 웹페이어 임베딩해서 사용할 수 있음.
동작순서
문서준비
# GPTERS AI 스터디 매뉴얼
## 1. 프로그램 개요
- 다양한 분야의 AI 스터디 15개 과정 제공
- 7,000여 개의 AI 활용법을 실무에 적용 가능
- 업무자동화, 콘텐츠, 개발, 교육 등 15개 분야의 수백 개 활용 사례 제공
## 2. 스터디 신청 및 참여 방법
### 수강 신청 기간
- 접수 기간: 11/4(월) 11AM - 11/8(금) 3PM
- 신청하지 않은 스터디도 무료 참여 가능
### 수강 프로세스
1. 1주차
- 월-목: 스터디별 AI 활용 사례 실습 후 수강 신청
- 토요일: AI 오프 모임 (오프라인으로 만나 친해지기)
2. 2-4주차
- 월-목: 각자 AI 활용 후 스터디에서 공유
- 토요일: 베스트 발표회 (최고의 발표자 모아 듣기)
## 3. 제공 스터디 커리큘럼
### 기초 트랙
1. AI와 작가되기에서 전자책 출간! - ISBN 등록부터 판매까지
2. 왕초보도 콘텐츠 크리에이터 - 영상, 블로그, 브로슈어까지
### 기술 트랙
3. AI 코딩 주도 - 파이썬 사무자동화 스터디
4. ChatGPT 1000% 활용하는 프롬프트 스터디
5. 2천만 크리에이터의 프롬프트 컨설팅 수준 따라가기
6. LangGraph 코딩 강의로 나만의 서비스 만들기
### 개발 & 프로젝트 트랙
7. Cursor로 개발 생산성 극대화하기
8. 팀원을 위한 맞춤형 AI 업무 자동화하기
9. AI 프로젝트 스터디: 손쉬운 POC 완성하기
### 교육 & 연구 트랙
10. 마케터를 위한 골든 룰 - 효과 극대화의 선례부터 만들기
11. AI 신사업 개발 - 기술 트렌드 파악하기
12. 미래형 강의를 위한 에듀테크M 툴 활용 정복
### 콘텐츠 & 미디어 트랙
13. Midjourney, gen3, Kling으로 만드는 영상 프로덕션
14. 스터디의 정답은! AI로 1위 사업 업무 자동화
15. AI와 마크다운을 활용한 나만의 지식관리 & 연구
## 4. 특징 및 혜택
- 1개 가격으로 15개 스터디 참여 가능
- 시간이 된다면 15개 모두 참여 가능
- 매일 전달되는 베스트 AI 사례 이메일
- 1-4주차 평일: 원하는 요일만 참여해도 OK
## 5. 참고사항
- 스터디 13기 모집 마감
- 스터디 14기 오픈 시작 예정
- 대기 신청하시고, 오픈 직후부터 받을 수 있는 얼리버드 혜택 확인하세요
## 6. 학습 환경
- 오프라인 강의장 제공
- 실습 환경 완비
- 프로젝터 및 스크린 구비
- 참여자 간 교류를 위한 공간 마련
문서를 구글드라이브에 업로드합니다.
구글드라이브에 문서가 생성되면 자동으로 pinecone에 저장을 합니다.
pinecone에 저장된 모습
이렇게 벡터디비에 저장이 되면 이 내용을 바탕으로 채팅을 할 수 있습니다.
n8n이 좀 더 편해보이는 부분이 이런 거였어요. Ai Agent라는 메가노드에 여러가지 툴을 붙혀서 하나의 기능을 할 수 있는 데, 이 방식이 좋아보였습니다.
실제 채팅url
결과와 배운 점
성과
자체 데이터 기반의 정확한 답변 제공(을 하려면, 프롬프트의 정교화가 있어야겠죠?)
오픈소스 기반으로 비용 효율적인 구현, 내 컴에 서버를 구축하다.
여러대의 서버를 쉽게 설치가능하니 소상공인들 대상으로 간단하게 구축해줄 수 있을 것 같음.
self-hosting, Docker, 우분투서버, proxmox등을 배우게 됨.
배운 점
RAG 시스템의 실제 구현 경험
벡터 데이터베이스를 사용해볼 수 있었다.
오픈소스가 너무 좋다.
n8n도 좋다.
향후 계획
웹페이지에 챗봇위젯을 장착하는 걸 해보려고 함.
노코드 웹페이지제작 서비스에 사용할 수 있는 지 여부
오픈소스 LLM을 이용해서 무료모델로 대체해서 사용