Docs Menu
Docs Home
/ /

Amazon 기반 지식 기반 통합 시작하기

참고

Atlas는 현재 미국에 위치한 AWS 리전에서만 지식 기반으로 제공됩니다.

MongoDB Atlas Amazon 베드락의 지식 베이스 로 사용하여 제너레이티브 AI 애플리케이션을 빌드 , RAG(검색 강화 생성)를 구현 , 에이전트를 빌드 .

Amazon Bedrock 지식 기반과 Atlas의 통합으로 다음과 같은 사용 사례가 가능합니다.

  • MongoDB Vector Search와 함께 기초 모델을 사용하여 AI 애플리케이션을 빌드 하고 RAG를 구현 . 시작하려면 시작하기를 참조하세요.

  • 지식 기반에 대한 MongoDB Vector Search 및 MongoDB Search를 사용하여 하이브리드 검색 활성화하세요. 자세한 학습 은 Amazon 기반 및 Atlas 사용한 하이브리드 검색을 참조하세요.

이 튜토리얼에서는 Amazon 베드락과 함께 MongoDB Vector Search를 사용하는 방법을 설명합니다. 구체적으로 다음 조치를 수행합니다.

  1. 사용자 정의 데이터를 Amazon S3 버킷에 로드합니다.

  2. 필요 시 AWS PrivateLink를 사용하여 엔드포인트 서비스를 구성합니다.

  3. 데이터에 MongoDB Vector Search 인덱스 생성합니다.

  4. 지식 기반을 생성하여 Atlas에 데이터를 저장합니다.

  5. MongoDB Vector Search를 사용하여 RAG를 구현 에이전트 생성합니다.

Amazon Bedrock은 생성형 인공지능 애플리케이션을 빌드하기 위한 완전 관리형 서비스입니다. 이를 통해 다양한 AI 회사의 파운데이션 모델(FM)을 단일 API로 활용할 수 있습니다.

MongoDB Vector Search를 Amazon 기반의 지식 베이스로 사용하여 Atlas 에 사용자 지정 데이터를 저장 하고 에이전트 만들어 RAG를 구현 하고 데이터에 대한 질문에 답변 . RAG에 대해 자세히 학습 RAG, MongoDB 사용한 검색-증강 생성(RAG)을 참조하세요.

이 튜토리얼을 완료하려면 다음 조건을 충족해야 합니다.

텍스트 데이터를 포함하는 Amazon S3 버킷이 아직 없는 경우, 새 버킷을 생성하고 공개적으로 액세스할 수 있는 다음과 같은 MongoDB 권장사항에 대한 PDF를 로드합니다.

1
  1. MongoDB 모범 사례 가이드로 이동합니다.

  2. Read Whitepaper 또는 Email me the PDF를 클릭하여 PDF에 액세스하세요.

  3. PDF를 다운로드하여 로컬에 저장합니다.

2
  1. 단계에 따라 S3 버킷을 생성합니다. 설명이 포함된 Bucket Name를 사용해야 합니다.

  2. 단계에 따라 버킷에 파일 업로드합니다. 방금 다운로드한 PDF가 포함된 파일 을 선택합니다.

기본값 으로 Amazon 베드락은 공용 인터넷을 통해 지식창고에 연결합니다. 연결을 더욱 안전하게 보호하기 위해 MongoDB Vector Search는 AWS PrivateLink 엔드포인트 서비스를 통해 가상 네트워크를 통해 지식창고에 연결할 수 있도록 지원합니다.

필요 시 다음 단계를 완료하여 Atlas 클러스터의 AWS PrivateLink 비공개 엔드포인트에 연결하는 엔드포인트 서비스를 활성화합니다.

1

단계에 따라 Atlas 클러스터에 대한 AWS PrivateLink 비공개 엔드포인트를 설정하세요. 프라이빗 엔드포인트를 식별할 수 있도록 설명적인 VPC ID를 사용해야 합니다.

자세한 내용은 Atlas의 비공개 엔드포인트에 대해 알아보세요.

2

MongoDB와 파트너사는 트래픽을 비공개 엔드포인트로 전달하는 네트워크 로드 밸런서가 지원하는 엔드포인트 서비스를 구성하는 데 사용할 수 있는 클라우드 개발 키트(CDK)를 제공합니다.

