MongoDBVectorSearchTool
설명
MongoDBVectorSearchTool은 MongoDB Atlas 컬렉션에서 벡터 유사도 쿼리를 수행할 수 있게 해줍니다. MongoDB Atlas는
네이티브 벡터 검색을 지원합니다. 이 도구는 또한 인덱스 생성 도우미와 임베딩된 텍스트의 일괄 삽입을 지원합니다.
MongoDB Vector Search는 시맨틱 검색으로 데이터를 쿼리하거나, 컬렉션 내 다른 필드에 대한 필터 쿼리를 수행하거나,
검색 증강 생성(retrieval-augmented generation, RAG)을 구현하여 AI 애플리케이션과 에이전트 시스템을 강화하려는
애플리케이션에 유용합니다.
더 알아보기: https://www.mongodb.com/docs/atlas/atlas-vector-search/vector-search-overview/
설치
MongoDB 추가 기능과 함께 설치하세요:초기화 매개변수
connection_string(str): 필수. 클러스터에 연결하기 위한 MongoDB Atlas 연결 문자열 자격 증명입니다.database_name(str): 필수. 사용할 MongoDB 데이터베이스의 이름입니다.collection_name(str): 필수. 문서와 임베딩이 저장되는 데이터베이스 내 컬렉션입니다.vector_index_name(str, 기본값:vector_index): 선택. 쿼리할 MongoDB Vector Search 인덱스의 이름입니다(Atlas에서 생성한 인덱스와 일치해야 합니다).text_key(str, 기본값:text): 선택. 원본 텍스트가 저장되는 문서 필드명입니다.embedding_key(str, 기본값:embedding): 선택. 벡터 임베딩이 저장되는 문서 필드명입니다.dimensions(int, 기본값:1536): 선택. 임베딩 모델의 차원 수입니다(사용하는 모델과 일치해야 합니다).query_config(MongoDBVectorSearchConfig): 선택.limit,oversampling_factor등 고급 쿼리 설정을 위한MongoDBVectorSearchConfig객체입니다.
MongoDBVectorSearchTool 메서드
run(query=...): 쿼리를 임베딩하고 벡터 유사도 검색을 수행하여 일치하는 문서를 반환합니다. 임베딩하고 검색할 자연어query(str) 매개변수를 받습니다.add_texts(list of strings): 임베딩하여 MongoDB Atlas 데이터베이스에 문서로 삽입할 문자열 목록을 받습니다.create_vector_search_index(dimensions=...): 올바른 차원과 유사도를 가진 MongoDB Vector Search 인덱스를 프로비저닝합니다.dimensions(int) 매개변수를 받습니다.
빠른 시작
다음 예시는 도구를 초기화하고 지정된 MongoDB Atlas 컬렉션에 대해 벡터 유사도 검색을 실행하는 방법을 보여줍니다:Code
일반적인 문제
- 인증 실패: Atlas IP 액세스 목록에 러너가 허용되어 있는지 확인하고, 연결 문자열에 자격 증명이 포함되어 있는지 확인하세요.
- 인덱스를 찾을 수 없음: 벡터 인덱스를 먼저 생성하세요; 이름이
vector_index_name과 일치해야 합니다. - 차원 불일치: 임베딩 모델의 차원을
dimensions와 일치시켜야 합니다.
예시
데이터베이스 미리 로드 및 인덱스 생성
다음 예시는 MongoDB Atlas 데이터베이스에 문서를 미리 로드하고 컬렉션을 쿼리하기 위한 MongoDB Vector Search 인덱스를 생성하는 방법을 보여줍니다:Code
사용자 지정 쿼리 구성 및 에이전트 구성
다음 예시는MongoDBVectorSearchTool에 사용자 지정 쿼리 구성을 제공하고 CrewAI 에이전트와 통합하는 방법을
보여줍니다:
Code
CrewAI 워크플로우 실행
다음 예시는MongoDBVectorSearchTool을 Agent, Task, Crew와 통합하여 CrewAI 에이전틱 RAG 워크플로우를
생성하고 실행하는 방법을 보여줍니다:
Code
