検索用のオートコンプリート データをインポートする

オートコンプリートは、ユーザーが入力した語句の残りを予測する機能であり、ユーザーの検索エクスペリエンスが向上します。提供されたデータセットまたは提供されたユーザー イベントに基づいて、先行入力候補を提供できます。

その他の制御(削除対象外リスト、拒否リスト)が必要な場合や、独自のオートコンプリート データを使用する必要がある場合にのみ、オートコンプリート データをインポートすることを検討してください。オートコンプリートが必要となるほとんどのケースでは、自動学習を有効にするだけで十分です。自動学習では、ユーザー検索イベントに基づいて、機械学習を活用した候補データセットが提供されます。自動学習を有効にする方法については、オートコンプリートをご覧ください。

以下の手順は、独自のオートコンプリート データのみをアップロードするためのものです。オートコンプリート データセットを常に使用する予定の場合は、最新の状態を保つようにしてください。クエリの実行時にオートコンプリート結果を取得する方法については、CompletionService.CompleteQuery をご覧ください。オートコンプリート データは検索にのみ使用されます。このデータはレコメンデーションでは使用されません。

始める前に

オートコンプリート情報を読み込むには、事前に始める前にの手順、特にプロジェクトの設定サービス アカウントの作成ローカル環境へのサービス アカウントの追加を完了しておく必要があります。

インポートを実行するには、Retail 編集者の IAM ロールが必要です。

オートコンプリートのインポートに関するベスト プラクティス

オートコンプリート データをインポートするときは、次のベスト プラクティスを実施するようにしてください。

  • 次のセクションにリストされている BigQuery スキーマと API ドキュメントを確認する。

  • プレースホルダの値は使用しないでください。

  • できるだけ多くのフィールドを指定します。

  • 独自のアップロード済みデータセットを使用する場合は、独自のオートコンプリート データセットを最新の状態に保ちます。

  • 別のプロジェクトからのデータ インポートは禁止されています。

オートコンプリート データをインポートする

オートコンプリート データを BigQuery からインポートする

小売業向け Vertex AI Search は、拒否リスト、削除対象外リスト、候補の語句リストに関する BigQuery データのインポートをサポートしています。詳しくは、オートコンプリートをご覧ください。

オートコンプリート データを BigQuery から正しい形式でインポートするには、小売業向け Vertex AI Searchl のオートコンプリート スキーマを使用して、正しい形式で BigQuery テーブルを作成し、オートコンプリート データでテーブルを読み込みます。次に、データを小売業向け Vertex AI Search にアップロードします。

BigQuery テーブルの詳細については、テーブルの概要をご覧ください。BigQuery クエリについては、BigQuery データのクエリの概要をご覧ください。

BigQuery データセットの場所

オートコンプリートを使用した BigQuery テーブル用に初めて BigQuery データセットを作成するときは、データセットのロケーションがマルチリージョン ロケーション "US" に設定されていることを確認してください。正しく設定しないと、後でインポート リクエストが失敗します。BigQuery データセットのロケーションの詳細については、BigQuery のドキュメントのデータセットのロケーションをご覧ください。

BigQuery にデータを入力する

小売業向け Vertex AI Search のオートコンプリート スキーマを使用して、オートコンプリート データを BigQuery にアップロードします。

BigQuery は、このスキーマを使用して、JSON 形式のデータに正しいフィールド名と型(STRINGINTEGERRECORD など)があるかどうかを確認できます。ただし、次のような判定の確認を行うことはできません。

  • 文字列フィールドが認識可能な列挙値にマッピングされているかどうか
  • 文字列フィールドが正しい形式を使用しているかどうか
  • 整数フィールドまたは浮動小数点フィールドに有効な範囲内の値があるかどうか
  • 欠落しているフィールドが必須フィールドであるかどうか

データの品質とエンドユーザーの検索エクスペリエンスを確保するために、値と形式に関する詳細について、スキーマとリファレンスのドキュメントを参照してください。

BigQuery データセットへのアクセス権を設定する

アクセス権を設定するには、BigQuery データセットが小売業向け Vertex AI Search サービスと同じプロジェクトにあることを確認して、次の手順を実施します。

  1. Google Cloud コンソールで [IAM] ページを開きます。

    [IAM] ページを開く

  2. 小売業向け Vertex AI Search プロジェクトを選択します。

  3. [IAM と管理] ページで、 [アクセス権を付与] をクリックします。

  4. [新しいプリンシパル] に「cloud-retail-customer-data-access@system.gserviceaccount.com」と入力し、[BigQuery] > [BigQuery Data Viewer] のロールを選択します。

    プロジェクト全体でデータ閲覧者のロールを指定したくない場合は、このロールをデータセットに直接追加できます。詳細

  5. [保存] をクリックします。

