데이터로 그라운딩

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

Gemini를 데이터에 연결

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

데이터에 그라운딩은 최대 10개의 Vertex AI Search 데이터 소스를 지원하며 Google Search로 그라운딩과 조합할 수 있습니다.

지원되는 모델

이 섹션에서는 데이터로 그라운딩을 지원하는 모델을 보여줍니다.

기본 요건

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

  1. Google Cloud 콘솔에서 IAM 페이지로 이동하여 접지 서비스가 작동하는 데 필요한 discoveryengine.servingConfigs.search 권한을 검색합니다.

    IAM으로 이동

  2. AI 애플리케이션을 사용 설정하고 API를 활성화합니다.

  3. AI 애플리케이션 데이터 소스 및 애플리케이션을 만듭니다.

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

AI 애플리케이션 사용 설정

  1. Google Cloud 콘솔에서 AI 애플리케이션 페이지로 이동합니다.

    AI 애플리케이션

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

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

AI 애플리케이션에서 데이터 스토어 만들기

AI 애플리케이션에 데이터 스토어를 만들려면 웹사이트 데이터 또는 문서로 그라운딩하도록 선택할 수 있습니다.

웹사이트

  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 콘솔에서 AI 애플리케이션 페이지로 이동하고 탐색 메뉴에서 데이터 스토어를 클릭합니다.

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

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

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

콘솔

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

  1. Google Cloud 콘솔에서 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. 저장을 클릭합니다.
  5. 텍스트 상자에 프롬프트를 입력하고 제출을 클릭합니다.

프롬프트 응답이 AI 애플리케이션에 그라운딩됩니다.

Python

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

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

from google import genai
from google.genai.types import (
    GenerateContentConfig,
    HttpOptions,
    Retrieval,
    Tool,
    VertexAISearch,
)

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Load Data Store ID from Vertex AI Search
# datastore = "projects/111111111111/locations/global/collections/default_collection/dataStores/data-store-id"

response = client.models.generate_content(
    model="gemini-2.0-flash-001",
    contents="How do I make an appointment to renew my driver's license?",
    config=GenerateContentConfig(
        tools=[
            # Use Vertex AI Search Tool
            Tool(
                retrieval=Retrieval(
                    vertex_ai_search=VertexAISearch(
                        datastore=datastore,
                    )
                )
            )
        ],
    ),
)

print(response.text)
# Example response:
# 'The process for making an appointment to renew your driver's license varies depending on your location. To provide you with the most accurate instructions...'

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": {
    "..."
  }
}

응답 이해하기

두 API의 응답에는 LLM에서 생성한 텍스트(후보라고 함)가 포함됩니다. 모델 프롬프트가 Elasticsearch 데이터 소스에 성공적으로 그라운딩되면 응답에 Elasticsearch 데이터에서 파생된 응답 부분을 식별하는 그라운딩 메타데이터가 포함됩니다. 그러나 이 메타데이터가 제공되지 않을 수 있는 몇 가지 이유가 있으며 프롬프트 응답이 그라운딩되지 않을 수 있습니다. 이러한 이유로는 모델 응답 내의 소스 관련성이 낮거나 정보가 불완전한 경우가 포함됩니다.

다음은 출력 데이터의 세부정보입니다.

  • 역할: 그라운딩된 답변의 발신자를 나타냅니다. 응답에는 항상 그라운딩된 텍스트가 포함되므로 역할은 항상 model입니다.
  • 텍스트: LLM에서 생성한 그라운딩된 답변입니다.
  • 그라운딩 메타데이터: 다음 요소가 포함된 그라운딩 소스에 관한 정보입니다.
    • 그라운딩 청크: 답변을 지원하는 Elasticsearch 색인의 결과 목록입니다.
    • 그라운딩 지원: 인용을 표시하는 데 사용할 수 있는 답변 내 특정 주장에 관한 정보입니다.
    • 세그먼트: 그라운딩 청크로 입증되는 모델 응답의 일부입니다.
    • 접지 청크 색인: 이 클레임에 해당하는 접지 청크 목록의 접지 청크 색인입니다.
    • 신뢰도 점수: 제공된 그라운딩 청크 집합에서 클레임의 그라운딩 정도를 나타내는 0~1 사이의 숫자입니다. Gemini 2.5 이상에서는 사용할 수 없습니다.

다음 단계

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