Google ChatとVertex AIを組み合わせて、簡単にLLMチャットボットを構築する方法を紹介します。
本記事を読むことで、GCPの各種サービスを活用したチャットボットの開発手順を理解し、実際に動作するデモを作成できるようになります。
アーキテクチャ概要
こちらの Google Workspace ドキュメントにあるアーキテクチャ図をそのまま参考にさせて頂きました。
環境構築手順
API の有効化
事前に以下のAPIを有効化しておきます。
- Cloud Build API(Cloud Run 関数を使用するために必要)
- Cloud Run Admin API
- Firestore API
- Vertex AI API
GCP サービスアカウント作成
Firestore データベースを作成
メニューの [Firestore] から [FIRESTORE データベースを作成] を選択します。
- [データベース ID] は 「(default)」 のまま
- [Standard Edition] を選択
- [構成オプション] は 「Firestore ネイティブ」 のまま
- [場所] は 「リージョン」 で 「asia-northeast1」 を指定
Firestore には、ネイティブモードとDatastoreモードの2つの動作モードがあります。
Datastore モードは、古いGoogle Datastoreと互換性を保つためのモードであり、Firestore API は使用できません
Cloud Run 関数を作成してデプロイ
- メニューから [Cloud Run Functions] を選択します
- こちらの GitHub からコードを zip ファイルとしてダウンロードします
- ダウンロードした ZIP ファイルを展開します
- Google Cloud コンソールで、[Cloud Run functions] ページに移動します
- [関数を作成] をクリックします
- [インライン エディタで関数を作成する] を選択します
- [サービスの名前] に[vertexai-chat-demo] と入力します
- [リージョン] で [asia-northeast1] を選択します
- [ランタイム] で [Python 3.12] を選択します
- [認証] で、[Allow unauthenticated invocations] (未認証の呼び出しを許可) を選択します
- [セキュリティ] で先述で作成したサービスアカウント(vertexai-demo)を設定します
- [作成] をクリックし、Cloud Run がサービスを作成するのを待ちます。コンソールの [ソース] タブにリダイレクトされ、関数のソースコードが表示されます
- [エントリ ポイント] で、 [hello_chat] と入力します
- main.py と requirements.txt をダウンロードしたコードに差し替えます
- [保存して再デプロイ] をクリックします
- デプロイが完了すると、「URL」というテキストの横にコンテナの URL が表示されます。[クリップボードにコピー] をクリックして URL をコピーします。これは、次のセクションで Chat アプリを構成するときに必要になります
Google Chat API 設定
Google Chat API の有効化
- メニューから [APIとサービス] を選択します
- 画面上部にある [APIとサービスを有効にする] をクリックします
- 検索窓に [google chat] と入力し、[Google Chat API] を選択します
- [有効にする] をクリックします
- [Google Chat API] > [構成] をクリックします
- [アプリ名] を入力します
- [アバターの URL] に [https://developers.google.com/chat/images/quickstart-app-avatar.png] を入力します
- [説明] を入力します
- [インタラクティブ機能を有効にする] をオンにします
- [機能] で、[1:1 のメッセージを受信する] と [スペースとグループの会話に参加する] を選択します
- [接続設定] で [HTTP エンドポイント URL] を選択します
- [HTTP エンドポイント URL] に、Cloud Run 関数のデプロイからコピーしたトリガー URL を貼り付けます
- [公開設定] で [このチャットアプリを ・・・ 使用できるようにします] を選択し、Google Chat を使用するメンバーのメールアドレスを入力します
- [ログ] で [Logging にエラーをログに記録] を選択します
- [保存] をクリックします
デモの実行
チャットボットの準備
- Google Workspace アカウントを使用して Google Chat を開きます
- [新しいチャット] をクリックします。
- [1 人以上を追加] フィールドに、Chat アプリの名前を入力します。
- 検索結果から Chat アプリを選択するとダイレクト メッセージが開きます。
- [モデルを選択] (もしくは [はじめから])と入力して enter を押します
- モデルの選択ボタンが出てくるので、使用したいモデルのボタンをクリックします
プロンプトの入力
- プロンプトを入力して enter を押すと回答が返ってきます
参考)
https://developers.google.com/workspace/chat/tutorial-project-management?hl=ja
https://developers.google.com/workspace/chat/quickstart/apps-script-app?hl=ja
https://blog.g-gen.co.jp/entry/vertex-ai-search-with-gemini
まとめと今後の展望
本記事では、Google Chat アプリと Cloud Functions を連携させて、Vertex AI の LLM を活用した簡易チャットボットを構築する手順を紹介しました。
Google Workspace アカウントを活用することで、社内利用を想定したプロトタイプを素早く構築できる点も、本構成の大きな利点です。
今後は、以下のような拡張・応用も考えられます。
- セキュリティ強化: ユーザーごとの認証情報を活用し、発言者のロールによって応答を制御する。
- 応答精度の向上: Vertex AI の出力に対してルールベースの後処理や文脈保持の工夫を加える。
- Google Workspace 連携: Gmail や Google Calendar API と連携させ、業務効率化チャットボットとして発展させる。
- ログ保存と分析: Firestore や BigQuery を使って会話ログを蓄積し、UX改善やFAQ自動抽出に活用する。
PoC段階ではシンプルな構成から始め、徐々にスケーラブルなマイクロサービスアーキテクチャへの発展も可能です。