このページでは、Vertex AI Search のデータを使用してレスポンスをグラウンディングする方法について説明します。
Gemini をデータにグラウンディングする
検索拡張生成(RAG)を行う場合は、モデルをウェブサイトのデータまたはドキュメント セットに接続し、Vertex AI Search によるグラウンディングを使用します。
データへのグラウンディングは、最大 10 個の Vertex AI Search データソースをサポートし、Google 検索を使用したグラウンディングと組み合わせることができます。
サポートされているモデル
このセクションでは、データでのグラウンディングをサポートするモデルを示します。
- Gemini 3 Pro プレビュー モデル
- Gemini 3 Pro Image プレビュー モデル
- Gemini 2.5 Pro
- Gemini 2.5 Flash プレビュー モデル
- Gemini 2.5 Flash-Lite プレビュー モデル
- Gemini 2.5 Flash
- Gemini 2.5 Flash-Lite
- Live API ネイティブ音声を使用した Gemini 2.5 Flash プレビュー モデル
- Live API を使用した Gemini 2.0 Flash プレビュー モデル
- Gemini 2.0 Flash
前提条件
モデル出力をデータにグラウンディングする前に、次の操作を行います。
Google Cloud コンソールで [IAM] ページに移動し、グラウンディング サービスが機能するために必要な
discoveryengine.servingConfigs.search権限を検索します。AI Applications を有効にして API を有効にします。
AI Applications のデータソースとアプリケーションを作成します。
詳細については、Vertex AI Search の概要をご覧ください。
AI アプリケーションを有効にする
Vertex AI Search を使用してレスポンスをグラウンディングするには、次の手順で Vertex AI Search サービスを有効にする必要があります。
Google Cloud コンソールで、[AI Applications] ページに移動します。
省略可: データの使用に関する規約を確認します。
AI Applications は、global ロケーション、または eu と us のマルチリージョンで使用できます。詳細については、AI アプリケーションのロケーションをご覧ください。
AI Applications でデータストアを作成する
AI Applications でデータストアを作成するには、ウェブサイトのデータまたはドキュメントでグラウンディングすることを選択できます。
ウェブサイト
Google Cloud コンソールで [データストアの作成] ページを開きます。
[ウェブサイトのコンテンツ] ボックスで [選択] をクリックします。
[データストアのウェブサイトの指定] ペインが表示されます。[ウェブサイトの高度なインデックス登録] チェックボックスがオンになっていない場合は、[ウェブサイトの高度なインデックス登録] チェックボックスをオンにします。
[データストアの構成] ペインが表示されます。[インデックスに登録する URL パターンを指定してください] セクションで、次の操作を行います。
- [追加するサイト] に URL を追加します。
- 省略可: [除外するサイト] に URL を追加します。
[続行] をクリックします。
[データストアの構成] ペインで、
- [データストアのロケーション] リストから値を選択します。
- [データストア名] フィールドに名前を入力します。ID が生成されます。この ID は、データストアでグラウンディングされた回答を生成するときに使用します。詳細については、データストアでグラウンディングされた回答を生成するをご覧ください。
- [作成] をクリックします。
ドキュメント
Google Cloud コンソールで [データストアの作成] ページを開きます。
[Cloud Storage] ボックスで [選択] をクリックします。
[Cloud Storage のデータをインポート] ペインが表示されます。[非構造化ドキュメント(PDF、HTML、TXT など)] セクションで、[非構造化ドキュメント(PDF、HTML、TXT など)] を選択します。
[同期の頻度] オプションを選択します。
[インポートするフォルダまたはファイルを選択します] オプションを選択し、フィールドにパスを入力します。
[続行] をクリックします。
[データストアの構成] ペインが表示されます。[データストアの構成] ペインで、
- [データストアのロケーション] リストから値を選択します。
- [データストア名] フィールドに名前を入力します。ID が生成されます。
- ドキュメントの解析とチャンキングのオプションを選択するには、[ドキュメント処理オプション] セクションを開きます。さまざまなパーサーの詳細については、ドキュメントを解析するをご覧ください。
- [作成] をクリックします。
[作成] をクリックします。
データストアを使用して根拠のある回答を生成する
独自のデータでモデルをグラウンディングするには、次の手順で操作します。最大 10 個のデータストアがサポートされます。
データストア ID がわからない場合は、次の操作を行います。
Google Cloud コンソールで、[AI Applications] ページに移動し、ナビゲーション メニューで [データストア] をクリックします。
データストアの名前をクリックします。
データストアの [データ] ページで、データストア ID を取得します。
コンソール
Google Cloud コンソールの Vertex AI Studio を使用してモデル出力を AI Applications にグラウンディングする手順は次のとおりです。
- Google Cloud コンソールで、[Vertex AI Studio] ページに移動します。
- グラウンディングをオンにする手順は次のとおりです。
- ナビゲーション メニューで [+ 新規]、[チャット] の順にクリックします。
- [モデル設定] ペインを開き、モデルを選択します。
- 省略可: [構造化された出力] または [グラウンディング: Google] の切り替えがオンになっている場合は、オプションをオフにします。
- [グラウンディング: お客様のデータ] 切り替えをクリックします。[根拠づけのカスタマイズ] ペインが表示されます。
- 次の表から根拠づけのソース オプションを選択します。
- [Elasticsearch エンドポイント] フィールドに値を入力します。
- [Elasticsearch API キー] フィールドに値を入力します。
- [Elasticsearch インデックス] フィールドに値を入力します。
- [Elasticsearch 検索テンプレート] フィールドに値を入力します。
- [保存] をクリックします。
グラウンディング オプション 説明 入力 Vertex AI RAG Engine データと DIY コンポーネントを使用してグラウンディングします。 コーパスがない場合は、作成する必要があります。それ以外の場合は、コーパスを入力します。 Vertex AI Search Googleが管理する検索エンジンを使用して、データでグラウンディングします。 [Vertex AI データストア パス] フィールドにパスを入力します。 Elasticsearch Elasticsearch を使用してグラウンディングします。 次の情報を入力します。
- テキスト ボックスにプロンプトを入力し、[送信] をクリックします。プロンプトの回答が AI Applications にグラウンディングされます。
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=global export GOOGLE_GENAI_USE_VERTEXAI=True
from google import genai
from google.genai.types import (
GenerateContentConfig,
VertexAISearch,
Retrieval,
Tool,
HttpOptions,
)
client = genai.Client(http_options=HttpOptions(api_version="v1"))
# Replace with your Vertex AI Search data store details
DATASTORE_PATH = "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATASTORE_ID"
tool = Tool(
retrieval=Retrieval(
vertex_ai_search=VertexAISearch(
datastore=DATASTORE_PATH
)
)
)
response = client.models.generate_content(
model="gemini-2.5-flash", # Or another supported model
contents="What information can you find about topic X in the provided documents?", # Your query
config=GenerateContentConfig(
tools=[tool],
),
)
print(response.text)
REST
Vertex AI API を使用してテキスト プロンプトをテストするには、パブリッシャー モデル エンドポイントに POST リクエストを送信します。
リクエストのデータを使用する前に、次のように置き換えます。
- LOCATION: リクエストを処理するリージョン。
globalエンドポイントを使用するには、エンドポイント名からロケーションを除外し、リソースのロケーションをglobalに構成します。 - PROJECT_ID: 実際のプロジェクト ID。
- MODEL_ID: マルチモーダル モデルのモデル ID。
- PROMPT: モデルに送信するプロンプト。
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": "PROMPT"
}]
}],
"tools": [{
"retrieval": {
"vertexAiSearch": {
"datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATASTORE_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 によって生成されたテキスト(候補)が含まれます。モデル プロンプトがデータソースに正常にグラウンディングされると、レスポンスにはグラウンディング メタデータが含まれます。このメタデータは、レスポンスのどの部分がデータから派生したかを識別します。ただし、このメタデータが提供されず、プロンプト レスポンスがグラウンディングされない場合もあります。その理由はいくつかあります。たとえば、ソースの関連性が低い、モデルのレスポンス内の情報が不完全である、などです。
出力データの内訳は次のとおりです。
- ロール: グラウンディングされた回答の送信者。レスポンスには常にグラウンディングされたテキストが含まれるため、ロールは常に
modelになります。 - テキスト: LLM によって生成されたグラウンディング済みの回答。
- グラウンディング メタデータ: グラウンディング ソースに関する情報。次の要素が含まれます。
- グラウンディング チャンク: 回答をサポートするインデックスの結果のリスト。
- グラウンディング サポート: 引用を表示するために使用できる、回答内の特定の主張に関する情報。
- セグメント: グラウンディング チャンクで裏付けられたモデルの回答の一部。
- グラウンディング チャンクのインデックス: このクレームに対応するグラウンディング チャンク リスト内のグラウンディング チャンクのインデックス。
- 信頼スコア: 主張が提供されたグラウンディング チャンクのセットにおいてどの程度根拠があるかを示す 0~1 の数値。Gemini 2.5 以降では利用できません。
次のステップ
- チャット プロンプト リクエストの送信方法については、マルチターン チャットをご覧ください。
- 責任ある AI のベスト プラクティスと Vertex AI の安全フィルタについては、安全に使用するためのベスト プラクティスをご覧ください。