CDK Github 리포지토리 에 지정된 단계에 따라 CDK 스크립트를 준비하고 실행.

이 섹션에서는 컬렉션 에 MongoDB Vector Search 인덱스 생성하여 Atlas 벡터 저장 라고도 하는 벡터 데이터베이스 로 설정하다 .

MongoDB Vector Search 인덱스 만들려면 Atlas 프로젝트에 대한 Project Data Access Admin 이상의 액세스 있어야 합니다.

1
  1. 아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.

  2. 아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.

  3. 사이드바에서 Database 제목 아래의 Data Explorer를 클릭합니다.

    데이터 탐색기 가 표시됩니다.

참고

Clusters 페이지로 이동하여 Shortcuts 제목 아래의 Data Explorer 을 클릭할 수도 있습니다.

2
  1. + Create Database 버튼을 클릭합니다.

  2. Database namebedrock_db을(를) 입력합니다.

  3. Collection nametest을(를) 입력합니다.

  4. 데이터베이스와 첫 번째 collection을 생성하려면 Create을(를) 클릭하세요.

3

Search & Vector Search 옵션 또는 Data Explorer에서 MongoDB 검색 페이지로 이동할 수 있습니다.

4
5

페이지에서 다음 항목을 선택한 후 Next를 클릭합니다.

Search Type

Vector Search 인덱스 유형을 선택합니다.

Index Name and Data Source

다음 정보를 지정합니다.

  • Index Name: vector_index

  • Database and Collection:

    • bedrock_db database

    • test 컬렉션

Configuration Method

For a guided experience, select Visual Editor.

To edit the raw index definition, select JSON Editor.

중요:

MongoDB Search 인덱스 의 이름은 기본값 으로 default 으로 지정됩니다. 이 이름을 유지하면 해당 인덱스 연산자에 다른 index 옵션을 지정하지 않는 모든 MongoDB Search 쿼리 대한 기본값 검색 인덱스 됩니다. 여러 인덱스를 생성하는 경우 인덱스 전체에서 일관적인 되고 설명이 포함된 명명 규칙을 유지하는 것이 좋습니다.

6

vectorSearch 유형의 인덱스 정의는 다음 필드를 인덱싱합니다.

  • embedding 필드를 벡터 유형으로 인덱싱합니다. embedding 필드에는 지식 기반을 구성할 때 지정한 임베딩 모델을 사용하여 생성된 벡터 임베딩이 포함됩니다. 인덱스 정의는 1024 벡터 차원을 지정하고 cosine을 사용하여 유사성을 측정합니다.

  • bedrock_metadata, bedrock_text_chunkx-amz-bedrock-kb-document-page-number 필드를 데이터 사전 필터링을 위한 필터 유형으로 사용합니다. 또한 지식 기반을 구성할 때 Amazon Bedrock에서 이러한 필드를 지정합니다.

참고

이전에 필터 필드 page_number로 인덱스를 생성한 경우, 인덱스 정의를 새 필터 필드 이름 x-amz-bedrock-kb-document-page-number로 업데이트해야 합니다. Amazon Bedrock이 필드 이름을 업데이트했으며, 이전 필드 이름을 사용하는 인덱스는 더 이상 Amazon Bedrock 지식 기반에서 제대로 작동하지 않습니다.

embedding을 인덱싱할 필드로 지정하고 1024개의 차원을 지정합니다.

인덱스를 구성하려면 다음을 수행합니다.

  1. Similarity Method 드롭다운 메뉴에서 Cosine을(를) 선택합니다.

  2. Filter Field 섹션에서 데이터를 필터링하기 위해 bedrock_metadata, bedrock_text_chunkx-amz-bedrock-kb-document-page-number 필드를 지정합니다.

JSON 편집기에 다음 인덱스 정의를 붙여넣습니다.

1{
2 "fields": [
3 {
4 "numDimensions": 1024,
5 "path": "embedding",
6 "similarity": "cosine",
7 "type": "vector"
8 },
9 {
10 "path": "bedrock_metadata",
11 "type": "filter"
12 },
13 {
14 "path": "bedrock_text_chunk",
15 "type": "filter"
16 },
17 {
18 "path": "x-amz-bedrock-kb-document-page-number",
19 "type": "filter"
20 }
21 ]
22}
7
8

