こんにちは、データ戦略部 データプロダクト課の鈴木です。
最近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. まとめ
以上の方法で簡単にチャットボットの作成ができました。
こちらの方法を流用すると、感情分析や文章の要約ができる画面作成などにも応用ができるので、ぜひ活用ください。
バンダイナムコネクサスでは、一緒にデータ基盤構築やプロダクト開発を行うメンバーを募集しています。
もし興味を持っていただけたらぜひご応募ください!