1
/
5

GoogleのAI Gemini ProとLooker Studioを利用した簡易チャットボット開発

こんにちは、データ戦略部 データプロダクト課の鈴木です。

最近LLMやチャットボットなどが流行りに流行っていますが、実際に業務で活用しようとするとコスト問題や情報漏洩リスクなど、様々な要因でハードルが高いと感じる方も多いのではないでしょうか。

本記事ではGoogleのAIモデル Gemini ProとLooker Studioを利用することで、情報漏洩リスクが低いチャットボットを、初期コストゼロで、さらに1時間で簡単に作成する方法をご紹介します。


1. 今回作成するチャットボットの概念図

今回作成するチャットボットの概念図は下記のようになります。

ユーザがLooker Studioで作ったチャットボットのページを開き、入力フォームに質問文を入力します。すると、裏側でBigQueryに質問文から生成したSQLが実行され、Vertex AIから接続したLLMモデルが質問文に対する回答文を生成します。その回答文がLooker Studioに返却され、ページに回答が表示されるという仕組みとなっています。

LLMのモデルには2024年4月にGoogle Cloud Nextで紹介されたGemini Proモデルを使用しているため、高精度な回答が期待できます。

Looker Studioは無料ツール、Google Cloudは従量課金制のため、初期コストはかからず、利用も安価となっています。


2. 前準備

前準備として、Google Cloud側の各種設定を行います。

手順通りにプロジェクト・サービスの設定を行なってください。

2-1. Google Cloudプロジェクトの準備

Google Cloudプロジェクトを作成していない場合、公式ドキュメントの「Google Cloud プロジェクトをセットアップする」を参考に新規プロジェクトを作成してください。

手順通りに作成すれば10分前後でセットアップが可能です。

もしすでにGoogle Cloud プロジェクトを作成済みであれば、こちらの手順はスキップしてください。

2-2. Google CloudのAPI有効化

次にチャットボットの作成に必要なAPIの有効化を行います。

APIとサービス」から、下記APIの有効化をお願いします。

  • BigQuery API
  • BigQuery Connection API
  • Vertex AI API

2-3. BigQueryにVertex AIの外部接続を追加

BigQueryにLLMモデルを取得するための外部接続を作成します。

BigQuery SQLワークスペース」を開き、「エクスプローラ」の右にある「+追加」ボタンを選択します。

すると「外部データソースへの接続」というタイルが表示されるので、こちらを選択します。

その後、設定項目を下記のように記載してください。

  • 接続タイプ: Vertex AIリモートモデル、リモート関数、BigLake(Cloud リソース)
  • 接続ID: vertex_ai(任意の名前でもOK)
  • ロケーションタイプ: リージョン
  • リージョン: asia-northeast1(東京)

作成後、外部接続の詳細メニューを開くと「サービスアカウント ID」という項目が確認できます。

こちらのIDをコピーしておき、「IAMと管理」メニューで「アクセス権を付与」を選択します。

その後、下記の権限を設定してください。

  • 新しいプリンシパル: 先ほどコピーしたサービスアカウントID
  • ロールを選択: Vertex AI ユーザー

2-4. LLMモデルを作成

LLMモデルを格納するBigQueryデータセットを作成します。

BigQuery SQLワークスペース」を開き、プロジェクト名右のメニューより「データセットの作成」を選択してください。

その後、設定項目を下記のように記載してください。

  • データセットID: vertex_ai(任意の名前でもOK)
  • ロケーションタイプ: リージョン
  • リージョン: asia-northeast1(東京)

作成したら再びSQLワークスペースから「無題のクエリ」タブに下記のSQLを入力して、LLMモデルを作成してください。

CREATE MODEL IF NOT EXISTS `vertex_ai.gemini_pro`
REMOTE WITH CONNECTION `asia-northeast1.vertex_ai`
OPTIONS(
ENDPOINT = 'gemini-pro'
)

以上で前準備は完了です。


3. Looker Studioの実装

Google Cloud側の前準備が完了したら、Looker Studioのチャットボット画面を作成します。

こちらも手順通りに設定をお願いします。

3-1. データソースの追加

まず「Looker Studio」を開き、左上の「作成」「レポート」ボタンから新規ダッシュボードを作成してください。

その後、メニューの中から「データを追加」ボタンを選択して、接続先に「BigQuery」を選択してください。

左側のタブより「カスタムクエリ」を選択して、入力フォームに下記のSQLを入力してください。

SELECT 
STRING(unnest_ml_generate_text_result_candidates.content.parts[0].text) AS content_text
FROM
ML.GENERATE_TEXT(
MODEL `vertex_ai.gemini_pro`,
(
SELECT @prompt AS prompt
),
STRUCT(
800 AS max_output_tokens
)
)
LEFT JOIN
UNNEST(JSON_EXTRACT_ARRAY(ml_generate_text_result.candidates)) AS unnest_ml_generate_text_result_candidates

