본문 바로가기
← 메인으로
챗봇

RAG 기반 챗봇

게시 2024-12-18

RAG 기반 챗봇 프로세스를 단계별로 나타낸 흐름도. 사전 준비 단계(문서 수집, 문단 단위 분할/중요도 분류, 문서 임베딩 및 벡터 데이터베이스 저장 FAISS 활용)와 실시간 검색 및 생성 단계(1. 사용자 질문 벡터 변환, 2. Retrieval 관련 문서 검색, 3. Augmentation 프롬프트+문서 결합, 4. Generation LLM 기반 응답 생성, 5. 최종 응답 문서 출처 포함)로 구성됨. LangChain/LlamaIndex 통합 프레임워크로 질문 임베딩 → 관련 문서 추출 → 컨텍스트 강화 과정을 연결하는 구조.

  • 사용자 질문에 대해 외부 문서를 실시간으로 검색하고, 그 내용을 바탕으로 LLM이 답변을 생성하는 방식
  • FAQ 챗봇처럼 고정된 질문-답변 쌍이 필요 없고, 시나리오 챗봇처럼 대화 흐름을 사전 설계할 필요도 없음
  • 사내 문서, 기술 자료, 정책 정보처럼 정형화되기 어려운 정보를 다룰 때 특히 유용
  • 프로세스는 사전 준비(문서 수집/전처리/임베딩) → 실시간 검색(Retrieval) → 프롬프트 구성(Augmentation) → 응답 생성(Generation) 순으로 이어짐

사전 준비 단계 : 사내 문서/기술 자료/정책 등을 수집해 문단 단위로 분할하고 sentence-transformers로 벡터화. 생성된 임베딩은 FAISS 벡터 데이터베이스에 저장. 문서 품질과 분할 구조가 챗봇 성능에 직결되므로 전처리가 핵심

Retrieval(정보 검색) : 사용자 질문을 벡터로 변환하고 FAISS ANN 검색으로 유사도 높은 문서 문단을 실시간 추출

Augmentation(컨텍스트 강화) : 검색된 문서를 LLM 프롬프트에 결합. 시스템 프롬프트로 응답 범위를 제한. 모델이 불필요한 정보를 생성하거나 잘못된 내용을 답변하는 것을 방지

Generation(응답 생성) : LLM이 검색된 문서 내용을 참고해 자연스러운 문장으로 답변 생성. 단순 복사 붙여넣기가 아닌 문맥에 맞게 요약/재구성. 최종 응답에 문서 출처를 함께 제공

통합 프레임워크 : LangChain은 검색-생성 과정을 하나의 체인으로 연결. LlamaIndex는 문서를 챗봇이 처리하기 좋은 구조로 분할/태깅. 두 도구를 조합하면 전체 RAG 파이프라인을 빠르게 구현 가능

한계 : 검색 정확도가 낮거나 문서가 잘못 분할되면 오답 가능성 증가. LLM 입력 길이 한계로 참조할 수 있는 문서량에 제약. 문서 전처리 품질 관리가 필수