Milvus와 함께 Langflow를 사용하여 RAG 시스템 구축하기
이 가이드에서는 Langflow를 사용하여 Milvus로 검색 증강 생성(RAG) 파이프라인을 구축하는 방법을 설명합니다.
RAG 시스템은 먼저 지식창고에서 관련 문서를 검색한 다음 이 컨텍스트에 따라 새로운 응답을 생성함으로써 텍스트 생성을 향상시킵니다. Milvus는 텍스트 임베딩을 저장하고 검색하는 데 사용되며, Langflow는 시각적 워크플로에서 검색과 생성의 통합을 용이하게 합니다.
Langflow를 사용하면 텍스트 청크가 임베드되어 Milvus에 저장되고 관련 쿼리가 수행될 때 검색되는 RAG 파이프라인을 쉽게 구축할 수 있습니다. 이를 통해 언어 모델이 문맥에 맞는 응답을 생성할 수 있습니다.
Milvus는 의미적으로 유사한 텍스트를 빠르게 찾아내는 확장 가능한 벡터 데이터베이스 역할을 하며, Langflow를 사용하면 파이프라인에서 텍스트 검색 및 응답 생성을 처리하는 방식을 관리할 수 있습니다. 이 두 가지를 함께 사용하면 향상된 텍스트 기반 애플리케이션을 위한 강력한 RAG 파이프라인을 구축할 수 있는 효율적인 방법을 제공합니다.
전제 조건
이 노트북을 실행하기 전에 다음 종속성이 설치되어 있는지 확인하세요:
$ python -m pip install langflow -U
튜토리얼
모든 종속성이 설치되면 다음 명령을 입력하여 Langflow 대시보드를 시작합니다:
$ python -m langflow run
그러면 아래와 같이 대시보드가 나타납니다: langflow
벡터 스토어 프로젝트를 생성하려면 먼저 새 프로젝트 버튼을 클릭해야 합니다. 패널이 나타나면 Vector Store RAG 옵션을 선택합니다: 패널
Vector Store RAG 프로젝트가 성공적으로 생성되면 기본 벡터 스토어는 AstraDB이지만, 우리는 Milvus를 사용하려고 합니다. 따라서 Milvus를 벡터 저장소로 사용하려면 이 두 개의 astraDB 모듈을 Milvus로 교체해야 합니다. astraDB
astraDB를 Milvus로 교체하는 단계:
- 벡터 스토어의 기존 카드를 제거합니다. 위 이미지에서 빨간색으로 표시된 두 개의 AstraDB 카드를 클릭하고 백스페이스 키를 눌러 삭제합니다.
- 사이드바에서 벡터 스토어 옵션을 클릭하고 Milvus를 선택한 다음 캔버스로 드래그합니다. 파일 처리 워크플로우 저장용 카드와 검색 워크플로우용 카드 두 개가 필요하므로 이 작업을 두 번 수행합니다.
- Milvus 모듈을 나머지 구성 요소에 연결합니다. 아래 이미지를 참조하세요.
- 두 Milvus 모듈에 대한 Milvus 자격 증명을 구성합니다. 가장 간단한 방법은 연결 URI를 milvus_demo.db로 설정하여 Milvus Lite를 사용하는 것입니다. Milvus 서버를 자체 구축하거나 Zilliz Cloud에 설치한 경우, 연결 URI는 서버 엔드포인트로, 연결 비밀번호는 토큰으로 설정합니다(Milvus의 경우 "
: ", Zilliz Cloud의 경우 API Key로 연결). 아래 이미지를 참고하세요:
Milvus 구조 데모
RAG 시스템에 지식 임베드하기
- 왼쪽 하단의 파일 모듈을 통해 LLM의 지식 베이스로 파일을 업로드합니다. 여기에는 Milvus에 대한 간략한 소개가 포함된 파일을 업로드했습니다.
- 오른쪽 하단의 Milvus 모듈에서 실행 버튼을 눌러 삽입 워크플로우를 실행합니다. 이렇게 하면 Milvus 벡터 스토어에 지식이 삽입됩니다.
- 지식이 메모리에 있는지 테스트합니다. 플레이그라운드를 열고 업로드한 파일과 관련된 모든 것을 물어봅니다.
왜 밀버스인가 ?