その後、入力フォーム下の「+パラメータを追加」メニューよりクエリ用パラメータを追加してください。「デフォルト値」にダッシュボードにアクセスした際のデフォルト質問を入力しておきます。

今回は細かいGemini用のパラメータまでは踏み込まないので、興味がある方はBigQuery MLの使い方を調べてみてください。

3-2. コントロールフィールドの追加

ダッシュボード画面から「コントロールを追加」を選択して、「入力ボックス」を追加してください。

「データソース」は3-1で作成したデータソースを選択し、「コントロールフィールド」は「prompt」としてください。

3-3. ダッシュボード外観の設定

回答を表示するために、メニューの「グラフを追加」から「表」を選択してダッシュボードに追加してください。

「データソース」は3-1で作成したデータソースを選択し、「ディメンジョン」は「content_text」としてください。

その後、「スタイル」メニューより表の行番号非表示、テキストを折り返す、ページ設定を非表示などの設定をすることで、回答文のみ表示することが可能です。

その他、ラベルやテキストのサイズ変更などを行って外観を整えてください。

ここまででチャットボットの作成は完了になります。


4. チャットボットの使い方

チャットボットは3-2で作成した入力フォーム(コントロールフィールド)に質問文を記載するだけです。

下記のように、回答が3-3で追加した表に表示される仕組みとなっています。


5. まとめ

以上の方法で簡単にチャットボットの作成ができました。

こちらの方法を流用すると、感情分析や文章の要約ができる画面作成などにも応用ができるので、ぜひ活用ください。

バンダイナムコネクサスでは、一緒にデータ基盤構築やプロダクト開発を行うメンバーを募集しています。

もし興味を持っていただけたらぜひご応募ください!

データエンジニア
バンダイナムコグループのデータ基盤を支えるデータエンジニアを募集!
私たち株式会社バンダイナムコネクサスは、新しいアソビを開拓し続け、世界に最新・最高のエンターテインメントをお届けすることを目指す会社です。 社名「nexus(つながり・絆)」の名の通り、バンダイナムコグループが展開する多彩な事業をつなげ、IPファンのお客様との結びつきをより強めるサービスを展開。直近では世界的なカンファレンス・TEDに弊社役員が登壇するなど、グローバルな活動も行っています。 ■バンダイナムコグループと私たちについて■ バンダイナムコグループは、玩具や店舗展開からデジタル領域まで世界でも有数の多業種に渡るエンターテインメント事業を展開。その中で私たちは、事業共通するIPを軸にお客様との理解を深め、これまでにないエンターテインメントを生み出すことをミッションとしております。 事業単体では到達できない新たな発想や基盤構築を実現するべく、「事業単体/横断データ分析」や「IPファン向け情報発信の機能開発・運営」「商品連動を可能にしたブラウザゲームプラットフォーム”enza”の展開」などを通じて、バンダイナムコグループ各社との緊密な連携を日々行なっております。ネクサスの名のもと、グループ全体を俯瞰し、世の中をワクワクさせる取り組みを追及し続けます。 もっとバンダイナムコネクサスについて詳しく知りたい方はこちら https://bandainamco-nexus.co.jp/careers/
株式会社バンダイナムコネクサス
リードデータエンジニア
バンダイナムコグループのデータ基盤をリードするリードデータエンジニアを募集
私たち株式会社バンダイナムコネクサスは、新しいアソビを開拓し続け、世界に最新・最高のエンターテインメントをお届けすることを目指す会社です。 社名「nexus(つながり・絆)」の名の通り、バンダイナムコグループが展開する多彩な事業をつなげ、IPファンのお客様との結びつきをより強めるサービスを展開。直近では世界的なカンファレンス・TEDに弊社役員が登壇するなど、グローバルな活動も行っています。 ■バンダイナムコグループと私たちについて■ バンダイナムコグループは、玩具や店舗展開からデジタル領域まで世界でも有数の多業種に渡るエンターテインメント事業を展開。その中で私たちは、事業共通するIPを軸にお客様との理解を深め、これまでにないエンターテインメントを生み出すことをミッションとしております。 事業単体では到達できない新たな発想や基盤構築を実現するべく、「事業単体/横断データ分析」や「IPファン向け情報発信の機能開発・運営」「商品連動を可能にしたブラウザゲームプラットフォーム”enza”の展開」などを通じて、バンダイナムコグループ各社との緊密な連携を日々行なっております。ネクサスの名のもと、グループ全体を俯瞰し、世の中をワクワクさせる取り組みを追及し続けます。 もっとバンダイナムコネクサスについて詳しく知りたい方はこちら https://bandainamco-nexus.co.jp/careers/
株式会社バンダイナムコネクサス


このストーリーが気になったら、遊びに来てみませんか?
バンダイナムコグループのデータ基盤をリードするリードデータエンジニアを募集
株式会社バンダイナムコネクサスでは一緒に働く仲間を募集しています
12 いいね!
12 いいね!

今週のランキング

鈴木 翔大さんにいいねを伝えよう
鈴木 翔大さんや会社があなたに興味を持つかも