メディア検索を使ってみる

最先端のメディア検索アプリを簡単に構築できます。メディア検索を使用すると、ユーザーは Google 品質の結果でコンテンツを見つけられるようになります。

メディア向け Vertex AI Search の一般的な情報については、メディア検索とレコメンデーションの概要をご覧ください。

この入門チュートリアルでは、Movielens データセットを使用して、メディア コンテンツ カタログを Vertex AI Search にアップロードする方法を示します。MovieLens データセットには、映画(ドキュメント)のカタログが含まれています。

映画のデータをアップロードしたら、検索アプリを作成し、プレビュー ページでテストします。

メディア レコメンデーションのスタートガイド チュートリアルを完了していて、データストア(推奨名 quickstart-media-data-store)が残っている場合は、別のデータストアを作成する代わりに、そのデータストアを使用できます。この場合は、メディア検索用のアプリを作成するのステップからチュートリアルを開始する必要があります。

このチュートリアルの所要時間: 1 時間程度。

目標

  • メディア ドキュメントをインポートしてメディア データストアを作成する方法について学習する。
  • 検索アプリを作成、構成、テストする。

このチュートリアルに進む前に、始める前にの手順が完了していることを確認してください。


このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI Agent Builder, Cloud Storage, BigQuery APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI Agent Builder, Cloud Storage, BigQuery APIs.

    Enable the APIs

データセットを準備する

注: メディア レコメンデーションを使ってみるのチュートリアルを完了していて、データストア(推奨名 quickstart-media-data-store)が残っている場合は、メディア検索用のアプリを作成するに進みます。

Cloud Shell を使用して Movielens のデータセットをインポートし、メディア用の Vertex AI Search 用にデータセットを再構築します。

Cloud Shell を開く

  1. Google Cloud コンソールを開きます。
  2. Google Cloud プロジェクトを選択します。
  3. ダッシュボード ページの [プロジェクト情報] カードのプロジェクト ID をメモします。以降の手順では、このプロジェクト ID が必要です。
  4. コンソールの上部にある [Cloud Shell をアクティブにする] ボタンをクリックします。Google Cloud コンソールの一番下にある新しいフレームの中で Cloud Shell セッションが開き、コマンドライン プロンプトが表示されます。

    Cloud Shell

データセットのインポート

Movielens データセットは、公開の Cloud Storage バケットで利用できるため、簡単にインポートできます。

  1. プロジェクト ID を使用して次のコマンドを実行し、コマンドラインのデフォルト プロジェクトを設定します。

    gcloud config set project PROJECT_ID
    
  2. BigQuery データセットを作成します。

    bq mk movielens
    
  3. movies.csv を新しい movies BigQuery テーブルに読み込みます。

    bq load --skip_leading_rows=1 movielens.movies \
      gs://cloud-samples-data/gen-app-builder/media-recommendations/movies.csv \
      movieId:integer,title,genres
    
  4. ratings.csv を新しい ratings BigQuery テーブルに読み込みます。

    bq load --skip_leading_rows=1 movielens.ratings \
      gs://cloud-samples-data/gen-app-builder/media-recommendations/ratings.csv \
      userId:integer,movieId:integer,rating:float,time:timestamp
    

BigQuery ビューを作成する

このステップでは、MovieLens のデータセットを、メディア データストアの想定される形式に再構成します。

このガイドでは、過去 90 日間の肯定的な評価(< 4)からフェイクの view-item ユーザー イベントを作成します。

  1. ムービーテーブルを Document スキーマに変換するビューを作成します。

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
      WITH t AS (
        SELECT
          CAST(movieId AS string) AS id,
          SUBSTR(title, 0, 128) AS title,
          SPLIT(genres, "|") AS categories
          FROM `PROJECT_ID.movielens.movies`)
        SELECT
          id, "default_schema" as schemaId, null as parentDocumentId,
          TO_JSON_STRING(STRUCT(title as title, categories as categories,
          CONCAT("http://mytestdomain.movie/content/", id) as uri,
          "2023-01-01T00:00:00Z" as available_time,
          "2033-01-01T00:00:00Z" as expire_time,
          "movie" as media_type)) as jsonData
        FROM t;' \
    movielens.movies_view
    

    これにより、Vertex AI Agent Builder API で想定されるスキーマが新しいビューに追加されます。

  2. Google Cloud コンソール の BigQuery ページに移動します。

    BigQuery に移動

  3. [エクスプローラ] ペインでプロジェクト名を展開し、movielens データセットを展開し、[movies_view] をクリックしてこのビューのクエリページを開きます。

    商品ビュー

  4. [テーブル エクスプローラ] タブに移動します。

  5. [生成されたクエリ] ペインで、[クエリにコピー] ボタンをクリックします。クエリエディタが開きます。

  6. [実行] をクリックすると、作成したビューで映画のデータが表示されます。

  7. 次の Cloud Shell コマンドを実行して、映画の評価から架空のユーザー イベントを作成します。

    bq mk --project_id=PROJECT_ID \
     --use_legacy_sql=false \
     --view '
     WITH t AS (
      SELECT
        MIN(UNIX_SECONDS(time)) AS old_start,
        MAX(UNIX_SECONDS(time)) AS old_end,
        UNIX_SECONDS(TIMESTAMP_SUB(
        CURRENT_TIMESTAMP(), INTERVAL 90 DAY)) AS new_start,
        UNIX_SECONDS(CURRENT_TIMESTAMP()) AS new_end
      FROM `PROJECT_ID.movielens.ratings`)
      SELECT
        CAST(userId AS STRING) AS userPseudoId,
        "view-item" AS eventType,
        FORMAT_TIMESTAMP("%Y-%m-%dT%X%Ez",
        TIMESTAMP_SECONDS(CAST(
          (t.new_start + (UNIX_SECONDS(time) - t.old_start) *
          (t.new_end - t.new_start) / (t.old_end - t.old_start))
        AS int64))) AS eventTime,
        [STRUCT(movieId AS id, null AS name)] AS documents,
      FROM `PROJECT_ID.movielens.ratings`, t
      WHERE rating >= 4;' \
      movielens.user_events
    

