안녕하세요.
지난 시간에는 Amazon Bedrock을 활용해서 Chatbot을 구현하는 방법에 대해 알아보았는데요.
최근 AI 챗봇의 활용도가 높아지면서 단순히 모델의 사전 학습 지식에 의존하는 것을 넘어서 최신 정보나 사용자 맞춤형 응답을 제공할 수 있는 구조가 중요해졌습니다. 이때 등장하는 개념이 바로 **RAG(Retrieval-Augmented Generation)**입니다.
이번 시간에는 Amazon Bedrock에서 제공하는 Knowledge Base를 활용하여 이 RAG를 적용한 Chatbot을 구현하는 방법에 대해 알아보겠습니다.
RAG란?
**RAG (Retrieval-Augmented Generation)**는 이름 그대로 “검색 기반 생성”을 의미합니다.
기존의 언어모델이 사전 학습된 정보에만 기반해 답변을 생성했다면, RAG는 외부 지식 저장소에서 정보를 검색해 모델에 함께 제공함으로써, 더 정확하고 최신의 답변을 생성할 수 있도록 돕습니다.
-
정보 검색(Retrieval): 외부 문서에서 질문에 적절한 정보를 찾아오고
-
응답 생성(Generation): 찾아온 정보를 기반으로 모델이 응답을 생성합니다.
Amazon Bedrock + Knowledge Base로 구현하는 RAG
Amazon Bedrock은 Anthropic, AI21, Meta 등 다양한 LLM(대형 언어모델)을 API로 사용할 수 있게 해주는 서비스입니다. 여기에 Knowledge Base(지식기반) 기능을 결합하면, S3에 저장된 사내 문서나 가이드 문서를 기반으로 질문에 답하는 챗봇을 손쉽게 만들 수 있습니다.
RAG 기반 챗봇 호출 흐름
-
사용자 질문 입력
-
Knowledge Base가 질문을 벡터화하여 유사 문서를 검색
-
검색된 문서 조각과 함께 Bedrock LLM에 프롬프트 전달
-
LLM이 답변 생성 및 반환
구현 과정
1. 문서 준비 및 Knowledge Base 구성
-
먼저 S3 버킷에 사내 문서(PDF, TXT, DOCX 등)를 업로드합니다.
(저희는 아마존 분기별 실적 보고서를 업로드 하였습니다.) -
Amazon Bedrock 콘솔에서 Knowledge Base를 생성을 클릭하고, 해당 S3 버킷을 연결합니다.
-
사용할 임베딩 모델 (예: Titan Embeddings G1) 을 선택합니다.
- 지식 기반을 생성합니다.
2. RAG 기반 챗봇 호출 테스트
-
위에서 만든 지식 기반 ID를 가지고 지식 기반을 Chatbot과 연결합니다.
-
S3에 저장되어 있는 문서와 관련 없는 “오늘 점심 메뉴 추천해줘”, “오늘 날씨 알려줘” 등의 질문을 하고 Chatbot의 대답을 확인합니다.
관련 문서가 없기에 S3에서 참조하지 않고 일반적인 LLM 모델의 답변을 제공합니다. -
다음으로는 S3에 저장되어 있는 아마존 1분기 실적에 대해 알려달라고 질문했을때 답변을 확인합니다.
S3에 있는 아마존 1분기 실적 보고서 파일을 참조하여 대답한 것을 확인할 수 있습니다. -
다음으로는 S3에 저장되어 있지 않은 다른 회사의 실적에 대해 알려달라고 질문했을때 답변을 확인합니다.
관련 문서를 찾을 수 없어 일반적인 LLM 모델의 답변을 제공한 것을 확인할 수 있습니다.
장점 및 주의사항
🎯 장점
-
최신 정보 반영 가능: LLM이 학습하지 않은 문서도 활용 가능
-
사내 맞춤형 챗봇 구축: 사내 정책/문서 기반 QA 가능
-
모델 업데이트 없이 데이터만 변경해 응답 품질 개선 가능
⚠️ 주의사항
-
문서 구성 품질에 따라 응답 정확도 좌우됨
-
과도한 문서량이나 불필요한 내용은 비용 증가 및 정확도 저하로 이어질 수 있음
-
Knowledge Base 연결 시 지정한 S3 문서만 참조하므로, 문서 업데이트 관리가 중요함
마무리하며
Amazon Bedrock과 Knowledge Base를 활용하면, RAG 기반 Chatbot을 빠르게 만들 수 있습니다.
특히 사내 문서를 기반으로 질문에 정확하게 답할 수 있어, 고객 지원 챗봇, 내부 헬프데스크, 전문가 보조 시스템 등 다양한 분야에 효과적으로 활용될 수 있습니다.
Amazon Bedrock과 Knowledge Base를 잘 활용하셔서 RAG 기반 Chatbot을 구축하시는데 유용하게 사용하시길 바랍니다.
감사합니다.