데이터로 그라운딩

이 페이지에서는 Vertex AI Search (미리보기)의 데이터를 사용하여 응답을 그라운딩하는 방법을 설명합니다.

Gemini를 사용자 데이터로 그라운딩

검색 증강 생성 (RAG)을 수행하려면 모델을 웹사이트 데이터 또는 문서 세트에 연결한 다음 Vertex AI Search를 사용한 그라운딩을 사용하세요.

데이터에 그라운딩은 최대 10개의 Vertex AI Search 데이터 소스를 지원하며 Google 검색을 사용한 그라운딩과 결합할 수 있습니다.

지원되는 모델

이 섹션에는 데이터를 통한 접지 기능을 지원하는 모델이 나와 있습니다. 각 모델이 그라운딩된 응답을 생성하는 방법을 살펴보려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 이 표에 나열된 모델을 사용해 보세요.

  2. 접지 전환 버튼을 클릭하여 사용 설정 위치로 전환합니다.

  3. 맞춤설정을 클릭하면 그라운딩 맞춤설정 창이 표시됩니다.

  4. Vertex AI Search를 선택합니다.

  5. Vertex AI Search를 사용한 그라운딩 섹션에 Vertex AI 데이터 스토어의 경로를 입력합니다. Vertex AI 데이터 스토어가 없는 경우 데이터 스토어를 만듭니다. 자세한 내용은 데이터 스토어 만들기를 참고하세요.

  6. 저장을 클릭합니다.

모델 설명 모델 사용해 보기
Gemini 1.5 Pro
텍스트 입력만 Gemini 1.5 Pro 모델 사용해 보기
Gemini 1.5 Flash
텍스트 입력만 Gemini 1.5 Flash 모델 사용해 보기
Gemini 1.0 Pro
텍스트 입력만 Gemini 1.0 Pro 모델 사용해 보기
Gemini 2.0 Flash
텍스트, 코드, 이미지, 오디오, 동영상, 오디오가 포함된 동영상, PDF Gemini 2.0 Flash 모델 사용해 보기

기본 요건

모델 출력을 데이터에 그라운딩하려면 먼저 다음을 실행합니다.

  1. Vertex AI Agent Builder를 사용 설정하고 API를 활성화합니다.
  2. Vertex AI Agent Builder 데이터 소스 및 애플리케이션을 만듭니다.

자세한 내용은 Vertex AI Search 소개를 참조하세요.

Vertex AI Agent Builder 사용 설정

  1. Google Cloud 콘솔에서 Agent Builder 페이지로 이동합니다.

    Agent Builder를 사용하여 이 모든 것을 자체 데이터에 그라운딩하세요.

  2. 서비스 약관을 읽고 동의한 후 계속 및 API 활성화를 클릭합니다.

Vertex AI Agent Builder는 global 위치 또는 euus 멀티 리전에서 사용할 수 있습니다. 자세한 내용은 Vertex AI Agent Builder 위치를 참고하세요.

Vertex AI Agent Builder에 데이터 스토어 만들기

Vertex AI Agent Builder에서 데이터 스토어를 만들려면 웹사이트 데이터 또는 문서로 그라운딩할 수 있습니다.

웹사이트

  1. Google Cloud 콘솔에서 데이터 스토어 만들기 페이지를 엽니다.

  2. 웹사이트 콘텐츠 상자에서 선택을 클릭합니다.
    데이터 스토어용 웹사이트 지정 창이 표시됩니다.

  3. 고급 웹사이트 색인 생성이 선택되어 있지 않으면 고급 웹사이트 색인 생성 체크박스를 선택하여 사용 설정합니다.
    데이터 스토어 구성 창이 표시됩니다.

  4. 색인 생성할 URL 패턴 지정 섹션에서 다음을 수행합니다.

    • 포함할 사이트의 URL을 추가합니다.
    • 선택사항: 제외할 사이트의 URL을 추가합니다.
  5. 계속을 클릭합니다.

  6. 데이터 스토어 구성 창에서

    1. 데이터 스토어 위치 목록에서 값을 선택합니다.
    2. 데이터 스토어 이름 필드에 이름을 입력합니다. ID가 생성됩니다. 데이터 스토어로 기반이 되는 응답을 생성할 때 이 ID를 사용합니다. 자세한 내용은 데이터 스토어를 사용하여 그라운딩된 응답 생성을 참고하세요.
    3. 만들기를 클릭합니다.

