2025年4月3日

Looker の生成 AI 拡張機能 Dashboard Summarization を試す


Content
Google Cloud のデータ分析プラットフォーム Looker の生成 AI 拡張機能「Dashboard Summarization」を試してみました。Dashboard Summarization は、ダッシュボードの内容を要約したり、インサイトを抽出したりしてくれる便利なツールです。

本記事では 2025 年 3 月時点の情報に基づいてご紹介します。アップデートにより、機能や操作方法、構築手順が変更されている可能性がありますのでご留意ください。

Dashboard Summarization とは

Dashboard Summarization は、Looker の生成 AI 拡張機能です。ダッシュボードに表示されているデータを分析し、要約を生成します。これにより、ダッシュボードの全体像を素早く把握したり、トレンドや異常値などを効率的に見つけたりすることができます。

本記事では、GitHub リポジトリの README を参照しながら、次の手順で Dashboard Summarization の構築を行い、機能を試してみます。

  1. バックエンドを構築する
  2. Looker フロントエンドを構築する
  3. ダッシュボードに組み込む

また、構築を始める前に次の準備をしておきましょう。ここでは、公開データセットの bigquery-public-data.thelook_ecommerce を使用した Looker ダッシュボードを利用します。

  • Google Cloud プロジェクト
  • Looker プロジェクト … Dashboard Summarization を構築するプロジェクト
  • Looker ダッシュボード … Dashboard Summarization を組み込むダッシュボード

 

バックエンドを構築する

はじめに、バックエンドを構築します。Setup の Application Layer に該当する部分です。リポジトリからクローンしたバックエンドのソースコードをビルドして Artifact Registry に格納後、Terraform でリソースをデプロイします。特に記載がない限り、リージョンは asia-northeast1 を使用します。

Artifact Registry にバックエンド用のソースコードを格納する

  1. GitHub リポジトリ からソースコードを任意の場所にクローンします。
    git clone https://github.com/looker-open-source/dashboard-summarization.git
  2. restful-service/src ディレクトリに移動し、依存関係をインストールします。
    cd dashboard-summarization/restful-service/src
    npm install
  3. 次のコマンドを実行し、Artifact Registry に Docker イメージを格納する dashboard-summarization-docker-repo というリポジトリを作成します。
    gcloud artifacts repositories create dashboard-summarization-docker-repo  --repository-format=docker  --location=asia-northeast1
  4. ソースコードのディレクトリに戻り、cloudbuild.yaml ファイル内の次の文字列を実際の値に置き換えます。
    • <YOUR_REGION> : リージョン名
    • <YOUR_PROJECT_ID> : Google Cloud プロジェクト ID

     

  5. 次のコマンドを実行し、Docker イメージをビルドして Artifact Registry に送信します。Google Cloud SDK や Google Auth Library の認証を求められた場合は、許可してください。
    gcloud auth login && gcloud auth application-default login && gcloud builds submit --region=asia-northeast1 --config cloudbuild.yaml

    ビルド完了後に表示されるログから、Docker イメージの URI を控えておきます。URI はログに出力されており、次のような形式になっています。

    [ログ] Step #1: The push refers to repository [<DOCKER-IMAGE-URI>]
    [URI] asia-northeast1-docker.pkg.dev/<PROJECT-ID>/dashboard-summarization-docker-repo/websocketserviceimage

 

Terraform でリソースをデプロイする

  1. terraform ディレクトリに移動します。
    cd .. && cd terraform
  2. variables.tf ファイル内の次の文字列を実際の値に置き換えます。YOUR_VALUE は、この後の作業で使用するため、控えておいてください。
    • YOUR_PROJECT_ID : Google Cloud プロジェクト ID
    • YOUR_REGION : リージョン名
    • YOUR_DOCKER_IMAGE_URL :「Artifact Registry にバックエンドのソースコードを格納する」で控えておいた Docker イメージ URI
    • YOUR_VALUE : 任意の文字列をハッシュ化したもの

     

  3. 次のコマンドを実行し、デプロイされるリソースを確認します。
    terraform init
    terraform plan
  4. 問題なければ、次のコマンドを実行してリソースをデプロイします。デプロイ実行の確認を求められたら、yes と入力してください。
    terraform apply
  5. これでリソースのデプロイが完了しました。ログに表示される Cloud Run のエンドポイントを控えておきます。エンドポイントはログに次の形式で出力されます。
    [ログ] url = "<CLOUD-RUN-ENDPOINT>"

 

