n8n의 RAG
RAG란 무엇인가 # 검색 증강 생성(Retrieval-Augmented Generation, RAG) 1 은 언어 모델과 외부 데이터 소스를 결합하여 AI 응답을 개선하는 기법입니다. 모델의 내부 학습 데이터에만 의존하는 대신, RAG 시스템은 관련 문서를 검색하여 응답을 최신 정보, 도메인 특화 정보 또는 독점 정보에 근거 2 하도록 만듭니다. RAG 워크플로는 일반적으로 이 외부 데이터를 효율적으로 관리하고 검색하기 위해 벡터 스토어에 의존합니다. 벡터 스토어란 무엇인가? # 벡터 스토어 3 는 텍스트, 이미지 또는 기타 데이터의 수치적 표현인 고차원 벡터를 저장하고 검색하도록 설계된 특수한 데이터베이스입니다. 문서를 업로드하면 벡터 스토어는 이를 청크로 분할하고 각 청크를 임베딩 모델 4 을 사용하여 벡터로 변환합니다. 이러한 벡터는 유사도 검색을 사용하여 쿼리할 수 있으며, 이는 키워드 일치가 아니라 *의미론적 의미(semantic meaning)*를 기반으로 결과를 구성합니다. 이 때문에 벡터 스토어는 대규모 지식 집합을 검색하고 추론해야 하는 RAG 및 기타 AI 시스템의 강력한 기반이 됩니다. n8n에서 RAG를 사용하는 방법 # Note RAG 템플릿으로 시작하기 👉 RAG 스타터 템플릿 으로 n8n에서 RAG를 사용해보세요. 이 템플릿에는 파일 업로드용 워크플로와 파일 쿼리용 워크플로, 두 가지 완성된 워크플로가 포함되어 있습니다. 벡터 스토어에 데이터 삽입하기 # 에이전트가 사용자 지정 지식에 액세스하려면 먼저 해당 데이터를 벡터 스토어에 업로드해야 합니다. 소스 데이터를 가져오는 데 필요한 노드를 추가합니다. Vector Store 노드(예: Simple Vector Store )를 삽입하고 Insert Documents 작업을 선택합니다. 텍스트를 벡터 임베딩으로 변환하는 임베딩 모델 을 선택합니다. 올바른 임베딩 모델 선택 에 대한 자세한 내용은 FAQ를 참고하세요. 콘텐츠를 청크로 분할하는 Default Data Loader 노드를 추가합니다. 기본 설정을 사용하거나 자체 청킹 전략을 정의할 수 있습니다. Character Text Splitter: 문자 길이 기준으로 분할합니다. Recursive Character Text Splitter: Markdown, HTML, 코드 블록 또는 단순 문자를 기준으로 재귀적으로 분할합니다(대부분의 사용 사례에 권장). Token Text Splitter: 토큰 수 기준으로 분할합니다. (선택 사항) 각 청크에 메타데이터 를 추가하여 컨텍스트를 보강하고 나중에 더 나은 필터링을 할 수 있게 합니다. 데이터 쿼리하기 # 에이전트를 사용하거나 노드를 통해 직접 쿼리하는 두 가지 주요 방법으로 데이터를 쿼리할 수 있습니다. 에이전트 사용하기 # 워크플로에 에이전트 를 추가합니다. 벡터 스토어를 **도구(tool)**로 추가하고, 에이전트가 언제 사용해야 하는지 이해할 수 있도록 **설명(description)**을 작성합니다. 반환할 청크 수를 정의하려면 limit 을 설정합