生成AIを使ってLookerダッシュボードを説明させてみた(Looker Dashboard Summarization)

記事タイトルとURLをコピーする

G-gen の奥田梨紗です。オープンソースの Looker 拡張機能である Looker Dashboard Summarization を使い、Looker のダッシュボードを生成 AI が自然言語で説明する機能を実装しました。本記事ではその機能の紹介や、実装手順について紹介します。

はじめに

当記事では、Looker 拡張機能である Looker Dashboard Summarization を使い、生成 AI によって Looker のダッシュボードを自然言語で解説させる方法をご紹介します。

Looker Dashboard Summarization とは、Looker のダッシュボードに対して、生成 AI 自然言語での解説を提供する拡張機能です。オープンソースとして公開されており、Looker にアドオンとして組み込むことができます。

この拡張機能を導入することにより、以下のようなメリットが得られます。

  1. 初めてダッシュボードを閲覧する人や、統計に関する知識がない人でも内容を理解できる
  2. Slack や Google Chat への共有機能が存在し、情報共有を効率的に行うことができる

なお配布されているソースコードでは、生成 AI 基盤モデルとして gemini-1.0-pro-001Gemini)が指定されています。

前提知識

Looker とは

Looker は、ビジネスデータを探索、分析、可視化するためのクラウド型ビジネスインテリジェンス (BI)プラットフォームです。