Atlas에서 인덱스가 작성 중임을 알려주는 모달 창이 표시됩니다.

9
10

새로 생성된 인덱스가 Atlas Search 탭에 표시됩니다. 인덱스가 생성되는 동안 Status 필드는 Build in Progress로 표시됩니다. 인덱스 생성이 완료되면 Status 필드에 Active가 표시됩니다.

참고

컬렉션이 클수록 인덱스를 생성하는 데 시간이 더 오래 걸립니다. 인덱스 빌드가 완료되면 이메일 알림을 받게 됩니다.

이 섹션에서는 사용자 지정 데이터를 벡터 저장소에 로드하기 위한 지식 기반을 생성합니다.

1
  1. Amazon Web Services 콘솔에 로그인합니다.

  2. 왼쪽 상단 모서리에서 Services 드롭다운 메뉴를 클릭합니다.

  3. Machine Learning 을 클릭한 다음 Amazon Bedrock 을 선택합니다.

2

Amazon 베드락은 FM 에 대한 액세스 자동으로 부여하지 않습니다. 아직 추가하지 않았다면 단계에 따라 타이탄1 임베딩 G - 텍스트인간 클로드 V2 1 에 대한 모델 액세스 추가합니다. 모델.

3
  1. Amazon Bedrock 콘솔의 왼쪽 탐색에서 Knowledge Bases를 클릭합니다.

  2. Create를 클릭한 다음 Knowledge base with vector store를 선택합니다.

  3. mongodb-atlas-knowledge-baseKnowledge Base name 로 지정합니다.

  4. Next를 클릭합니다.

기본적으로 Amazon 베드락은 지식 기반에 액세스하기 위해 새 IAM 역할을 생성합니다.

4
  1. 지식 기반에서 사용되는 데이터 소스의 이름을 지정하세요.

  2. 데이터 소스가 포함된 S 버킷의3 URI 를 입력합니다. 또는 Browse S3 를 클릭하고 목록에서 데이터 소스가 포함된 S3 버킷을 찾습니다.

  3. Next를 클릭합니다.

    Amazon 베드락에는 데이터 소스의 텍스트 데이터를 벡터 임베딩으로 변환하는 데 사용할 수 있는 임베딩 모델이 표시됩니다.

  4. Titan Embeddings G1 - Text 모델을 선택합니다.

5
  1. Vector database 섹션에서 Use an existing vector store를 선택합니다.

  2. MongoDB Atlas를 선택하고 다음 옵션을 구성합니다.

    Amazon Bedrock 벡터 저장소 구성 섹션의 스크린샷
    클릭하여 확대
    • Hostname 경우 연결 문자열 에 있는 Atlas 클러스터의 URL을 입력하세요. 호스트 이름은 다음 형식을 사용합니다:

      <clusterName>.mongodb.net
    • Database namebedrock_db을(를) 입력합니다.

    • Collection nametest을(를) 입력합니다.

    • 에 Atlas cluster 자격 Credentials secret ARN 증명 포함된 시크릿의 ARN을 입력합니다. 자세한 학습 은 Amazon Web Services Secret 관리자 개념을 참조하세요.

  3. Metadata field mapping 섹션에서 다음 옵션을 구성하여 Atlas 데이터 소스 포함하고 저장 사용하는 MongoDB Vector Search 인덱스 와 필드 이름을 결정합니다.

    벡터 저장소 필드 매핑 구성 섹션의 스크린샷
    클릭하여 확대
    • Vector search index namevector_index을(를) 입력합니다.

    • Vector embedding field pathembedding을(를) 입력합니다.

    • Text field pathbedrock_text_chunk을(를) 입력합니다.

    • Metadata field pathbedrock_metadata을(를) 입력합니다.

    참고

    선택 사항으로 Text search index name 필드를 지정하여 하이브리드 검색을 구성할 수 있습니다. 자세히 알아보려면 Amazon Bedrock 및 Atlas를 사용한 하이브리드 검색을 참조하세요.

  4. 엔드포인트 서비스를 구성한 경우 PrivateLink Service Name를 입력합니다.

  5. Next를 클릭합니다.

6