Vertex AI Agent Builder を有効にする

  1. Google Cloud コンソールで、[Agent Builder] ページに移動します。

    Agent Builder

  2. 利用規約を読んで同意し、[続行して API を有効にする] をクリックします。

このセクションの手順では、メディア検索用のアプリの作成とデプロイについて説明します。

  1. Google Cloud コンソールで、[Agent Builder] ページに移動します。

    Agent Builder

  2. [アプリを作成] をクリックします。

  3. [アプリの作成] ページで、[検索] を選択します。

  4. [コンテンツ] で [メディア] をクリックします。

  5. [アプリ名] フィールドに、アプリの名前(quickstart-media-search など)を入力します。エンジン名の下にアプリ ID が表示されます。

  6. [続行] をクリックします。

  7. メディア レコメンデーションを使ってみるのチュートリアルを完了していて、データストア(推奨名 quickstart-media-data-store)が残っている場合は、それを選択して [作成] をクリックし、検索をプレビューするに進みます。

  8. MovieLens のデータセットを含むデータストアがない場合は、新しいデータストアを作成して選択します。

    1. [データストア] ページで、[データストアを作成] をクリックします。

    2. データストアの表示名(quickstart-media-data-store など)を入力し、[作成] をクリックします。

    3. 作成したデータストアを選択し、[作成] をクリックしてアプリを作成します。[データソースの選択] ページにリダイレクトされます。

データのインポート

次に、先ほどフォーマットした映画とユーザー イベントのデータをインポートします。

ドキュメントのインポート

  1. [データソースの選択] ページに自動的にリダイレクトされない場合:

    • [ドキュメント] タブを開きます。
    • [データをインポート] をクリックします。
  2. [データソースの選択] ページで、[BigQuery] を選択します。

  3. 作成した movies BigQuery ビューの名前を入力し、[インポート] をクリックします。

    PROJECT_ID.movielens.movies_view
    
  4. すべてのドキュメントがインポートされるまで待ちます。インポートには 15 分ほどかかります。 完了すると、86,537 個のドキュメントが作成されます。

    インポート オペレーションのステータスは [アクティビティ] タブで確認できます。インポートが完了すると、インポート オペレーションのステータスが [完了] に変わります。

ユーザー イベントのインポート

  1. [イベント] タブを開きます。

  2. [イベントをインポート] をクリックします。

  3. [BigQuery] を選択します。

  4. 作成した user_events BigQuery ビューの名前を入力し、[インポート] をクリックします。

    PROJECT_ID.movielens.user_events
    
  5. イベントがインポートされる前に次のステップに進むことはできますが、検索結果に完全なデータセットは含まれなくなります。

    オペレーションのステータスは [アクティビティ] タブで確認できます。何百万もの行をインポートするため、このプロセスには約 1 時間かかります。

  1. ナビゲーション メニューで [構成] をクリックします。

  2. [ここで検索] ボックスに映画の名前(「ロード オブ ザ リング」など)を入力します。

  3. 入力した映画のタイトルに関連する検索結果が表示されます。

  4. このページでは、検索ウィジェットで検索結果情報を表示する方法をカスタマイズできます。詳しくは、検索ウィジェットの結果を設定するをご覧ください。

    メディア検索アプリでは、次のことができます。

    変更を加えたら、[保存して公開] をクリックしてウィジェットを更新します。

検索ウィジェットをデプロイする

  1. ナビゲーション メニューで [統合] をクリックします。

  2. [Widget] タブが選択されていることを確認します。

  3. ウィジェットの認証タイプとして [JWT または OAuth ベース] を選択します。

  4. [ドメイン] フィールドに、ウィジェットを配置するウェブページのドメイン名を入力します。たとえば、ウィジェットをウェブページ example.com/ai.html にコピーする場合は、ドメインとして「example.com」と入力します。

  5. [Add] をクリックしてから、[Save] をクリックします。

  6. 次のコードをウェブ アプリケーションにコピーする」セクションにあるコード スニペットをコピーします。

  7. コードベースで認証トークンを生成します。

  8. 認証トークンをウィジェットに渡すには、[次のコードをウェブ アプリケーションにコピーする] セクションにある「認証トークンを設定する」コード スニペットを使用し、テキスト <JWT or OAuth token provided by you backend> を認証トークンに置き換えます。

  9. 検索アプリをウェブアプリに統合する方法については、検索結果を取得するのコードサンプルをご覧ください。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

メディア レコメンデーションのスタートガイド チュートリアルでは、作成したデータストアをメディア レコメンデーション用に再利用できます。 このクリーンアップ手順を行う前に、そのチュートリアルをお試しください。

  1. 不要な Google Cloud 料金が発生しないようにするには、Google Cloud コンソールを使用して、不要なプロジェクトを削除します。
  2. Vertex AI Agent Builder の学習用に新しいプロジェクトを作成し、そのプロジェクトが不要になった場合は、そのプロジェクトを削除します。
  3. 既存の Google Cloud プロジェクトを使用した場合は、作成したリソースを削除して、アカウントに課金されないようにします。詳細については、アプリを削除するデータストアからデータを完全に削除するデータストアを削除するをご覧ください。
  4. Vertex AI Agent Builder を無効にするの手順を実行します。
  5. BigQuery データセットを作成した場合は、Cloud Shell でそれを削除します。

    bq rm --recursive --dataset movielens
    

次のステップ