この記事について
Google Cloud の Dialogflow CX のデータストアエージェント(生成AI 機能)を使って、データストア(Cloud Storage)にある独自のデータを参照する生成AI チャットボットをノーコードで作っちゃおう!というものです。
今回は、チャットの細かな画面の遷移や個別の応答については一旦置いておいて、独自のデータを参照して生成AI のチャットボットが回答を返してくれることを目指します。
各サービス・機能・メリットの説明
1.Dialogflow CX
Dialogflow CX は多機能で複雑な会話が可能なチャットボットを開発するためのプラットフォーム。GUI での簡単な操作でチャットボットを開発できる。
機能例)予約、担当者を呼び出す、Slackとの統合など
2. データストアエージェント(生成AI 機能)
社内規約や商品カタログ、FAQ といったデータをデータストア(データの保管庫)に入れておけば、そのデータを使って生成AI が質問に対するレスポンスを生成してくれる。Google の大規模言語モデル(PaLM2)でレスポンスを生成。
3.Dialogflow CX のメリット
従来型のチャットボットは、質問や回答を人が定義する必要があり、開発に時間がかかる。しかも、定義したものと入力内容がずれるとチャットボットが理解できない場合がある。チャットボットによっては選択式でしか質問できない。それに対して、Dialogflow CX は、渡したデータ、もしくは基盤モデル(PaLM2)が持っている知識から回答を生成してくれる。さらに、様々な言い回しに対して高い確率で意味を理解してくれる。生成AI 機能によって従来よりも流暢に会話のできるチャットボットを短時間で、しかもノーコードで開発できるというメリットがある。
0.環境準備
今回は、すでに Google Cloud にログインができてプロジェクトが作成されている前提で進めます。
Google Cloud の始め方はこちらをご参照ください。
個人でのご利用なら Gmail アカウントで簡単に始められて無料枠もあるので、是非お気軽にお試しください。(クレジットカードの登録が必要です)
こちらの作業により、多少の課金が発生する場合があります。実施の際は、ご注意ください
この作業用にテスト用のプロジェクトを個別に作成することをオススメいたします。そうすると、作業後にプロジェクトを削除するだけで、すべてのクリーンアップが完了します。(不要な課金を避けることができます)
1.Cloud Storage(GCS)にデータを保存する
Cloud Storage(GCS)は、Google Cloud が提供するストレージサービスです。今回は、GCS をデータストアとして参照します。
今回 GCS には先日公開した僕のブログ記事を PDF 化して保存します。
つまり、僕の記事を参照してラリオスについて回答するラリオスチャットボットを作成しよう!というわけです。
それでは早速 PDF ファイルを GCS にアップロードしましょう。操作は簡単で、コンソールで GCS にバケット(データの入れ物)を作って、画面上でアップロードするだけです。
1-1. バケットの作成
Google Cloud にログインしたコンソール画面の左上にある「ナビゲーションメニュー」をクリックして、「Cloud Storage」を選択します。
バケットにグローバルで一意(世界で唯一)の名前をつけます。今回は「raliosbot」という名前をつけています。
後ほどデータストアを接続する際に、この名前のバケットを選択します
データの保存場所から「ロケーションタイプ」を選択します。今回は、「ロケーションタイプ」を「リージョン」に設定して「asia-northeast1 (東京)」を選択しています。
※ ロケーションに関する詳細はこちらをご参照ください。
残りの設定はデフォルトのまま「作成」ボタンを押します。
公開アクセスに関するダイアログが表示されますが、今回は外部にデータを公開する必要がないので、「アクセスを禁止」にチェックを入れた状態で「確認」ボタンをクリックします。
1-2. ファイルのアップロード
「ファイルをアップロード」をクリックして、該当のファイルをアップロードします。(今回は僕のブログ記事の PDF をアップロードしています)
2. API を有効化する
Google Cloud では必要に応じてプロジェクト毎に API を有効化します。ほとんどの API はデフォルトで有効になっていますが、Dialogflow は手動で有効にする必要があります。
2-1.Dialogflow API を有効化する
「ナビゲーションメニュー」から「API とサービス」を選択し「ライブラリ」を開きます。
検索バーに「Dialogflow」と入力して Enter キーを押します。
Dialogflow API を選択します。
「有効にする」ボタンを押します。これで、「Dialogflow CX」を使う準備は完了です!
3. Dialogflow CX でエージェント(チャットボット)を作成する
Dialogflow CX を使うとノーコードでエージェント(チャットボット)を作成することができます。
3-1. Dialogflow のコンソールを開く
こちらにアクセスして「コンソールへ移動」をクリックします。
該当のプロジェクトを選択します。(今回は「test-ralios」)
3-2. エージェントを作成する
「Create Agent」をクリックします。
「Display Name」、「Location」、「Time zone」、「Default language」を設定します。今回は以下のように設定しました。
項目 | 設定 |
---|---|
Display Name | raliosbot |
Location | asia-northeast1 (Tokyo, Japan) |
Time zone | (GMT+9:00) Asia/Tokyo |
Default language | ja — Japanese |
設置が完了したら「Create」をクリックします。
画面が切り替わったら「Start Page」をクリックします。
「Default Welcome Intent」をクリックして、チャットボットの初期設定をしていきます。
右側に設定画面が開くので、少し下にスクロールして「Agent says」のところに、チャットボットの初期応答の文言を入力します。今回は「こんにちは! ラリオスのことなら何でも聞いてください!」と入力しました。これでエージェント(チャットボット)の初期設定は完了です。
文言の入力後、「Save」を押し忘れないよう注意しましょう!
4. データストアを接続する
参照するデータ(僕のブログ記事の PDF)にアクセスできるように、データストア(今回は Cloud Strage)に接続します。
4-1. データストアを選択する
画面左上の「Manege」タブを選択した後、左側のメニューから「Data Stores」をクリックします。
「CONTINUE AND ACTITATE THE API 」クリックした後、次の画面で同意します。
架空で構わないので会社名を入力して「続行」をクリックします。
「新しいデータストアを作成」をクリックした後、データストアから「Cloud Storage」を選択します。
「参照」ボタンを押して、先ほど作成したバケット「raliosbot」を選んだら「選択」ボタンをクリックします。「非構造化ドキュメント」にチェックが入っていることを確認したら「続行」ボタンをクリックします。
データストア名を入力したら「作成」ボタンを押します。今回はわかりやすく「raliosbot-datastore」という名前をつけました。
そうすると今作成したデータストアが表示されるので、それを選択して「作成」ボタンをクリックします。データストア「raliosbot-datastore」が作成されたことを確認することができます。「raliosbot-datastore」のリンクをクリックすると、Cloud Storege にアップロードしたデータに接続されていることを確認することもできます。
4-2. データストアを接続する
それではここからは、先ほど作成したエージェント(チャットボット)とデータストアを接続していきましょう! データストアの接続が完了すると、そこに保管されているデータを参照してチャットボットが回答を生成します。
画面左上の「アプリ」をクリックして、画面が切り替わったら先ほど作成したエージェント(今回は「raliosbot」をクリックします。そうすると、エージェント設定の画面に戻ることができます。
エージェントの画面に戻ったら「Start Page」を選択して、「Add state handler」をクリックします。チェックボックスが出てきたら「Data stores」にチェックを入れて「Apply」します。
そうすると「Start Page」のダイアログに「Data stores」という項目が追加されるので、その右側の「+」ボタンをクリックします(①)。そして右側に設定画面が開くので、「Unstructured Documents」(②)のプルダウンから、先ほど作成したデータストア「raliosbot-datastore」を選択してください(③)。選択したあとは必ず画面右上の「Save」ボタンを押してください。
データストアの選択後、「Save」を押し忘れないよう注意しましょう!
5. エージェント(チャットボット)をテストする!
さあ、いよいよエージェント(チャットボット)の設定が完了しました。Dialogflow CX にはテスト機能が搭載されていますので、そちらを使ってテストしてみたいと思います。
5-1. テストエージェントを開く
画面右上の「Test Agent」をクリックすると、テスト画面を開くことができます。
5-2. エージェント(チャットボット)をテストする
テスト画面を開くと右下にプロンプト(質問)を入力する欄が出てくるので、そこにプロンプトを入力してエージェントをテストします。
まずは、「こんにちは!」と入力してみます。すると初期設定で入力した「こんにちは!ラリオスのことなら何でも聞いてください!」が返ってきます。
いくつか質問してみましたが、ちゃんとデータストア(Cloud Storage)に保管した PDF(僕のブログ記事)を参照して回答を生成していることがわかります。
6. クリーンアップ
Google Cloud のコンソール画面に移動します。画面左上のナビゲーションメニューから「IAMと管理」を選択して「リソース管理」に進みます。
該当のプロジェクトを選択します。(今回は「test-ralios」)
画面にしたがって、プロジェクト ID を入力して「このままシャットダウン」をクリックすれば完了です。これによってリソースは削除され課金をストップすることができます。なお、30 日以内であれば、プロジェクトを復元することも可能です。
プロジェクトの管理に関する詳細は、こちらもご参照ください。
6.まとめ
はい。というわけで、いかがだったでしょうか? ノーコード(画面上でポチポチするだけ)で、独自のデータを参照してエージェント(チャットボット)に回答を生成させることができました。
この記事を書くのには何時間もかかりましたが、チャットボットの作成はおおよそ 10 分程度です。
もちろん、画面を遷移させたり Slack に連携させるなど高度な利用をするためには、もっと時間もかかりますし、細かな設定が必要です。でも、まずは簡単に使い始めることができるということはご理解いただけたかなと思います。是非みなさんも触ってみて、いろいろ遊んでみてください!
おまけ