このページでは、Gemini Enterprise の基本的な予測入力機能について説明します。予測入力は、クエリに入力された最初の数文字に基づいてクエリの候補を生成します。
構造化データと非構造化データの場合、デフォルトでは、予測入力はデータストア内のドキュメントの内容に基づいて候補を生成します。ドキュメントのインポート後、デフォルトでは、十分な品質のデータ(通常は数日間)が存在するまで、予測入力は候補の生成を開始しません。API を介して予測入力リクエストを行うと、予測入力は検索履歴やユーザー イベントに基づいた候補を生成できます。
クエリ候補モデルは、予測入力で候補の生成に使用するデータの種類を決定します。クエリ候補モデルは 4 つあります。
ドキュメント。ドキュメント モデルは、ユーザーがインポートしたドキュメントから候補を生成します。
完了可能フィールド。完了可能フィールド モデルは、構造化データ フィールドから直接取得したテキストを提案します。予測入力候補に使用されるのは、
completableでアノテーションされたフィールドのみです。このモデルは構造化データでのみ使用できます。検索履歴。検索履歴のモデルは、
SearchService.searchAPI 呼び出しの履歴から候補を生成します。servingConfigs.searchメソッドで使用できるトラフィックがない場合は、このモデルを使用しないでください。ユーザー イベント。ユーザー イベントのモデルは、ユーザーがインポートした検索イベントから候補を生成します。
予測入力リクエストは dataStores.completeQuery メソッドを使用して送信されます。
次の表に、各データ型で使用可能なクエリ候補モデルのタイプを示します。
クエリ候補モデル |
データソース |
ウェブサイトのデータ |
構造化データ |
非構造化データ |
|---|---|---|---|---|
| ドキュメント | ユーザーによるインポート | ✔*(デフォルト) | ✔(デフォルト) | |
| 完了可能フィールド | ユーザーによるインポート | ✔ | ||
| 検索履歴 | 自動収集 | ✔(デフォルト) | ✔ | ✔ |
| ユーザー イベント | ユーザーによるインポート、またはウィジェットによる自動収集 | ✔ | ✔ | ✔ |
*: ドキュメント スキーマに title フィールドまたは description フィールドが含まれているか、title または description キープロパティとして指定されたフィールドが含まれている必要があります。構造化データのスキーマを更新するをご覧ください。
データ型に対するデフォルト モデルを使用しない場合は、予測入力リクエストを送信するときに別のモデルを指定できます。予測入力リクエストは dataStores.completeQuery メソッドを使用して送信されます。詳細については、API の手順: 予測入力リクエストを送信して別のモデルを選択するをご覧ください。
予測入力機能
Gemini Enterprise は、検索時に最も有用な予測を表示する次の予測入力機能をサポートしています。
| 機能 | 説明 | 例または詳細情報 |
|---|---|---|
| 入力ミスを訂正する | 入力ミスがある単語のスペルを修正します。 | Milc → Milk。
|
| 安全でないキーワードを削除する |
|
ポルノ、露骨、下品、暴力などの不適切なテキスト。 |
| 基本的な個人情報(PII)の表示を防止する | Gemini Enterprise は、Sensitive Data Protection を利用して、電話番号やメールアドレスなどの基本的なタイプの個人情報(PII)が表示されないように合理的な努力を払っています。 |
データストアにメールアドレス 個人情報(PII)の漏洩をより徹底的に防止するには、Gemini Enterprise が提供する検出機能に加えて、独自のデータ損失防止(DLP)ソリューションを適用することをおすすめします。詳細については、個人情報(PII)の漏洩を防ぐをご覧ください。 |
| 拒否リスト |
|
詳しくは、予測入力の拒否リストを使用するをご覧ください。 |
| 重複排除用語 |
|
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に設定されている。クエリに完全な接頭辞一致の候補がない。
個人情報(PII)の漏洩を防ぐ
個人情報(PII)の定義は広範囲におよび、その検出は困難な場合があります。そのため、Gemini Enterprise では、予測入力の候補に個人情報(PII)が返されないことを保証できません。
Gemini Enterprise は、Sensitive Data Protection の検査サービスを適用して、一般的なタイプの個人情報(PII)が候補として表示されないように検索してブロックします。ただし、データストアに個人情報(PII)が含まれている場合、または検索履歴やユーザー イベントのクエリ候補モデルを使用している場合は、以下を確認して適切な措置を講じてください。
保護する個人情報(PII)の種類が電話番号やメールアドレスなど、かなり標準的なものである場合は、アプリの予測入力候補を広範囲にテストすることから始めます。Gemini Enterprise では、予測入力の候補に個人情報(PII)が返されないことを保証できません。
予測入力のテスト中に個人情報(PII)の漏洩が発見された場合や、保護すべき標準以外の個人情報(PII)(独自のユーザー ID など)がすでに存在することがわかっている場合は、予測入力のしきい値とコンテンツ配信パラメータを調整してみてください。詳細については、個人情報(PII)を含む候補が返されるリスクを軽減するをご覧ください。
パラメータの調整だけでは個人情報(PII)の漏洩を防ぐのに十分でない場合は、独自の DLP ソリューションを実装します。データストア、ユーザー イベント、ユーザーの検索クエリで最も検出される可能性の高い個人情報(PII)の種類に合わせて DLP ソリューションをカスタマイズします。Sensitive Data Protection またはサードパーティの DLP サービスを使用できます。次のいずれかの操作を行います
データストア内のドキュメントとユーザー イベントをインポートする前に、個人情報(PII)を除外します。
サービング時にユーザーに候補を表示する前に、予測入力の候補を確認し、個人情報(PII)を含む候補をブロックします。
検索履歴またはユーザー イベントのモデルを使用する場合は、検索バーに情報テキストを追加して、検索クエリに個人情報(PII)を入力しないようユーザーに伝えます。
個人情報(PII)のブロックについてご不明な点がある場合や、特定の課題に直面した場合は、カスタマー エンジニア(CE)または Google アカウント チームにお問い合わせください。
ウィジェットの予測入力をオンまたはオフにする
ウィジェットの予測入力をオンまたはオフにするには、次の手順を行います。
コンソール
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
編集するアプリの名前をクリックします。
[構成] をクリックします。
[UI] タブをクリックします。
[予測入力の候補を表示] オプションを切り替えて、ウィジェットの予測入力の候補のオンとオフを切り替えます。予測入力を有効にすると、候補が表示されるまで 1~2 日かかります。
予測入力の設定を更新する
UI で予測入力の設定を構成する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
編集するアプリの名前をクリックします。
[構成] をクリックします。
[予測入力] タブをクリックします。
更新する予測入力設定の新しい値を入力または選択します。
- 候補の最大数: クエリに対して表示できる予測入力の候補の最大数。
- トリガーする最小の長さ: 予測入力の候補が表示されるまでに必要な最小の入力文字数。
- マッチング順序: 予測入力が候補のマッチングを開始できるクエリ文字列内の位置。
- クエリ候補モデル: 取得された候補の生成に使用されるクエリ候補モデル。これは、
queryModelパラメータを使用してdataStores.completeQueryでオーバーライドできます。 予測入力を有効にする: デフォルトでは、十分な品質のデータ(通常は数日間)が収集されるまで、予測入力は候補の提示を開始しません。このデフォルトをオーバーライドして、予測入力の候補をすぐに表示するには、[今すぐ] を選択します。
[今すぐ] を選択した場合でも、候補の生成に 1 日かかることがあります。また、十分な量の優れたデータが得られるまで、一部の予測入力候補が欠落したり、品質が低下したりすることがあります。
拒否リスト: 拒否リストを Cloud Storage バケットの JSON ファイルとしてインポートします。拒否リストの制約と仕様について詳しくは、予測入力の拒否リストの使用をご覧ください。
[保存して公開] をクリックします。予測入力がすでに有効になっているエンジンの場合、変更は数分以内に反映されます。
個人情報(PII)を含む候補が返されるリスクを軽減する
エンドユーザーは、運転免許証や電話番号など、非公開にすべきあらゆる種類の個人情報(PII)を持っています。ただし、ユーザーが自分に固有の検索結果を探すために、これらの個人情報(PII)情報が検索バーに入力される可能性があります。
検索履歴またはユーザー イベントのモデルを使用しており、ユーザーが検索バーに個人情報(PII)を入力する可能性がある場合は、次のパラメータを調整することで個人情報(PII)の漏洩を減らすことができます。
queryFrequencyThreshold: クエリが予測入力の候補として返されるには、この回数だけ入力されている必要があります。numUniqueUsersThreshold: クエリが予測入力候補として返されるには、この数のユニーク ユーザーによって入力されている必要があります。ユーザーがユニークかどうかは、検索ユーザー イベントのuserPseudoIdフィールドの値によって判断されます。
ユースケースの例
たとえば、ユーザーが非公開にすべきアカウント番号を持っているケースを考えてみましょう。
検索履歴またはユーザー イベントの候補モデルが使用されている場合、これらのアカウント番号は、エンドユーザーが検索する他のすべてのキーワードとともに、候補の生成に使用されます。たとえば、ユーザー A のアカウント番号 YZ-46789A が検索バーに繰り返し入力され、ユーザー B のアカウント番号が YZ-42345B である場合、ユーザー B が検索バーに YZ-4 と入力すると、返される予測入力の候補がユーザー A のアカウント番号になることがあります。
このような漏洩が発生する可能性を減らすため、Gemini Enterprise 管理者は次のことを決定します。
queryFrequencyThresholdパラメータの値を30に増やします。この場合、1 つのアカウント番号が頻繁に入力される可能性は非常に低いです。ただし、よく使われている検索クエリは少なくともその頻度で入力されます。numUniqueUsersThresholdパラメータの値を6に増やします。管理者は、それぞれが異なるuserPseudoIdに関連付けられた 6 つの検索イベントで、同じアカウント番号が検索バーに入力される可能性は低いと考えます。
手順
予測入力には 2 つのしきい値パラメータがあります。これらのパラメータは Google Cloud コンソールでは使用できませんが、updateCompletionConfig メソッドへの REST API 呼び出しで設定できます。
予測入力のしきい値設定を構成する手順は次のとおりです。変更するパラメータに応じて、各ステップは省略可能です。
REST
CompletionConfig.queryFrequencyThresholdフィールドを更新します。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/completionConfig?updateMask=queryFrequencyThreshold \ -d '{ "name": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/completionConfig", "queryFrequencyThreshold": QUERY_FREQUENCY_THRESHOLD }'次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクトの番号または ID。DATA_STORE_ID: アプリに関連付けられているデータストアの ID。QUERY_FREQUENCY_THRESHOLD: 検索クエリが予測入力の候補として返されるまでに、検索クエリを入力する必要がある最小回数を示す整数値。この数は、数か月間のローリング ウィンドウで合計されます。デフォルトは8です。
CompletionConfig.numUniqueUsersThresholdフィールドを更新します。curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "X-Goog-User-Project: PROJECT_ID" \ https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/completionConfig?updateMask=numUniqueUsersThreshold \ -d '{ "name": "projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/completionConfig", "numUniqueUsersThreshold": UNIQUE_USERS }'UNIQUE_USERSは、予測入力の候補として返される前に、特定の検索クエリを入力する必要があるユニーク ユーザーの最小数を表す整数値に置き換えます。この数は、数か月間のローリング ウィンドウで合計されます。デフォルトは3です。
スキーマ内の完了可能なフィールドのアノテーションを更新する
構造化データスキーマのフィールドの予測入力を有効にする手順は次のとおりです。
コンソール
Google Cloud コンソールで、[Gemini Enterprise] ページに移動します。
編集するアプリの名前をクリックします。構造化データを使用する必要があります。
[データ] をクリックします。
[スキーマ] タブをクリックします。
[編集] をクリックして、
completableとしてマークするスキーマ フィールドを選択します。[保存] をクリックして、更新したフィールド構成を保存します。これらの候補が生成されて返されるまでには 1 日ほどかかります。
予測入力リクエストを送信する
次のサンプルは、予測入力リクエストを送信する方法を示しています。
REST
API を使用して予測入力リクエストを送信する手順は次のとおりです。
データストア ID を確認します。データストア ID がすでにある場合は、次のステップに進みます。
Google Cloud コンソールで、[Gemini Enterprise] ページに移動し、ナビゲーション メニューで [データストア] をクリックします。
データストアの名前をクリックします。
データストアの [データ] ページで、データストア ID を取得します。
dataStores.completeQueryメソッドを呼び出します。curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID:completeQuery?query=QUERY_STRING"次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクトの番号または ID。DATA_STORE_ID: アプリに関連付けられているデータストアの ID。QUERY_STRING: 候補の取得に使用される予測入力。
別のモデルに予測入力リクエストを送信する
別のクエリ候補モデルを使用して予測入力リクエストを送信する手順は次のとおりです。
データストア ID を確認します。データストア ID がすでにある場合は、次のステップに進みます。
Google Cloud コンソールで、[Gemini Enterprise] ページに移動し、ナビゲーション メニューで [データストア] をクリックします。
データストアの名前をクリックします。
データストアの [データ] ページで、データストア ID を取得します。
dataStores.completeQueryメソッドを呼び出します。curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID:completeQuery?query=QUERY_STRING&query_model=QUERY_SUGGESTIONS_MODEL"次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクトの番号または ID。DATA_STORE_ID: アプリに関連付けられているデータストアの一意の ID。QUERY_STRING: 候補の取得に使用される予測入力。AUTOCOMPLETE_MODEL: 予測入力データQUERY_SUGGESTIONS_MODEL: リクエストに使用するクエリ候補モデル(document、document-completable、search-history、user-event)。医療データの場合は、healthcare-defaultを使用します。
C#
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある C# の設定手順を完了してください。詳細については、Gemini Enterprise C# API リファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Go の設定手順を完了してください。 詳細については、Gemini Enterprise Go API リファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Java の設定手順を完了してください。 詳細については、Gemini Enterprise Java API リファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Node.js の設定手順を完了してください。 詳細については、Gemini Enterprise Node.js API リファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Python の設定手順を完了してください。 詳細については、Gemini Enterprise Python API リファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
このサンプルを試す前に、Gemini Enterprise クイックスタート: クライアント ライブラリの使用にある Ruby の設定手順を完了してください。 詳細については、Gemini Enterprise Ruby API リファレンス ドキュメントをご覧ください。
Gemini Enterprise に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
予測入力の拒否リストを使用する
拒否リストを使用して、特定のキーワードが予測入力の候補として表示されないようにします。
たとえば、製薬会社を考えてみましょう。薬が 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/global/dataStores/DATA_STORE_ID/suggestionDenyListEntries:import"次のように置き換えます。
DENYLIST_FILE: 拒否リストのキーワードを含む JSON ファイルのローカルパス。PROJECT_ID: Google Cloud プロジェクトの番号または ID。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の形式で入力する必要があります。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/global/dataStores/DATA_STORE_ID/suggestionDenyListEntries:import"次のように置き換えます。
GCS_SOURCE_FILE: 拒否リストを指すgcsSourceオブジェクトを含むファイルのローカルパス。PROJECT_ID: Google Cloud プロジェクトの番号または ID。DATA_STORE_ID: アプリに関連付けられているデータストアの ID。
拒否リストをインポートしてから、候補のフィルタリングが開始されるまで 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/global/dataStores/DATA_STORE_ID/suggestionDenyListEntries:purge"次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクトの番号または ID。DATA_STORE_ID: アプリに関連付けられているデータストアの ID。
インポートした予測入力の候補のリストを使用する
予測入力データモデルから生成された予測入力の候補を使用する代わりに、独自の予測入力の候補のリストを提供することもできます。
ほとんどのアプリケーションでは、予測入力データモデルのいずれかから生成された候補を使用すると、より良い結果が得られます。ただし、モデルの候補がニーズに合わない場合や、個別の候補リストを提供することでユーザー向けの予測入力が向上するようなまれな状況も考えられます。
たとえば、小規模なオンライン書店が書籍タイトルのリストを予測入力の候補としてインポートします。お客様が検索バーに入力を開始すると、予測入力の候補には常にインポートされたリストにある書籍タイトルが表示されます。書籍のリストが変更されると、書店は現在のリストを削除して新しいリストをインポートします。リストの一部は次のようになります。
{"suggestion": "Wuthering Heights", "globalScore": "0.52" },
{"suggestion": "The Time Machine", "globalScore": "0.26" },
{"suggestion": "Nicholas Nickleby", "globalScore": "0.38" },
{"suggestion": "A Little Princess", "globalScore": "0.71" },
{"suggestion": "The Scarlet Letter", "globalScore": "0.32" }
globalScore は、候補のランク付けに使用される [0, 1] の範囲内の浮動小数点数です。または、1 より大きい整数である frequency スコアを使用することもできます。globalScore が利用できない(null に設定されている)場合、frequency スコアは候補のランク付けに使用されます。
予測入力の候補を設定してインポートする
BigQuery から予測入力の候補のリストを設定してインポートする手順は次のとおりです。
候補のリストを作成し、BigQuery テーブルに読み込みます。
少なくとも、各候補を文字列として、かつグローバル スコアまたは頻度のいずれかとして指定する必要があります。
候補リストには次のテーブル スキーマを使用します。
[ { "description": "The suggestion text", "mode": "REQUIRED", "name": "suggestion", "type": "STRING" }, { "description": "Global score of this suggestion. Control how this suggestion would be scored and ranked. Set global score or frequency; not both.", "mode": "NULLABLE", "name": "globalScore", "type": "FLOAT" }, { "description": "Frequency of this suggestion. Used to rank suggestions when the global score is not available.", "mode": "NULLABLE", "name": "frequency", "type": "INTEGER" } ]BigQuery テーブルを作成し、予測入力の候補リストでテーブルを読み込む方法については、BigQuery のドキュメントをご覧ください。
BigQuery からリストをインポートします。
bigquerySourceオブジェクトを含むcompletionSuggestions:importメソッドに POST リクエストを送信します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/completionSuggestions:import" \ -d '{ "bigquery_source": {"project_id": "PROJECT_ID_SOURCE", "dataset_id": "DATASET_ID", "table_id": "TABLE_ID"} }'次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクトの番号または ID。DATA_STORE_ID: データストアの ID。PROJECT_ID_SOURCE: インポートするデータセットを含むプロジェクト。DATASET_ID: インポートする候補リストのデータセット IDTABLE_ID: インポートする候補リストのテーブル ID
省略可: 返された
name値をメモし、長時間実行オペレーションの詳細を取得するの手順に沿って、インポート オペレーションが完了するタイミングを確認します。アプリの予測入力を有効にしていない場合は、予測入力の設定を更新するの手順に沿って操作します。[予測入力を有効にする] を [今すぐ] に設定してください。
インデックス登録が完了し、インポートされた候補が利用可能になるまで数日待ちます。
予測入力リクエストを送信する
予測入力モデルの候補ではなく、インポートされた候補を返す予測入力リクエストを送信するには:
- 別のモデルに予測入力リクエストを送信する手順に沿って、
AUTOCOMPLETE_MODELをimported-suggestionに設定します。
インポートした予測入力の候補のリストを完全に削除する
新しい予測入力の候補のリストをインポートする前に、既存のリストを削除します。
予測入力の候補の既存のリストを削除する手順は次のとおりです。
POST リクエストを
completionSuggestions:purgeメソッドに送信します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/dataStores/DATA_STORE_ID/completionSuggestions:purge"次のように置き換えます。
PROJECT_ID: Google Cloud プロジェクトの番号または ID。DATA_STORE_ID: アプリに関連付けられているデータストアの ID。
高度なドキュメント データモデル
Gemini Enterprise は、予測入力用の高度なデータモデルを提供します。このデータモデルは、インポートしたドキュメントに基づいて、Google の大規模言語モデル(LLM)を活用して高品質の予測入力候補を生成します。
この機能は試験運用中です。この機能の使用をご希望の場合は、 Google Cloud アカウント チームにお問い合わせのうえ、許可リストへの追加をご依頼ください。
高度なドキュメント データモデルは、ヘルスケア検索や米国と EU のマルチリージョンでは使用できません。