Looker には以下のような特徴があります。

  • データを保持しない(データベースから常に最新の情報を取得
  • 独自言語 LookML により構成されるセマンティックレイヤでデータガバナンスを実現
  • ダッシュボードによる可視化に留まらずマーケティングアクションへシームレスに連携

なお Looker と名称が似た製品に Looker Studio がありますが、これらは別製品です。以下の記事をご参照ください。

blog.g-gen.co.jp

Looker 拡張機能と拡張フレームワークとは

Looker 拡張機能(Looker extension)は、Looker プラットフォームの機能を拡張するためのアドオン機能です。Looker 拡張機能を開発することで、Looker の基本機能を補完することができます。開発は、JavaScript で行います。

JS バンドル(JavaScript ファイルをまとめたパッケージ)を Looker にアップロードし、ホストさせることができるほか、別のサーバーや CDN にデプロイした JavaScript ファイルを URL で参照させることも可能です。

拡張機能はユーザーが自ら開発するほか、Looker Marketplace でニーズに合った拡張機能を見つけることもできます。

Looker 拡張フレームワーク(Looker extension framework)は Looker 拡張機能を開発するためのフレームワークです。 拡張フレームワークを使用すると、UI 実装のほか、認証・認可やアクセス制御、Looker API やサードパーティ API へのリクエストなどの実装を簡便化できます。

Looker Dashboard Summarization でも、Looker 拡張フレームワークが利用されています。

Gemini とは

Gemini は Google が開発した生成 AI 基盤モデルです。テキスト生成、翻訳、音声処理、画像生成、コード生成など、幅広いタスクをこなせます。

現在では、以下のリンクから、Google Cloud の利用なしで、Gemini 1.5 Pro などを試用できます。

以下の記事もご参照ください。

blog.g-gen.co.jp

Looker Dashboard Summarization

できること

Dashboard Summarization
Looker Dashboard Summarization では、Looker ダッシュボード上で Gemini を呼び出し、以下を実現できます。

  1. グラフの説明
  2. 数値の特徴を説明
  3. 次のアクションの提案

今回は架空の EC サイトの売上を分析するダッシュボードに Looker Dashboard Summarization を導入し、デモンストレーションしてみました。

なお、バックエンドのプロンプトを変更することで日本語による返答が可能です。

料金

当拡張機能の利用には、追加のライセンス費用は必要ありません。

自然言語での説明を指示した際に、Google Cloud の Vertex AI 経由で、Gemini API へのリクエスト料金が発生します。料金は、Google Cloud の請求先アカウントに課金されます。

料金単価は、以下の公式ページをご参照ください。

1. グラフの説明

架空 EC サイトの月別売上グラフに対する説明

ダッシュボード上の各グラフを自然言語(人間が使う言語)で説明し、データの要点を分かりやすく説明します。これにより、ユーザーはグラフの意味を直感的に理解しやすくなります。たとえば、売上の推移や顧客の購買傾向を視覚的に説明することで、重要なデータポイントをすばやく把握することができます。

上記の架空 EC サイトの月別売上グラフを用いた検証例では、以下のように説明しています。

このクエリは、過去3年間の月別の 総売上高を示しています。

2. 数値の特徴を説明

「カテゴリ別オーダー数」のグラフの数値的な特徴

データの数値的な特徴を強調し、特に注目すべきデータポイントを抽出します。これにより、データの詳細な分析が可能です。例えば、売上のピークや低迷時期、特定の商品カテゴリーのパフォーマンスなど、ビジネス上重要なインサイトを得ることができます。

本検証では架空 EC サイト「商品カテゴリ別のオーダー数の積み上げグラフ」に関して、人気のある商品、人気の無い商品のカテゴリと件数だけでなく、EC サイトオーナーが関心を持ちそうな内容である曜日別の分析なども行ってくれました。

Shorts のオーダー数が最も多く、期間中の総オーダー数は741件です。 2位は Fashion Hoodies & Sweatshirts で、期間中の総オーダー数は689件です。3位は Sweaters で、期間中の 総オーダー数は650件です。最もオーダー数が少なかったのは Accessories で、期間中の総オーダー数は476件でした。

3. 次のアクションの提案

架空EC サイトの「ユーザー特質プロフィール」の円グラフに対する次のアクション

Looker ダッシュボードを読み取り、次のアクションを提案します。これにより、データに基づいた意思決定が容易になります。たとえば、売上が低下している場合、その原因を分析し、在庫管理やマーケティング戦略の見直しなど、具体的な改善策を提示します。

本検証では、架空 EC サイトの「ユーザー特質プロフィール」を分析し、Webマーケティングのパフォーマンスを評価しました。そして、コンバージョン率を向上させるための戦略を立て、具体的なアクションを提案しました。

・Search からのトラフィックが多い理由を 分析し、このチャネルへの投資を強化する。
・Display からのトラフィックが少ない理由を調査し、改善策を検討する。
・男女間の購買行動の違いを分析し、それぞれに最適化されたマーケティング 戦略を立案する。

デモンストレーション動画

こちらの動画では、操作手順をわかりやすく解説しています。さらに詳しい情報や実際の操作方法を知りたい方は、ぜひご覧ください。

※当動画では Gemini の精度を確保するため英語でテストしてます

youtu.be

実装

構成

今回実装した Looker Dashboard Summarization の構成図は、以下のとおりです。

システム構成図

データの流れは、以下のようになっています(以下の項番は、図中の数字①〜⑥と対応しています)。

  1. データソース(今回は BigQuery)に格納されたデータが Looker から読み取られダッシュボード上に表示されている。ユーザーがダッシュボード上のボタンを押下する
  2. Looker 拡張機能からの HTTP リクエストにより Cloud Run が起動
  3. Cloud Run が Looker の Query API を呼び出してデータを取得
  4. Cloud Run が Vertex AI の Gemini API を呼び出して推論を実行
  5. Cloud Run が取得した推論結果(生成されたテキスト)を Looker 拡張機能へ返す
  6. 生成されたテキストがダッシュボード画面上に表示される

実装の手順

実装の流れを簡単にご紹介します。

  1. 公開リポジトリをクローン(GitHub レポジトリ
  2. ソースコードを改修
  3. ソースコードをローカル PC でテスト
  4. Looker 拡張機能をセットアップ
  5. デプロイ

実装時の注意点

基本的には配布されているソースコードに添付されている README.md に沿って実装を行います。

特に注意が必要なのは、手順2-5. の Now log in to Looker and create a new project. です。ここでは、デプロイ前に lkml ファイルを書き換える必要があります。

ローカルにおけるテスト時とデプロイ後では参照すべき JavaScript ファイルの場所が異なるためです。

環境 参照先の JavaScript ファイルの場所
ローカルでのテスト時 http://localhost:8080
デプロイ後 Looker インスタンス

当記事では、以下のように書き換えました。

ローカルでのテスト時

ローカルでのテスト時の manifest.lkml ファイル

デプロイ後

デプロイ後の manifest.lkml ファイル

日本語で返答させるには

GitHub で公開されているソースコードをそのまま使うと、説明文が英語で生成されます。日本語で回答するようにプロンプト内で指示することで、テキストを日本語で生成させることもできます。

以下の通りにソースコードを修正して、デプロイしてください。

修正するファイル

dashboard-summarization/websocket-service/src/index.js

修正箇所

111行目の定数 queryPrompt に代入するテキスト

修正内容

Be sure to translate your response into Japanese language. を先頭に挿入

参考スクリーンショット

注意事項

ここでご紹介した方法は、あくまで生成 AI 基盤モデルに与えるプロンプトを変更しただけであり、確実に日本語で回答させられるわけではありません。想定通りに挙動しない場合、プロンプトを調整してください。

奥田 梨紗(記事一覧)

クラウドソリューション部クラウドデベロッパー課

前職はベトナムのIT企業。
Google Cloudの可能性に惹かれ、2024年4月G-genにジョイン。日々修行中です!