データでグラウンディングする

このページでは、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 自由形式] ページに移動します。

    [自由形式] に移動

  2. グラウンディングを有効にするには、[グラウンディング] 切り替えボタンをクリックします。
  3. [カスタマイズ] をクリックします。
    1. ソースとして [Vertex AI Search] を選択します。
    2. 次のパス形式を使用して、データストアのプロジェクト ID とデータストアの ID を置き換えます。

      projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id

  4. [保存] をクリックします。
  5. テキスト ボックスにプロンプトを入力し、[送信] をクリックします。

プロンプトの回答が Vertex AI Agent Builder にグラウンディングされます。

Gen AI SDK for Python

インストール

pip install --upgrade google-genai
詳細については、 SDK リファレンス ドキュメントをご覧ください。

Vertex AI で Gen AI SDK を使用するための環境変数を設定します。

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=us-central1
export GOOGLE_GENAI_USE_VERTEXAI=True

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

レスポンスを理解する

Vertex AI Studio または API を使用して Vertex AI Search データストアにモデル プロンプトが正常にグラウンディングされた場合、モデルのレスポンスには引用とソースリンクを含むメタデータが含まれます。モデルのレスポンス内でソースの関連性が低い、または情報が不完全な場合、メタデータが提供されず、プロンプト レスポンスがグラウンディングされません。

次のステップ