Looker フロントエンドを構築する

バックエンドの構築が完了したら、次は Looker フロントエンドを構築します。Setup の Looker Frontend に該当する部分です。リポジトリからクローンしたフロントエンドのソースコードをビルドし、Looker にアップロードした後、Looker Extension を設定します。

Looker にフロントエンド用のソースコードをアップロードする

  1. dashboard-summarization ディレクトリに移動します。
    cd ../..
  2. .env.example ファイルをコピーし、同じディレクトリに .env ファイルとして保存します。保存後、次のように編集してください。記載されていない項目はオプションです。
    • RESTFUL_SERVICE :「Terraform でリソースをデプロイする」で控えておいた Cloud Run のエンドポイント
    • GENAI_CLIENT_SECRET :「Terraform でリソースをデプロイする」で控えておいたシークレット

     

  3. 依存関係をインストールします。
    npm install --legacy-peer-deps
  4. フロントエンドのソースコードをビルドします。Windows を使用している場合は、package.json ファイルにある scripts > buildexportset に変更してから実行してください。
    "build": "set BABEL_ENV=build && webpack --config webpack.prod.js"

    ビルドを実行します。成功すると dist ディレクトリにファイルが作成されます。

    npm run build
  5. dist ディレクトリに dashboard_summarization.js ファイルが作成されていることを確認したら、Looker プロジェクトのファイルブラウザに dashboard_summarization.js ファイルをドラッグ&ドロップしてアップロードします。

 

Looker Extension をセットアップする

  1. ソースコードに戻り、manifest.lkml ファイルを次のように編集します。ポイントは url: ではなく file: を使用することです。これにより「Looker にフロントエンド用のソースコードをアップロードする」でアップロードした Looker プロジェクト上の dashboard_summarization.js ファイルを参照するようになります。
    YOUR CLOUD RUN URL は「Terraform でリソースをデプロイする」で控えておいた Cloud Run のエンドポイントに置き換えてください。

    ファイルの編集が完了したら、Looker プロジェクトのファイルブラウザにドラッグ&ドロップしてアップロードします。

    application: dashboard-summarization {
    label: "Dashboard Insights Powered by Vertex AI"
    file: "dashboard_summarization.js"
    # url: "https://localhost:3000/dashboard_summarization.js"
    mount_points: {
    dashboard_vis: yes
    dashboard_tile: yes
    standalone: yes
    }
    entitlements: {
    local_storage: yes
    use_form_submit: yes
    core_api_methods: ["run_inline_query","run_query","all_lookml_models","dashboard","dashboard_dashboard_elements"]
    external_api_urls: [
    "YOUR_CLOUD_RUN_URL","http://localhost:5000","http://localhost:3000","https://*.googleapis.com","https://slack.com/api/*","https://slack.com/*"
    ]
    oauth2_urls: [
    "https://accounts.google.com/o/oauth2/v2/auth",
    "https://www.googleapis.com/auth/chat.spaces",
    "https://www.googleapis.com/auth/drive.metadata.readonly",
    "https://www.googleapis.com/auth/spreadsheets.readonly",
    "https://www.googleapis.com/auth/userinfo.profile",
    "https://www.googleapis.com/auth/chat.spaces.readonly",
    "https://www.googleapis.com/auth/chat.bot",
    "https://www.googleapis.com/auth/chat.messages",
    "https://www.googleapis.com/auth/chat.messages.create",
    "https://slack.com/oauth/v2/authorize"
    ]
    scoped_user_attributes:["genai_client_secret"]
    }
    }
  2. Looker プロジェクトでモデルファイルを作成し、モデルの接続を追加します。YOUR_CONNECTION は実際の値に置き換えてください。また、警告が表示される include はコメントアウトしておきます。
    connection: "YOUR_CONNECTION"

    # include: "/views/*.view.lkml" # include all views in the views/ folder in this project

    ファイルの作成が完了したら、Git を設定し、本番環境へデプロイします。デプロイ後、拡張機能が Looker メニューの「アプリケーション」に表示されます。

  3. Looker 管理者メニュー > ユーザー > ユーザー属性 からユーザー属性を作成します。ユーザー属性作成画面で「Create User Attribute」ボタンをクリックします。
  4. ユーザー属性の追加画面で「Name」に <LOOKER-PROJECT-NAME>_dashboard_summarization_genai_client_secret を入力後「Save」ボタンをクリックし、内容を保存します。注意点として、Looker のプロジェクト名にハイフン (-) またはコロン (::) が含まれている場合は、これらをすべてアンダースコア (_) に置き換えてください。例えば、プロジェクト名が「sample-project」の場合、sample_project_dashboard_summarization_genai_client_secret になります。
    参照 : ユーザー属性
  5. 「Group Values」をクリックし、さらに「Add Group」ボタンをクリックします。ポップアップが表示されるので、次のように入力後「Save」ボタンをクリックし、内容を保存します。
    • Group : All Users
    • Value :「Terraform でリソースをデプロイする」で控えておいたシークレット

 

