このページでは、Vertex AI Search の基本的な予測入力機能について説明します。予測入力は、クエリに入力された最初の数文字に基づいてクエリの候補を生成します。
予測入力で生成される候補は、検索アプリが使用するデータの種類によって異なります。
構造化および非構造化データ。デフォルトでは、予測入力はデータストア内のドキュメントの内容に基づいて候補を生成します。 ドキュメントのインポート後、デフォルトでは、十分な品質のデータ(通常は数日間)が存在するまで、予測入力は候補の生成を開始しません。API 経由で予測入力リクエストを行うと、検索履歴やユーザー イベントに基づいて候補が生成されます。
ウェブサイトのデータ。デフォルトでは、予測入力は検索履歴から候補を生成します。予測入力には、実際の検索トラフィックが必要です。検索トラフィックが開始されてから、予測入力が候補を生成できるようになるまでに 1~2 日かかります。候補は、試験運用版の高度なドキュメント データモデルを使用して、一般公開サイトからウェブクロールされたデータから生成できます。
医療データ。デフォルトでは、医療データストアの予測入力候補の生成に、標準的な医療データソースが使用されます。医療検索の場合、予測入力はプレビュー機能です。
予測入力データモデルは、予測入力で候補の生成に使用するデータの種類を決定します。予測入力モデルには次の 4 種類があります。
Document. ドキュメント モデルは、ユーザーがインポートしたドキュメントから候補を生成します。このモデルは、ウェブサイトのデータや医療データでは使用できません。
完了可能フィールド。完了可能フィールド モデルは、構造化データ フィールドから直接取得したテキストを提案します。予測入力候補に使用されるのは、
completable
でアノテーションされたフィールドのみです。このモデルは構造化データでのみ使用できます。検索履歴。検索履歴モデルは、
SearchService.search
API 呼び出しの履歴から候補を生成します。servingConfigs.search
メソッドで使用できるトラフィックがない場合、このモデルは使用しないでください。このモデルは、医療データでは使用できません。ユーザー イベント。ユーザー イベント モデルは、ユーザーがインポートした検索イベントから候補を生成します。このモデルは、医療データでは使用できません。
予測入力リクエストは dataStores.completeQuery
メソッドを使用して送信されます。
次の表に、各データ型で使用可能な予測入力モデルのタイプを示します。
予測入力データモデル |
データソース |
ウェブサイトのデータ |
構造化データ |
非構造化データ |
---|---|---|---|---|
ドキュメント | ユーザーによるインポート | ✔* (デフォルト) | ✔(デフォルト) | |
完了可能フィールド | ユーザーによるインポート | ✔ | ||
検索履歴 | 自動収集 | ✔ (デフォルト) | ✔ | ✔ |
ユーザー イベント | ユーザーによるインポート、またはウィジェットによる自動収集 | ✔ | ✔ | ✔ |
ウェブクロール済みコンテンツ | ユーザー指定の一般公開ウェブサイトのコンテンツからクロール | ✔† |
*: ドキュメント スキーマに title
フィールドまたは description
フィールドが含まれているか、title
または description
キー プロパティとして指定されたフィールドが含まれている必要があります。構造化データのスキーマを更新するをご覧ください。
†: ウェブクロールされたコンテンツをデータソースとして使用できるのは、予測入力の試験運用版の高度なドキュメント データモデルが有効になっている場合のみです。高度なドキュメント データモデルをご覧ください。
データ型に対するデフォルト モデルを使用しない場合は、予測入力リクエストを送信するときに別のモデルを指定できます。予測入力リクエストは dataStores.completeQuery
メソッドを使用して送信されます。詳細については、API の手順: 予測入力リクエストを送信して別のモデルを選択するをご覧ください。
予測入力機能
Vertex AI Search は、検索時に最も有用な予測を表示する次の予測入力機能をサポートしています。
機能 | 説明 | 例や詳細 |
---|---|---|
入力ミスを訂正する | 入力ミスがある単語のスペルを修正します。 | Milc → Milk 。
|
安全でない用語を削除する |
|
ポルノ、露骨、下品、暴力などの不適切なテキスト。 |
拒否リスト |
|
詳細については、予測入力の拒否リストを使用するをご覧ください。 |
重複排除用語 |
|
Shoes for Women 、Womens Shoes 、Womans Shoes は重複除去され、最も人気のあるものだけが候補として表示されます。 |
末尾一致の候補 |
|
詳細については、末尾一致の候補をご覧ください。 |
末尾一致の候補
末尾一致の候補は、クエリ文字列の最後の単語に対して完全な接頭辞一致を使用して生成されます。
たとえば、予測入力リクエストで「songs with he」というクエリが送信されたとします。末尾一致が有効になっている場合、予測入力では「songs with he」という完全な接頭辞に一致するものが見つからないことがあります。ただし、クエリの最後の単語「he」は、「hello world」と「hello kitty」と完全に一致する接頭辞です。その場合、完全一致の候補がないため、「songs with hello world」と「songs with hello kitty」が返されます。
この機能を使用すると、空の候補結果を減らし、候補の多様性を高めることができます。これは、データソース(ユーザー イベント数、検索履歴、ドキュメントのトピック範囲)が限られている場合に特に便利です。ただし、末尾一致の候補を有効にすると、候補の全体的な品質が低下する可能性があります。末尾一致は接頭辞の末尾の単語にのみ一致するため、返される候補の一部は意味がないものになる可能性があります。たとえば、「songs with he」というクエリに対して、「songs with helpers guides」のような末尾一致の候補が提示される場合があります。
末尾一致の候補は、次の場合にのみ返されます。
include_tail_suggestions
が、dataStores.completeQuery
リクエストでtrue
に設定されている。クエリに完全な接頭辞一致の候補がない。
ウィジェットの予測入力をオンまたはオフにする
ウィジェットの予測入力をオンまたはオフにするには、次の手順を行います。
Console
Google Cloud コンソールで、[Agent Builder] ページに移動します。
編集するアプリの名前をクリックします。
[設定] をクリックします。
[UI] タブをクリックします。
[予測入力の候補を表示] オプションを切り替えて、ウィジェットの予測入力の候補のオンとオフを切り替えます。予測入力を有効にすると、候補が表示されるまで 1~2 日かかります。医療検索の場合、予測入力はプレビュー機能です。
予測入力の設定を更新する
予測入力の設定を構成する手順は次のとおりです。
Console
Google Cloud コンソールで、[Agent Builder] ページに移動します。
編集するアプリの名前をクリックします。
[設定] をクリックします。
[予測入力] タブをクリックします。
更新する予測入力設定の新しい値を入力または選択します。
- 候補の最大数: クエリに対して表示できる予測入力の候補の最大数。
- トリガーする最小の長さ: 予測入力の候補が表示される前に入力できる最小文字数。
- マッチング順序: 予測入力が候補の照合を開始できるクエリ文字列内の位置。
- 予測入力モデル: 取得された候補の生成に使用される予測入力データモデル。これは、
queryModel
パラメータを使用してdataStores.completeQuery
でオーバーライドできます。 予測入力を有効にする: デフォルトでは、十分な品質のデータ(通常は数日間)が収集されるまで、予測入力は候補の提示を開始しません。このデフォルトをオーバーライドして、予測入力の候補をすぐに表示するには、[今すぐ] を選択します。
[今すぐ] を選択した場合でも、候補の生成に 1 日かかることがあります。また、十分な量の優れたデータが得られるまで、一部の予測入力候補が欠落したり、品質が低下したりすることがあります。
[保存して公開] をクリックします。予測入力がすでにオンになっているエンジンでは、変更は数分以内に有効になります。
スキーマ内の完了可能なフィールドのアノテーションを更新する
構造化データ スキーマのフィールドの予測入力を有効にする手順は次のとおりです。
Console
Google Cloud コンソールで、[Agent Builder] ページに移動します。
編集するアプリの名前をクリックします。構造化データを使用する必要があります。
[データ] をクリックします。
[スキーマ] タブをクリックします。
[編集] をクリックして、
completable
としてマークするスキーマ フィールドを選択します。[保存] をクリックして、更新したフィールドの設定を保存します。これらの候補が生成されて返されるまでには 1 日ほどかかります。
予測入力リクエストを送信する
次のサンプルは、予測入力リクエストを送信する方法を示しています。
REST
API を使用して予測入力リクエストを送信する手順は次のとおりです。
データストア ID を確認します。データストア ID がすでにある場合は、次のステップに進みます。
Google Cloud コンソールで [Agent Builder] ページに移動し、ナビゲーション メニューで [データストア] をクリックします。
データストアの名前をクリックします。
データストアの [データ] ページで、データストア ID を取得します。
dataStores.completeQuery
メソッドを呼び出します。curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:completeQuery?query=QUERY_STRING"
PROJECT_ID: Google Cloud プロジェクトのプロジェクト番号または ID。
LOCATION: データストアのロケーション(
us
、eu
、global
)。DATA_STORE_ID: アプリに関連付けられているデータストアの ID。
QUERY_STRING: 候補の取得に使用されるタイプアヘッド入力。
別のモデルに予測入力リクエストを送信する
別の予測入力データモデルを使用して予測入力リクエストを送信する手順は次のとおりです。
データストア ID を確認します。データストア ID がすでにある場合は、次のステップに進みます。
Google Cloud コンソールで [Agent Builder] ページに移動し、ナビゲーション メニューで [データストア] をクリックします。
データストアの名前をクリックします。
データストアの [データ] ページで、データストア ID を取得します。
dataStores.completeQuery
メソッドを呼び出します。curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:completeQuery?query=QUERY_STRING&query_model=AUTOCOMPLETE_MODEL"
- PROJECT_ID: Google Cloud プロジェクトのプロジェクト番号または ID。
- LOCATION: データストアのロケーション(
us
、eu
、global
)。 - DATA_STORE_ID: アプリに関連付けられているデータストアの一意の ID。
- QUERY_STRING: 候補の取得に使用されるタイプアヘッド入力。
- AUTOCOMPLETE_MODEL: リクエストに使用する予測入力データモデル(
document
、document-completable
、search-history
、user-event
)。医療データの場合は、healthcare-default
を使用します。
C#
詳細については、Vertex AI Agent Builder C# API のリファレンス ドキュメントをご覧ください。
Vertex AI Agent Builder に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Vertex AI Agent Builder Go API のリファレンス ドキュメントをご覧ください。
Vertex AI Agent Builder に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Vertex AI Agent Builder Java API のリファレンス ドキュメントをご覧ください。
Vertex AI Agent Builder に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Vertex AI Agent Builder Node.js API のリファレンス ドキュメントをご覧ください。
Vertex AI Agent Builder に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Vertex AI Agent Builder Python API のリファレンス ドキュメントをご覧ください。
Vertex AI Agent Builder に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Vertex AI Agent Builder Ruby API のリファレンス ドキュメントをご覧ください。
Vertex AI Agent Builder に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
予測入力の拒否リストを使用する
拒否リストを使用して、特定の用語が予測入力の候補として表示されないようにします。
たとえば、製薬会社について考えてみましょう。薬が FDA の承認を受けなくなったが、データストア内のドキュメントに記載されている場合は、その薬が候補の検索語句として表示されないようにしたい場合があります。この企業は、その薬の名前を拒否リストに追加して、候補として表示されないようにすることができます。
次の上限が適用されます。
- データストアごとに 1 つの拒否リスト
- 拒否リストをアップロードすると、そのデータストアの既存の拒否リストが上書きされます。
- 拒否リストごとに最大 1,000 個のキーワード
- キーワードは大文字と小文字が区別されません
- 拒否リストをインポートしてから有効になるまで 1~2 日かかります
拒否リストの各エントリは、blockPhrase
と matchOperator
で構成されます。
blockPhrase
: 拒否リストの用語として文字列を入力します。キーワードは大文字と小文字が区別されません。matchOperator
: 次の値を使用できます。EXACT_MATCH
: 拒否リストのキーワードと完全に一致するキーワードが候補の検索語句として表示されないようにします。CONTAINS
: 拒否リストのキーワードを含む候補が表示されないようにします。
4 つのエントリを含む拒否リストの例を次に示します。
{ "entries": [ {"blockPhrase":"Oranges","matchOperator":"CONTAINS"}, {"blockPhrase":"bAd apples","matchOperator":"EXACT_MATCH"}, {"blockPhrase":"Cool as A Cucumber","matchOperator":"EXACT_MATCH"}, {"blockPhrase":"cherry pick","matchOperator":"CONTAINS"} ] }
拒否リストをインポートする前に、Discovery Engine エディタのアクセスに必要なアクセス制御が設定されていることを確認してください。
拒否リストは、ローカル JSON データまたは Cloud Storage からインポートできます。データストアから拒否リストを削除するには、拒否リストをパージします。
ローカル JSON データから拒否リストをインポートする
拒否リストを含むローカル JSON ファイルから拒否リストをインポートするには、次の操作を行います。
次の形式でローカル JSON ファイルに拒否リストを作成します。各拒否リスト エントリが改行なしで新しい行に配置されていることを確認します。
{ "inlineSource": { "entries": [ { "blockPhrase":"TERM_1","matchOperator":"MATCH_OPERATOR_1" }, { "blockPhrase":"TERM_2","matchOperator":"MATCH_OPERATOR_2" } ] } }
JSON ファイルの名前を指定して、
suggestionDenyListEntries:import
メソッドに POST リクエストを送信します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @DENYLIST_FILE \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataStores/DATA_STORE_ID/suggestionDenyListEntries:import"
- DENYLIST_FILE: 拒否リストの用語を含む JSON ファイルのローカルパス。
- PROJECT_ID: Google Cloud プロジェクトのプロジェクト番号または ID。
- LOCATION: データストアのロケーション(
us
、eu
、global
)。 - DATA_STORE_ID: アプリに関連付けられているデータストアの ID。
拒否リストをインポートしてから、候補のフィルタリングが開始されるまで 1~2 日かかります。
Cloud Storage から拒否リストをインポートする
Cloud Storage の JSON ファイルから拒否リストをインポートするには、次の操作を行います。
次の形式の JSON ファイルで拒否リストを作成し、Cloud Storage バケットにインポートします。各拒否リスト エントリが改行なしで新しい行に配置されていることを確認します。
{ "blockPhrase":"TERM_1","matchOperator":"MATCH_OPERATOR_1" } { "blockPhrase":"TERM_2","matchOperator":"MATCH_OPERATOR_2" }
gcsSource
オブジェクトを含むローカル JSON ファイルを作成します。これを使用して、Cloud Storage バケット内の拒否リスト ファイルのロケーションを指定します。{ "gcsSource": { "inputUris": [ "DENYLIST_STORAGE_LOCATION" ] } }
- DENYLIST_STORAGE_LOCATION: Cloud Storage 内の拒否リストのロケーション。入力できる URI は 1 つのみです。URI は
gs://BUCKET/FILE_PATH
の形式で入力する必要があります。
- DENYLIST_STORAGE_LOCATION: Cloud Storage 内の拒否リストのロケーション。入力できる URI は 1 つのみです。URI は
gcsSource
オブジェクトを含むsuggestionDenyListEntries:import
メソッドに POST リクエストを送信します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @GCS_SOURCE_FILE \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataStores/DATA_STORE_ID/suggestionDenyListEntries:import"
- GCS_SOURCE_FILE: 拒否リストを参照する
gcsSource
オブジェクトを含むファイルのローカルパス。 - PROJECT_ID: Google Cloud プロジェクトのプロジェクト番号または ID。
- LOCATION: データストアのロケーション(
us
、eu
、global
)。 - DATA_STORE_ID: アプリに関連付けられているデータストアの ID。
- GCS_SOURCE_FILE: 拒否リストを参照する
拒否リストをインポートしてから、候補のフィルタリングが開始されるまで 1~2 日かかります。
拒否リストをパージする
データストアから拒否リストをパージする手順は次のとおりです。
POST リクエストを
suggestionDenyListEntries:purge
メソッドに送信します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataStores/DATA_STORE_ID/suggestionDenyListEntries:purge"
- PROJECT_ID: Google Cloud プロジェクトのプロジェクト番号または ID。
- LOCATION: データストアのロケーション(
us
、eu
、global
)。 - DATA_STORE_ID: アプリに関連付けられているデータストアの ID。
高度なドキュメント データモデル
Vertex AI Agent Builder は、予測入力用の高度なデータモデルを提供します。このデータモデルは、インポートしたドキュメントに基づいて、Google の大規模言語モデル(LLM)を活用して高品質の予測入力候補を生成します。
この機能は試験運用中です。この機能の使用に関心をお持ちの場合は、Google Cloud アカウント チームに連絡して許可リストへの追加をリクエストしてください。
この機能は、医療検索や米国と EU のマルチリージョンではご利用いただけません。