👌

Looker の生成 AI 拡張機能① Explore Assistant を使ってみる

2024/07/18に公開

Google Cloud でも Gemini やその他の生成 AI のモデルやソリューションが多く発表されています。今回は、その中でも、Looker から Gemini を利用した拡張機能の紹介の第1弾として Explore Assitant を紹介したいと思います。

第2弾の Dashboard Summary の記事は こちら です。

tl;dr

  • Explore Assistant を使えばチャット形式でデータへの問い合わせやチャート作成が可能
  • Gemini は多くの言語に対応しているので、日本語でも問題なく利用可能
  • エンジニアの方であれば、プロンプトなどのカスタマイズを行い、精度向上が可能

Explore Assitant とは

Explore Assitant は、公式に Looker に組み込まれた機能ではなく、Looker Extension (拡張機能) を利用して Looker 上で利用できる、生成 AI 機能の1つです。

チャット形式でデータへの問い合わせが自由にでき、フィルターや項目、チャートタイプなどを特定し、Looker のチャート作成の操作を全く知らなくても、Looker 上でデータの探索、チャートの作成やチャートを保存してダッシュボードの作成が可能となります。

ベースとなるソースコードは、Github 上に公開されており、Looker のエンジニアが更新を行っています。この Github のコードを使って、手順に従い Looker Extension の設定を行えば、Looker 上で、Explore Assitant を利用可能になります。バックエンドで利用する Gemini や BQML または Cloud Funtion の費用は発生しますが、Looker ライセンスの追加費用は必要ありません。

https://github.com/looker-open-source/looker-explore-assistant/

※ 今回は利用イメージを紹介することをメインの目的とするため、この Looker Extension の設定方法は、割愛します。

Explore Assitant アーキテクチャ

公開されているソースコードでは、BQML または Cloud Function から Gemini を呼び出し、結果を生成する仕組みです。
全体の流れの概要は下記です。

  1. BQML または Cloud Function に、ユーザーが Looker で入力した問い合わせ内容とともに、LookML のメタ情報を Looker から渡します。
  2. それらを組み合わせたプロンプトを作成して、Gemini にユーザーの問い合わせ内容の回答を取得するクエリの URL を作成してもらいます。
  3. その URL を Looker に返します。
  4. URL からそのクエリを実行し、Explore で結果を表示します。

Explore Assitant を使ってみた

Explore Assitantを設定完了すると、下記のような画面が表示されます。
右上のボックスに日本語を入力して、データへの問い合わせが可能です。

例① 商品売上ランキング

"先週の商品売上トップ10を出して"

1つ目の例として、"先週の商品売上トップ10を出して" という問い合わせをしてみました。
まず、"先週"という言葉から、注文日が前の週と、正しくフィルターをかけてくれています。
次に、"商品売上"という言葉から、売上や商品名という適切な項目を利用して集計し、さらに”トップ10”という言葉から、売上が大きい順に10個の商品に絞るという絞り込みも行っています。

"日本に絞って"

この Explore Assitant は、チャット形式に複数回の指示を追加することも可能です。
例えば今回は、"日本に絞って"というフィルター項目の追加を指示してみます。
今回は、どの項目でのフィルターかを明示的に指示していませんが、"日本"というキーワードから、正しく"国"という項目でフィルターをしてくれています。
さらに、今回のデータソースは日本語ではなく英語の"Japan"という値を保持していたのですが、適切に"Japan"という値でのフィルターをかけています。このあたりは、 Gemini 自体が多言語対応をしており、言語の違いを Gemini が吸収してくれていると想定されます。

例② 売上日別推移

"先月の売上を日別に出して"

続いての例は、よく見る日別の推移のグラフを取得してみます。
このデモは7月に実行にしていますので、"先月"という指示に対して、ちゃんと6月でのフィルターがかかっていることが確認できます。
また、日別に売上実績を折れ線グラフで表示してくれており、このあたりも直感的に取得したい情報を正しく出してくれています。

"年齢層別にピボットして"

さらに追加で、売上を年齢層別にみたいと思ったときには、年齢層でピボットするよう追加で指示することも可能です。

"チャートを要約して"

最後に、標準でチャートを簡単に要約してくれる機能もあります。
ユーザーの問い合わせに、"要約"というキーワードが含まれている場合には、Explore でのチャート作成ではなく、Summary 作成をしてくれるような仕組みが入っています。
公開されているコードのままだと英語で表示されますが、バックエンドの Gemini 呼び出しのプロンプトを修正すれば日本語でも取得可能な想定です。

まとめ

今回は、簡単に Explore Assistant を実行した挙動を紹介しました。
もちろんこのように完璧に意図した通り必ず動くわけではありませんが、Looker では LookML で元々きちんと整理されたメタデータがあることで、LookML をプロンプトにそのまま含めることができ、特に追加で対応をいれなくても、ある程度の精度で利用が可能でした。また、想定と答えが違っていた場合も、Explore 上で修正もすぐにできます。

また、今回はあくまでも公開されているコードをそのまま利用しましたが、プロンプトなど独自に開発、修正が可能な点も、Explore Assitant の大きな利点です。BIツールに組み込みで提供されている機能では対応が難しい業務ロジックなどをプロンプトで指示することで、よりユーザーの意図した挙動に近づけることができる可能性があります。その反面、組み込み機能ではなくOSS での提供となるため、公式なサポートは提供されないことをご注意ください。

もし、Looker を利用されている方は、ぜひお試しください。
また、Looker を現在利用していないけど、この機能を試したいという方は、Looker にはフリートライアルもありますので、ぜひ弊社担当へご連絡いただければ、サポートさせていただきます。

Google Cloud Japan

Discussion