MongoDB Atlas 벡터 검색 연동

작성: Ai Flowi · 게시일

MongoDB Atlas 벡터 검색 연동은 AI Flowi Workflow에서 클러스터 URI, 데이터베이스, 컬렉션, 벡터 인덱스 설정을 제공합니다. 준비된 배포 환경에 맞게 필드를 설정하고, 호환되는 임베딩 모델을 연결한 뒤 JSON 또는 Table 검색 결과를 확인합니다. 이 인터페이스는 범용 MongoDB 질의 편집기가 아니라 벡터 검색과 데이터 저장을 다룹니다.

MongoDB Atlas는 카탈로그에 문서화되어 있으나 Ai Flowi가 실제 운영 환경에서 테스트하지 않았습니다. Atlas 고유 필드는 컬렉션, 벡터 필드, 검색 인덱스를 식별합니다. 아래 절차는 설정 예시이며, 기록된 테스트가 아닙니다.

1. 배포 환경과 인덱스를 식별합니다

Atlas 배포 환경과 외부 임베딩 제공업체에 사용할 비공개 자격 증명은 연결 참조에 따라 설정합니다. Atlas에서는 테스트 컬렉션을 지정하기 전에 클러스터 URI가 어떤 데이터베이스 권한을 부여하는지 확인합니다.

사용할 데이터베이스와 컬렉션을 인덱스 이름 및 벡터 필드와 함께 기록합니다. 이들은 서로 다른 선택 항목입니다. 컬렉션은 기록을 식별하고, 인덱스 설정은 검색 대상을 설명합니다. 내보내기 자료는 자동 인덱스 프로비저닝을 입증하지 않으며 제공업체 설정 절차도 제공하지 않습니다. 실제 콘텐츠를 지정하기 전에 준비된 배포 환경을 검증합니다.

복사한 스크린샷과 공개 흐름 예시에 연결 URI를 포함하지 않습니다. 민감한 인증 정보가 들어 있을 수 있습니다. 환경에서 클라이언트 인증서를 사용한다면 해당 스위치를 활성화하기 전에 인증서를 비공개로 제공하는 방법과 관리 방법을 확인합니다.

2. Atlas 입력 전체를 검토합니다

Atlas 인터페이스는 PGVector 인터페이스보다 인덱스 설정을 더 명시적으로 제공합니다. 필수 플래그에는 차원 수와 mTLS 스위치가 포함됩니다. ‘필수’라고 해서 mTLS를 활성화해야 한다는 뜻은 아닙니다.

MongoDB Atlas: 내보낸 입력과 설정 결정 사항
필드결정할 사항유형 / 필수 여부연결 유형 / 선택 항목
collection_name선택한 데이터베이스 내에서 사용할 컬렉션 식별자를 지정합니다.str / 예Atlas: input_types 생략됨
db_name컬렉션 이름과 별개로 데이터베이스 범위를 확인합니다.str / 예Atlas: input_types 생략됨
embedding준비된 벡터와 호환되는 Embeddings 객체를 연결합니다. 내보내기 자료의 플래그는 선택 사항입니다.other / 아니요Atlas 연결: Embeddings
enable_mtls검증된 연결 설정에 따라 필수 불리언을 의도에 맞게 지정합니다.bool / 예Atlas: input_types 생략됨
filter_field인덱스 설정에서 확인된 필드만 선택합니다. 필터 문법은 문서화되어 있지 않습니다.str / 아니요Atlas: input_types 생략됨
index_field사용할 벡터 필드명을 지정하고 준비된 기록에서 구조를 확인합니다.str / 예Atlas: input_types 생략됨
index_name준비된 벡터 인덱스 식별자를 사용합니다. 이 설정만으로 인덱스가 생성된다고 추론하지 않습니다.str / 예Atlas: input_types 생략됨
ingest_data저장 동작을 검토한 경우에만 Data, DataFrame 또는 Table을 연결합니다.other / 아니요Atlas 연결: Data, DataFrame, Table
insert_mode"append" 또는 "overwrite"를 신중하게 선택합니다. 영향을 받는 범위와 반복 실행 동작은 명시되어 있지 않습니다.str / 아니요Atlas: input_types 생략됨; 선택 항목: "append", "overwrite"
mongodb_atlas_client_cert설정된 환경에서 허용하는 형식으로만 비공개 인증서 자료를 제공합니다.str / 아니요Atlas: input_types는 []
mongodb_atlas_cluster_uri권한이 있는 클러스터 연결 URI를 비공개로 입력하고 공유 자료에서는 가립니다.str / 예Atlas: input_types는 []
number_dimensions검증된 저장 표현에 맞춥니다. 모든 환경에 적용할 차원 값은 이 페이지에서 제공하지 않습니다.int / 예Atlas: input_types 생략됨
number_of_results첫 검색 확인에서는 결과 수를 제한합니다.int / 아니요Atlas: input_types 생략됨
quantization나열된 선택 항목은 "scalar"와 "binary"입니다. 어느 쪽이든 선택하기 전에 호환성을 확인합니다.str / 아니요Atlas: input_types 생략됨; 선택 항목: "scalar", "binary"
search_queryMessage와 호환되는 질의 필드로 검색 질문을 제공합니다.query / 아니요Atlas 연결: Message
should_cache_vector_store컬렉션이나 자격 증명을 변경한 뒤 최신성을 검토합니다. 캐시 동작은 명시되어 있지 않습니다.bool / 아니요Atlas: input_types 생략됨
similarity해당하는 "cosine", "euclidean", "dotProduct"를 사용해 준비된 인덱스에 맞춥니다.str / 아니요Atlas: input_types 생략됨; 선택 항목: "cosine", "euclidean", "dotProduct"

3. 검색 전에 차원 수와 유사도 설정을 확인합니다

