
- 사용자 질문에 대해 외부 문서를 실시간으로 검색하고, 그 내용을 바탕으로 LLM이 답변을 생성하는 방식
- FAQ 챗봇처럼 고정된 질문-답변 쌍이 필요 없고, 시나리오 챗봇처럼 대화 흐름을 사전 설계할 필요도 없음
- 사내 문서, 기술 자료, 정책 정보처럼 정형화되기 어려운 정보를 다룰 때 특히 유용
- 프로세스는 사전 준비(문서 수집/전처리/임베딩) → 실시간 검색(Retrieval) → 프롬프트 구성(Augmentation) → 응답 생성(Generation) 순으로 이어짐
사전 준비 단계 : 사내 문서/기술 자료/정책 등을 수집해 문단 단위로 분할하고 sentence-transformers로 벡터화. 생성된 임베딩은 FAISS 벡터 데이터베이스에 저장. 문서 품질과 분할 구조가 챗봇 성능에 직결되므로 전처리가 핵심
Retrieval(정보 검색) : 사용자 질문을 벡터로 변환하고 FAISS ANN 검색으로 유사도 높은 문서 문단을 실시간 추출
Augmentation(컨텍스트 강화) : 검색된 문서를 LLM 프롬프트에 결합. 시스템 프롬프트로 응답 범위를 제한. 모델이 불필요한 정보를 생성하거나 잘못된 내용을 답변하는 것을 방지
Generation(응답 생성) : LLM이 검색된 문서 내용을 참고해 자연스러운 문장으로 답변 생성. 단순 복사 붙여넣기가 아닌 문맥에 맞게 요약/재구성. 최종 응답에 문서 출처를 함께 제공
통합 프레임워크 : LangChain은 검색-생성 과정을 하나의 체인으로 연결. LlamaIndex는 문서를 챗봇이 처리하기 좋은 구조로 분할/태깅. 두 도구를 조합하면 전체 RAG 파이프라인을 빠르게 구현 가능
한계 : 검색 정확도가 낮거나 문서가 잘못 분할되면 오답 가능성 증가. LLM 입력 길이 한계로 참조할 수 있는 문서량에 제약. 문서 전처리 품질 관리가 필수