小売業向け Vertex AI Search へのデータのインポートをトリガーする

コンソール

  1. [Controls] ページに移動

  2. [オートコンプリート コントロール] タブに移動します。

  3. [語句リスト] セクションで、インポートするリストの種類([拒否リスト]、[削除対象外リスト]、[候補用語のリスト)を見つけ、[インポート] または [置換] をクリックします。

    [インポート] ペインが開きます。

  4. データ ロケーションの BigQuery のパスを入力するか、[参照] を選択してロケーションを選択します。

    BigQuery のパスが同じプロジェクト内にあり、そのスキーマが正しいことが必要です。これを確認するには、[参照] をクリックしてテーブル名をクリックし、BigQuery コンソールでコンテンツを表示します。

  5. [インポート] ペインで [インポート] をクリックします。

    インポートが開始されます。インポートを中断せずにページを離れることができます。

cURL

  1. インポートの入力パラメータのデータファイルを作成します。入力パラメータ値は、Cloud Storage または BigQuery のどちらからインポートするかによって異なります。

    BigQuery データセットを指定するには、BigQuerySource オブジェクトを使用します。

    {
      "inputConfig":{
        "bigQuerySource": {
          "datasetId":"dataset-id",
          "tableId":"table-id",
          "dataSchema":"data-schema"
        }
      }
    }
    
  2. CompletionData:import REST メソッドに POST リクエストを行い、データファイルの名前(下の例では input.json)を指定して、オートコンプリート情報を小売業向け Vertex AI Search for Retail にインポートします。

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" -d @./input.json
    "https://retail.googleapis.com/v2alpha/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/completionData:import"
    

    API を使用して、プログラムでステータスを確認できます。次のようなレスポンス オブジェクトが返されます。

    {
      "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/123456",
      "done": false
    }
    

    名前の項目は、オペレーション オブジェクトの ID です。このオブジェクトのステータスをリクエストするには、名前フィールドを import メソッドから返される値に置き換えます。インポートが完了すると、done フィールドは true を返します。

    curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/123456"
    

    オペレーションが完了すると、返されたオブジェクトは truedone 値を持ち、次の例のような Status オブジェクトが含まれます。

    {
      "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/123456",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.retail.v2alpha.ImportMetadata",
        "createTime": "2020-01-01T03:33:33.000001Z",
        "updateTime": "2020-01-01T03:34:33.000001Z",
        "successCount": "2",
        "failureCount": "1"
      },
      "done": true
      "response": {
        "@type": "type.googleapis.com/google.cloud.retail.v2alpha.ImportCompletionDataResponse",
      }
    }
    

オートコンプリート データの形式

JSON ファイルは次の例のようになります。改行は読みやすくするためのものです。候補全体を 1 行で入力する必要があります。 各候補は 1 行にまとめる必要があります。

候補の最低限の必須項目は、次のとおりです。

{
  "suggestion": "ABC",
  "globalScore": "0.5"
}

または

{
  "suggestion": "ABC",
  "frequency": "100"
}

オートコンプリート データのインポート時間

BigQuery から 1 つのインポートが完了するまでに数分から 1 時間ほどかかります。

データセットのインポートが終了すると、オペレーション オブジェクトdone フィールドが true とマークされます。その後、データがインデックスに登録され、本番環境サービスで使用されるまでに 1 ~ 2 日かかることがあります。

オートコンプリート データセットを最新の状態に保つ

独自のアップロード済みデータセットを使用する場合は、アップロード済みデータセットを、定期的に最新の状態に保つことをおすすめします。

バッチ アップデート

import メソッドを使用して、オートコンプリートをバッチ アップデートできます。これは初期インポートと同じです。オートコンプリート データをインポートするの手順に従ってください。これにより、インポートされたデータセット全体が置き換えられます。

インポート状態をモニタリングする

独自のデータセットを最新の状態に保つことは、使用時に高品質の候補の結果を得るうえで重要です。インポートのエラー率をモニタリングし、必要に応じて対処する必要があります。

小売業向け Vertex AI Search のオートコンプリート スキーマ

オートコンプリート データセットを BigQuery からインポートする場合は、以下の小売業向け Vertex AI Search スキーマを使用して、正しい形式の BigQuery テーブルを作成し、オートコンプリート データでテーブルを読み込みます。

提案のスキーマ

このデータセットは、独自のオートコンプリートの候補のフレーズに独自のスコアを提供するために使用されます。

拒否リストのスキーマ

このデータセットは、フレーズを提案しないように拒否リストとして使用します。

許可リストのスキーマ

このデータセットは、この許可リストに含まれているフレーズの後処理(スペル修正やゼロ結果のフィルタリングなど)をスキップするために使用されます。