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

このページでは、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 データストアにモデル プロンプトが正常にグラウンディングされた場合、モデルのレスポンスには引用とソースリンクを含むメタデータが含まれます。モデルのレスポンス内でソースの関連性が低い、または情報が不完全な場合、メタデータが提供されず、プロンプト レスポンスがグラウンディングされません。

次のステップ