Langchain으로 소설 "난쟁이가 쏘아올린 작은 공" PDF 문서에 대한 답변을 제공해 줄 수 있는 간단한 RAG 애플리케이션을 구현했다. (코드에 대한 설명은 Gist 주석으로 대신한다.) 아직 잘 모르는 상태로 무작정 다이브했으니, 간단하게 개념을 정리하겠다. LLM이 답변을 지어내는 것을 방지하고, 커스텀한 컨텍스트 제공을 위해 LLM을 이용한 챗봇에는 검색증강생성(RAG)라는 기술을 사용한다. RAG 애플리케이션은 일반적으로 두 구성요소로 이루어진다. 1. 인덱싱(Indexing) - 소스에서 데이터를 수집하고 인덱싱하는 과정2. 검색과 생성(Retrieval and generation) - 유저에게 쿼리를 받아서 인덱스에서 관련 데이터를 찾아 모델에게 전달하는 실질적인 RAG 체인이다. 인..