문서

  1. Google Cloud 콘솔에서 데이터 스토어 만들기 페이지를 엽니다.

  2. Cloud Storage 상자에서 선택을 클릭합니다.
    Cloud Storage에서 데이터 가져오기 창이 표시됩니다.

  3. 비정형 문서 (PDF, HTML, TXT 등) 섹션에서 비정형 문서 (PDF, HTML, TXT 등)를 선택합니다.

  4. 동기화 빈도 옵션을 선택합니다.

  5. 가져올 폴더 또는 파일 선택 옵션을 선택하고 필드에 경로를 입력합니다.

  6. 계속을 클릭합니다.
    데이터 스토어 구성 창이 표시됩니다.

  7. 데이터 스토어 구성 창에서

    1. 데이터 스토어 위치 목록에서 값을 선택합니다.
    2. 데이터 스토어 이름 필드에 이름을 입력합니다. ID가 생성됩니다.
    3. 문서의 파싱 및 청크 처리 옵션을 선택하려면 문서 처리 옵션 섹션을 펼칩니다. 다양한 파서에 관한 자세한 내용은 문서 파싱을 참고하세요.
    4. 만들기를 클릭합니다.
  8. 만들기를 클릭합니다.

데이터 스토어로 그라운딩된 응답 생성

다음 안내에 따라 자체 데이터로 모델을 그라운딩합니다. 최대 10개의 데이터 스토어가 지원됩니다.

데이터 스토어 ID를 모르면 다음 단계를 수행합니다.

  1. Google Cloud 콘솔에서 Vertex AI Agent Builder 페이지로 이동하고 탐색 메뉴에서 데이터 스토어를 클릭합니다.

    데이터 스토어 페이지로 이동

  2. 데이터 스토어 이름을 클릭합니다.

  3. 데이터 스토어의 데이터 페이지에서 데이터 스토어 ID를 가져옵니다.

콘솔

Google Cloud 콘솔에서 Vertex AI Studio를 사용하여 Vertex AI Agent Builder에 모델 출력을 그라운딩하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Vertex AI Studio 페이지로 이동하고 자유 형식 탭을 클릭합니다.

    Vertex AI Studio로 이동

  2. 측면 패널에서 모델 응답 그라운딩 전환 버튼을 클릭하여 그라운딩을 사용 설정합니다.
  3. 맞춤설정을 클릭합니다.
    1. Vertex AI Search를 소스로 설정합니다.
    2. 이 경로 형식을 사용하여 데이터 스토어의 프로젝트 ID와 데이터 스토어의 ID를 바꿉니다.

      projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id 형식을 따라야 합니다.

  4. 텍스트 상자에 프롬프트를 입력하고 제출을 클릭합니다.

프롬프트 응답이 Vertex AI Agent Builder에 그라운딩됩니다.

Python

이 샘플을 사용해 보기 전에 Vertex AI 빠른 시작: 클라이언트 라이브러리 사용Python 설정 안내를 따르세요. 자세한 내용은 Vertex AI Python API 참고 문서를 참조하세요.

Vertex AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.

import vertexai

from vertexai.preview.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# data_store_id = "your-data-store-id"

vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

tool = Tool.from_retrieval(
    grounding.Retrieval(
        grounding.VertexAISearch(
            datastore=data_store_id,
            project=PROJECT_ID,
            location="global",
        )
    )
)

prompt = "How do I make an appointment to renew my driver's license?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)

REST

Vertex AI API를 사용하여 텍스트 프롬프트를 테스트하려면 POST 요청을 게시자 모델 엔드포인트로 전송합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • LOCATION: 요청을 처리하는 리전입니다.
  • PROJECT_ID: 프로젝트 ID
  • MODEL_ID: 멀티모달 모델의 모델 ID입니다.
  • TEXT: 프롬프트에 포함할 텍스트 안내입니다.

HTTP 메서드 및 URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

JSON 요청 본문:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "retrieval": {
      "vertexAiSearch": {
        "datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID
      }
    }
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 비슷한 JSON 응답이 표시됩니다.

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "You can make an appointment on the website https://dmv.gov/"
          }
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        "..."
      ],
      "groundingMetadata": {
        "retrievalQueries": [
          "How to make appointment to renew driving license?"
        ],
        "groundingChunks": [
          {
            "retrievedContext": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AXiHM.....QTN92V5ePQ==",
              "title": "dmv"
            }
          }
        ],
        "groundingSupport": [
          {
            "segment": {
              "startIndex": 25,
              "endIndex": 147
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1, 2],
            "confidenceScore": [0.9541752, 0.97726375]
          },
          {
            "segment": {
              "startIndex": 294,
              "endIndex": 439
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1],
            "confidenceScore": [0.9541752, 0.9325467]
          }
        ]
      }
    }
  ],
  "usageMetadata": {
    "..."
  }
}

응답 이해하기

모델 프롬프트가 Vertex AI Studio 또는 API를 사용하여 Vertex AI Search 데이터 스토어에 성공적으로 그라운딩되면 모델의 응답에 인용 및 소스 링크가 포함된 메타데이터가 포함됩니다. 모델 응답 내에서 소스 관련성이 낮거나 정보가 불완전하면 메타데이터가 제공되지 않을 수 있으며 프롬프트 응답이 그라운딩되지 않습니다.

다음 단계

  • 채팅 프롬프트 요청을 보내는 방법은 멀티턴 채팅을 참조하세요.
  • 책임감 있는 AI 권장사항과 Vertex AI의 안전 필터는 안전 권장사항을 참조하세요.