Looker上のデータについて生成AIに問い合わせてみた(Looker Explore Assistant)

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

G-gen の奥田梨紗です。オープンソースの Looker 拡張機能である Explore Assistant を使い、自然言語によってグラフを生成できる機能を実装しました。本記事ではその機能の紹介や、実装手順について紹介します。

はじめに

当記事では、Looker 拡張機能である Looker Explore Assistant を紹介します。

Looker Explore Assistant は、Looker Explore 上で自然言語の指示に基づいて生成 AI がグラフを作成してくれる拡張機能です。オープンソースで公開されており、Looker にアドオンとして組み込むことができます。

Looker Explore Assistant には、大きく分けて AssistantChat の2つの機能があります。いずれも自然言語によって Explore 経由でデータへの問い合わせを行い、クエリ結果を得たり、チャート(グラフ)を作成できます。Assistant がワンショットのクエリに対して結果を返答する機能であるのに対して、Chat はインタラクティブに生成 AI と会話し、フォローアップ質問をすることもできます。

使用する生成 AI 基盤モデルとして Gemini 1.5-flashGemini)がデフォルトで設定されています。

類似の Looker 拡張機能として、 Looker Dashboard Summarization があります。こちらに関しては以下の記事で紹介しています。Looker、Looker 拡張機能、Looker 拡張フレームワークなどの前提知識については、以下の記事も参考にしてください。

blog.g-gen.co.jp

Looker Explore Assistant の紹介

できること

Looker Explore Assistant を使うと、指定したテーブルのデータを対象に、自然言語で対話しながら可視化や詳細分析ができます。

今回は例として、架空の顧客データを用いて分析しました。

顧客番号 氏名 性別 生年月日 年齢 居住地 累計売上高
GS00001 山田 太郎 1990-04-29 31 兵庫県 3704
GS00002 田中 花子 2005-09-30 20 兵庫県 5709

Looker ダッシュボードの「アプリケーション」から「Explore Assistant」を選択すると、メインダッシュボードが表示されます。

youtu.be

Looker Explore Assistant には、大きく分けて Chat 機能と Assistant 機能があります。どちらの機能も、自然言語で Explore に対する問い合わせができますが、Chat 機能は会話を継続できるのに対し、Assistant 機能は会話ごとに内容がリセットされます。

1. Assistant 機能

まずは、顧客の性別比を調べてみます。プロンプトには以下のように入力します。

男女比を棒グラフで教えて

入力した自然言語に基づき、Looker Explore によってグラフが生成されます。

次に、より複雑な分析を試みます。プロンプトには以下のように入力します。

性別が男で、顧客の居住地を多い順から順番に教えて

結果は下記の通りです。

一方、以下のように問い合わせた場合、結果は得られませんでした。表現によっては、生成 AI がうまく解釈できない場合もあるため、プロンプトを試行錯誤する必要があります。

性別が男性で、顧客の居住地を多い順から順番に教えて

2. Chat 機能

Chat 機能では、自然言語での対話を重ねることで、詳細な分析を行うことができます。

例えば、まず最初の質問で年齢の分布図を作成させ、フォローアップ質問(追加の質問)をすることで別の値をグラフに表現させるなど、探索的なクエリを行うことができます。

料金

この拡張機能の利用にあたり、Looker に対する追加のライセンス費用は発生しません

ただし、Looker Explore Assistant から呼び出すバックエンド(BigQuery または Cloud Run functions)や、Gemini API(Vertex AI)の利用料金が発生します。

バックエンドで Cloud Run functions を選択する場合、最小インスタンス数を設定すると、インスタンスのアイドル時間に対しても課金が発生します。

また、通常の Looker 利用と同じく、使用するデータセット(BigQuery 等)に対するクエリ料金も発生する点にご留意ください。

利用事例

Google Cloud Next Tokyo '24 の2日目に行われたセッション「公共機関で進む DX の現在と未来 〜 次世代に向けたイノベーション 〜」では、日本大学による検証が紹介されました。

この検証では、学籍・成績関連データを AI アシスタントとのチャットを通じて可視化する PoC が実施されました。

実装

構成

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

システム構成図

データの流れは以下の通りです。以下の項番は、図中の数字に対応しています。

  1. ユーザーが Looker Explore Assistant 画面上でプロンプトを入力
  2. バックエンドから Vertex AI の Gemini API を呼び出して推論を実行
  3. Gemini がクエリ用 URL を生成
  4. クエリ用の URL を Looker に返却
  5. Looker Explore Assistant 画面上に、クエリ用 URL の実行結果を表示

実装の手順

実装の流れは以下のとおりです。

  1. 公開リポジトリをクローン(GitHub レポジトリ
  2. フロントエンドの構築
  3. バックエンドの構築
  4. BigQuery データセットにクエリ生成に利用するサンプルプロンプトを格納
  5. ローカルでテスト
  6. ビルド(npm コマンド)
  7. デプロイ(Looker の Web コンソール等)

環境変数ファイルの作成と編集

Looker Explore Assistant を利用する対象の Model と Explore は、環境変数ファイル .env に事前に定義しておく必要があります。

対象の Model と Explore を変更するには、環境変数ファイルを更新する必要があります。

環境変数ファイルは looker-explore-assistant/explore-assistant-extension フォルダに格納し、以下の様に作成します。

LOOKER_MODEL=<分析で使用する Explore が存在するModel ファイル名>
LOOKER_EXPLORE=<分析で使用する Explore 名>
VERTEX_BIGQUERY_LOOKER_CONNECTION_NAME=<BigQuery ML のリモートモデルに IAM 権限を持つサービスアカウントと紐づけた Looker の Connection 名>
VERTEX_BIGQUERY_MODEL_ID=<Google Cloud プロジェクト名>.explore_assistant.explore_assistant_llm
BIGQUERY_EXAMPLE_PROMPTS_CONNECTION_NAME=<サンプルプロンプト用データセットへの IAM 権限を持つ Looker の Connection 名>
BIGQUERY_EXAMPLE_PROMPTS_DATASET_NAME=<Google Cloud プロジェクト名>.explore_assistant

奥田 梨紗(記事一覧)

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

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

菊池 健太(記事一覧)

クラウドソリューション部データアナリティクス課。2024年7月より、G-genに入社。群馬出身のエンジニア。前職でLookerの使用経験はあるが、GCPは未経験なので現在勉強中。