기술 자료에 대한 세부 정보를 검토한 후 Create knowledge base를 클릭하여 만들기를 완료합니다.

7

Amazon Bedrock이 지식 기반을 생성한 후에는 데이터를 동기화하라는 메시지가 표시됩니다. Data source 섹션에서 데이터 소스를 선택하고 Sync를 클릭하여 S3 버킷의 데이터를 동기화하고 Atlas에 로드합니다.

동기화 가 완료되면 Atlas 사용하는 경우 bedrock_db.test Atlas UI 의 네임스페이스 로이동하여 벡터 임베딩을 확인할 수 있습니다.

이 섹션에서는 MongoDB Vector Search를 사용하여 RAG를 구현 하고 데이터에 대한 질문에 답변 에이전트 배포 . 이 에이전트 에 메시지를 표시하면 다음을 수행합니다.

  1. Atlas에 저장된 사용자 지정 데이터에 액세스하기 위해 지식 기반에 연결합니다.

  2. MongoDB Vector Search를 사용하여 프롬프트에 따라 벡터 저장 에서 관련 문서를 조회 .

  3. AI 채팅 모델을 활용하여 이러한 문서를 기반으로 상황 인식 응답을 생성합니다.

다음 단계를 완료하여 RAG 에이전트를 생성하고 테스트합니다.

1
  1. Amazon Bedrock의 왼쪽 탐색창에서 Agents를 클릭합니다.

  2. Create Agent를 클릭합니다.

  3. Namemongodb-rag-agent를 지정하고 Create를 클릭합니다.

2

기본적으로 Amazon 베드락은 에이전트에 액세스할 수 있는 새 IAM 역할을 생성합니다. Agent details 섹션에서 다음을 지정합니다.

  1. 드롭다운 메뉴에서 데이터에 대한 질문에 답하는 데 사용하는 제공자 및 AI 모델로 AnthropicClaude V2.1을 선택합니다.

    참고

    Amazon Bedrock은 FM에 대한 액세스 권한을 자동으로 부여하지 않습니다. 아직 추가하지 않았다면, Anthropic Claude V2.1 모델에 대한 모델 액세스 추가 단계를 따르세요.

  2. 에이전트가 작업을 완료하는 방법을 알 수 있도록 지침을 제공합니다.

    예를 들어 샘플 데이터 를 사용하는 경우 다음 지침을 붙여넣습니다.

    You are a friendly AI chatbot that answers questions about working with MongoDB.
  3. Save를 클릭합니다.

3

생성한 지식 시간에 에이전트를 연결하려면 다음을 수행합니다.

  1. Knowledge Bases 섹션에서 Add을 클릭합니다.

  2. 드롭다운 메뉴에서 mongodb-atlas-knowledge-base 을(를) 선택합니다.

  3. 에이전트가 데이터 소스와 상호작용하는 방법을 결정하기 위한 지식 기반을 설명합니다.

    샘플 데이터를 사용하는 경우 다음 지침을 붙여넣습니다.

    This knowledge base describes best practices when working with MongoDB.
  4. Add을 클릭한 다음 Save를 클릭합니다.

4
  1. Prepare 버튼을 클릭합니다.

  2. Test 을(를) 클릭합니다. 테스트 Amazon 아직 표시되지 않은 경우 에이전트 세부 정보 오른쪽에 테스트 창이 표시됩니다.

  3. 테스트 창 에서 프롬프트를 입력합니다. 에이전트 모델에 프롬프트를 표시하고, MongoDB Vector Search를 사용하여 관련 문서를 조회 다음, 문서를 기반으로 응답을 생성합니다.

    샘플 데이터를 사용한 경우 다음 프롬프트를 입력합니다. 생성된 응답은 다를 수 있습니다.

    What's the best practice to reduce network utilization with MongoDB?
    The best practice to reduce network utilization with MongoDB is
    to issue updates only on fields that have changed rather than
    retrieving the entire documents in your application, updating
    fields, and then saving the document back to the database. [1]

    에이전트의 응답에서 주석을 클릭하면 MongoDB Vector Search가 검색한 텍스트 청크 볼 수 있습니다.

5

문제를 해결하려면 Amazon Bedrock 지식 기반 통합 문제 해결을 참조하세요.

돌아가기

AI 에이전트 빌드

이 페이지의 내용