개념적 배경은 텍스트 임베딩에서 설명합니다. 여기서 Atlas에 대해 결정할 사항은 명시적인 인덱스 설정 중 무엇을 입력할지입니다.

선택한 index_field의 검증된 설정에서 number_dimensions를 복사한 뒤 similarity를 해당 인덱스의 기록된 설정에 맞춥니다. 정확한 선택 항목은 "cosine", "euclidean", "dotProduct"입니다. 대소문자를 그대로 유지합니다. 다른 제공업체에서 복사한 설정은 다른 라벨을 사용할 수 있습니다. 컬렉션에 후보 벡터 필드가 여러 개라면 차원 수를 설정하기 전에 사용할 필드를 식별합니다. 컬렉션 이름만으로는 선택할 수 없습니다.

quantization은 별도로 검토하고, 준비된 인덱스를 확인한 뒤에만 내보낸 선택 항목인 "scalar" 또는 "binary"를 사용합니다. 선택 사항이라는 플래그는 기본값도, 변경하면 기존 기록이 재구축된다는 근거도 제공하지 않습니다. 다른 선택을 조사할 때는 변경 전후 설정을 기록하고, 라벨만 보고 메모리 절감이나 정확성을 보장하지 말고 알려진 원문 구절을 비교합니다. 별도의 모델 연결에 사용할 임베딩 제공업체는 카탈로그에서 확인합니다.

4. 가상 데이터 검색 한 건을 설정합니다

  1. 원본 자료를 알고 있는 폐기 가능한 컬렉션을 선택하고 본인의 환경에서 벡터 인덱스가 준비되었는지 확인합니다.
  2. MongoDB Atlas를 추가하고 mongodb_atlas_cluster_uri를 비공개로 설정합니다. 준비된 설정에서 db_name, collection_name, index_name, index_field를 가져와 채웁니다.
  3. number_dimensions를 확인한 표현 크기로, enable_mtls를 검증된 연결 모드로 설정합니다. 활성화했다면 환경에서 요구하는 대로 mongodb_atlas_client_cert를 설정합니다.
  4. 일치하는 임베딩 구성요소를 embedding에 연결하고, search_query에 해당 컬렉션에 맞는 검색 질문을 입력합니다. 확인용 제한값의 예시로 number_of_results에 3을 선택합니다.
  5. 첫 조사에서는 저장 작업을 제외합니다. 저장 입력을 연결하지 않았다고 해서 Atlas 기록이 그대로 유지됨이 입증된 것은 아니므로 검색 출력과 데이터베이스 상태를 모두 확인합니다.
  6. 다른 노드로 텍스트를 넘기기 전에 반환된 원본 참조와 결과가 사용할 컬렉션에 속하는지 확인합니다.

5. 수신 포트와 페이로드를 확인합니다

Atlas 검색 포트는 JSON(search_results)과 Table(dataframe)입니다. 이 유형들은 포트 호환성을 규정할 뿐 고정된 결과 스키마를 정하지 않습니다. 결과 키와 테이블 열은 모두 내보내기 자료에 없습니다.

목표 출력은 준비된 컬렉션에서 검색한, 확인 가능한 콘텐츠입니다. 응답을 구성하기 전에 가상 데이터 실행에서 실제 텍스트와 참조 필드를 확인합니다. 이후 필터를 적용한다면 선택된 기록이 의도대로 바뀌는지 확인합니다. Atlas의 filter_field 선택기만으로 모든 읽기 권한이 적용됨을 입증할 수는 없습니다.

삽입과 재시도의 경계

insert_mode는 "append"와 "overwrite"를 제공합니다. 특히 기존 컬렉션에 보존해야 할 자료가 있을 때는 원본 데이터를 연결하기 전에 이 이름들의 의미를 검토해야 합니다. 내보낸 계약에는 Atlas 덮어쓰기 범위가 없습니다. 항목, 배치, 더 넓은 리소스에 적용될 수 있으므로 이 예시는 삭제 범위에 관한 주장을 하지 않습니다.

폐기 가능한 기록으로 저장 동작을 독립적으로 테스트합니다. 자동 재시도를 허용할지 정하기 전에 반복 제출과 중단된 실행을 확인합니다. 멱등성 키를 제공하는 카탈로그 필드는 없으며, 이 구성요소의 별도 오류 출력 포트도 내보내지지 않습니다.

MongoDB Atlas 인터페이스가 적합하지 않은 경우는 언제인가요?

일반적인 MongoDB CRUD 작업이나 이벤트 처리에는 다른 경로를 사용합니다. 이 벡터 저장소 필드는 그런 작업을 문서화하지 않습니다. 인덱스 호환성, 인증서 처리, 읽기 범위를 모르는 상태에서는 운영 환경에 사용하지 않습니다. 이 페이지는 측정된 검색 품질이나 안전한 격리 보장을 제공하지 않습니다.

Pinecone 페이지는 인덱스와 네임스페이스 선택기를 갖춘 다른 제공업체 계약을 문서화합니다. 다른 제공업체의 필드명을 Atlas에서 재사용할 수 있다고 가정하지 말고 구체적인 설정 경계를 비교합니다. 관련 서비스는 연동 목록에 연결되어 있습니다.

사용량 고려 사항

노드를 한 번 실행할 때마다 1 Flowi Token을 사용합니다. 월별 포함 토큰은 Go 5,000개, Plus 10,000개, Pro 100 50,000개, Pro 200 100,000개, Pro 500 250,000개입니다. 데모 예약

Atlas 서비스 사용과 외부 임베딩 호출은 본인의 제공업체 계약을 따릅니다. 결과 수나 차원 설정을 총사용량으로 간주하지 말고 워크플로우에서 관찰한 노드와 재시도 횟수를 셉니다.