LookerDashboardSummarizationを構築する方法

Looker ダッシュボードサマリ化拡張機能は、Vertex AI でホストされる大規模言語モデル (LLM) を活用し、Looker ダッシュボードのデータをリアルタイムで要約する拡張機能です。この機能は WebSocket を利用して、ストリーミングダッシュボードのサマリ生成を実現します。
目次
はじめに
Looker ダッシュボードサマリ化拡張機能は、Vertex AI でホストされる大規模言語モデル (LLM) を活用し、Looker ダッシュボードのデータをリアルタイムで要約する拡張機能です。この機能は WebSocket を利用して、ストリーミングダッシュボードのサマリ生成を実現されます。
機能概要
この拡張機能は、以下の3つの主要な機能に分かれます。
1.サマリ生成
ダッシュボードのデータを基に簡潔なサマリを生成します。
2.処方 (Prescription)
ダッシュボードデータに基づき、運用アクションを提案し、異常値を指摘します。
3.行動 (Action)
Looker の API を活用し、インサイトを組織のビジネスツールへエクスポートします。
さらに、以下のエクスポート機能も提供しています。
- Google Chat エクスポート(Oauth 統合)
- Slack エクスポート(Oauth 統合、リッチテキスト対応)
使用技術
- フロントエンド: React, TypeScript, Webpack, Looker Extension SDK, Looker Query API
- バックエンド: Google Cloud Platform, Vertex AI, Cloud Run, WebSockets, Export API (Slack, Google Chat)
1. Generative AI & WebSocket サーバーのセットアップ
このセクションでは、Generative AI と WebSocket を使用したサーバーを Cloud Run でセットアップする手順を説明します。
ローカル開発環境のセットアップ
1.リポジトリをクローンします。
git clone https://github.com/looker-open-source/dashboard-summarization.git
2.テンプレートディレクトリへ移動します。
cd dashboard-summarization/websocket-service/src
3.依存関係をインストールします。
npm install
4.Node.js のバージョンが古い場合、npm install
が失敗することがあります。必要に応じて Node.js のバージョンを更新するか、バージョンマネージャを使用して適切なバージョンに変更してください。
5.looker-example.ini
を looker.ini
にリネームし、以下のように Looker API のクレデンシャル情報を設定します。
[mycompany]
base_url=
client_id=
client_secret=
verify_ssl=true
6.開発サーバーを起動します。
npm run start
開発サーバーが curl http://localhost:5000 で起動することを確認します。
2. バックエンドのデプロイ
次に、デプロイメント手順を説明します。これには Docker ファイルのビルドと、Artifact Registry への提出が含まれます。
デプロイ手順
1.まず、Artifact Registry にリポジトリを作成します。デプロイリージョンを指定して以下のコマンドを実行します。
gcloud artifacts repositories create dashboard-summarization-docker-repo --repository-format=docker --location=REGION
2.テンプレートディレクトリに移動します。
cd dashboard-summarization/websocket-service/src
3.looker-example.ini を looker.ini にリネームし、Looker API のクレデンシャル情報を設定します。
[mycompany]
base_url=
client_id=
client_secret=
verify_ssl=true
4.cloudbuild.yaml ファイルを更新します。
steps:
# Docker Build
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t',
'-docker.pkg.dev//dashboard-summarization-docker-repo/websocketserviceimage',
'.']
# Docker Push
- name: 'gcr.io/cloud-builders/docker'
args: ['push',
'-docker.pkg.dev//dashboard-summarization-docker-repo/websocketserviceimage']
# = Your deployment region
# = Your GCP project ID
5.Docker ファイルをビルドし、Artifact Registry に提出します。REGION 変数をデプロイリージョンに置き換えて以下のコマンドを実行します。
gcloud auth login && gcloud auth application-default login && gcloud builds submit --region= --config cloudbuild.yaml
#=Your deployment region
6.この時点で返される Docker イメージ URL を保存します。または、Artifact Registry から Docker イメージ URL を取得します。
# 以下のような形式で返される
-docker.pkg.dev//dashboard-summarization-docker-repo/websocketserviceimage:latest
7.Terraform ディレクトリに移動します。
cd .. && cd terraform
8.variables.tf ファイル内のプロジェクト、リージョン、Docker URL、サービス名を更新します。
# project_id=
# deployment_region=
# docker_image=
variable "project_id" {
type = string
default = "" # あなたのGCPプロジェクトID
}
variable "deployment_region" {
type = string
default = "asia-northeast1" # あなたのデプロイ地域(例: 東京リージョン)
}
variable "docker_image" {
type = string
default = "asia-northeast1-docker.pkg.dev//dashboard-summarization-docker-repo/websocketserviceimage:latest"
# 先ほどのDockerイメージURL
}
variable "cloud_run_service_name" {
type = string
default = "websocket-service" # サービス名
}
9.リソースをデプロイします。環境に Application Default Credentials をエクスポートしていることを確認してください。
terraform init
terraform plan
terraform apply
20.デプロイされた Cloud Run URL エンドポイントを保存します。
オプション: BigQuery へのログ記録設定
Vertex AI への各リクエストは請求可能な文字数で記録され、コストの監視や見積もりに使用できます。Google Cloud のログシンクを設定し、以下のフィルターを使用して BigQuery にログを保存します。
resource.type = "cloud_run_revision"
resource.labels.service_name = "websocket-service"
resource.labels.location = "us-central1"
severity>=DEFAULT
jsonPayload.component="dashboard-summarization-logs"
3. Looker Extension Framework のセットアップ
ローカル開発環境のセットアップ
1.ルートディレクトリに移動します。
cd ../..
2.ファイルをコピーして保存し、適切な環境変数を設定します。WEBSOCKET_SERVICE には Cloud Run のエンドポイント URL を設定します。
SLACK_CLIENT_ID=
SLACK_CLIENT_SECRET=
CHANNEL_ID=
SPACE_ID=
WEBSOCKET_SERVICE=
3.依存関係をインストールします。
npm install --legacy-peer-deps
4.開発サーバーを起動します。
npm run build
bundle.js
が作成されます。
5.Looker にログインし、新しい LookML プロジェクトを作成します。Develop => Manage LookML Projects => New LookML Project
を選択し、Blank Project
を選びます。
6.manifest.lkml
ファイルを Looker プロジェクトにドラッグ&ドロップします。必要に応じて ID やラベルを変更してください。
4. フロントエンドのデプロイ手順
ローカルサーバーを起動してコードをロードする必要があります。デプロイメントの際、次の手順でプロダクションビルドを実行します。
1.プロダクションビルドを実行します。
npm run build
2.dist
ディレクトリに生成された bundle.js
ファイルを Looker プロジェクトにドラッグ&ドロップします。manifest.lkml
ファイルを更新し、url
の代わりに file
を指定します。
3.デプロイ後ダッシュボード画面から拡張機能を選択して、実際のサマライズを確認できます。
まとめ
Looker ダッシュボードサマリ化拡張機能は、リアルタイムのデータサマリを提供し、データに基づくアクションをビジネスツールにエクスポートする強力なツールです。この記事に従って、環境をセットアップし、デプロイ手順を実行することで、リアルタイムでのダッシュボードデータの活用を開始できます。