ダッシュボードに組み込む

最後に、ダッシュボードに組み込んで動作を確認します。拡張機能のタイルは、通常のタイルと同様に移動やサイズ変更が可能です。

  1. 事前に準備しておいた Dashboard Summarization を組み込むダッシュボードを開き、「編集」ボタンをクリックして編集モードに切り替えます。
  2. 画面左上にある「追加」ボタンをクリックし、表示されるメニューから「拡張機能」をクリックします。
  3. 画面右部に表示された拡張機能の一覧にある「Dashboard Insights Powered by Vertex AI」の「タイルに追加」ボタンをクリックします。
  4. 画面右上にある「保存」ボタンをクリックし、内容を保存します。

ダッシュボードへの組み込みが完了したら、タイルに表示されているテキストに従って「Analyst Style」ボタンをクリックします。テキストボックスにプロンプトが自動で入力されるので、何も変更せずに「Generate」ボタンをクリックしましょう。
数秒後、次のような回答が表示されました。各ビジュアライゼーションの概要と次のステップが記載されています。

日本語に対応させる

Dashboard Summarization は、デフォルトで英語での表記および回答になるため、日本語環境で利用するユーザーにとっては十分に活用できない場合があります。そこで、オプションとして Dashboard Summarization を日本語に対応させる方法をご紹介します。

回答を日本語に対応させる

Dashboard Summarization の回答を日本語に対応させるには、dashboard-summarization/restful-service/src/index.js ファイル内の関数 generateQuerySummary で定義されているプロンプトに、日本語で回答するよう指示を追加します。
指示を追加してもうまくいかない場合は、使用する Gemini のモデルを変更したり、プロンプトを変更したりしてみてください。

const queryPrompt = `
You are a specialized answering assistant that can summarize a Looker dashboard and the underlying data and propose operational next steps drawing conclusions from the Query Details listed above.

You must answer in Japanese. // ★追加
You always answer with markdown formatting. You will be penalized if you do not answer with markdown when it would be possible.
...

UI を日本語に対応させる

Dashboard Summarization の UI を日本語に対応させるには、dashboard-summarization/src/components/DashboardSummarization.tsx ファイルを編集します。
次の英語で表記されている箇所を日本語に変更すると画像のように表示されます。

  • 47~72 行目 : const PRESET_PROMPTS ...
  • 369~372 行目 : <h3>Next Steps Instructions:</h3> ...
  • 396 行目 : {loading ? "Generating..." : "Generate"}

まとめ

本記事では、Google Cloud の Looker の生成 AI 拡張機能 Dashboard Summarization を構築し、機能を試してみました。この拡張機能を使用することで、複雑なダッシュボードを簡潔に要約したり、インサイトを抽出したりすることができます。データ分析の効率を上げたい方は、ぜひ Dashboard Summarization を活用してみてください!

2025年4月3日 Looker の生成 AI 拡張機能 Dashboard Summarization を試す

Category Google Cloud

ご意見・ご相談・料金のお見積もりなど、
お気軽にお問い合わせください。

お問い合わせはこちら