徹底解説!Dialogflow CXで実装するGoogle Chatボットの作成方法

現在多くの企業が効率的かつ効果的なカスタマーサポートを実現するために、チャットボットを導入しています。
本記事ではDialogflow CXを使ってチャットボットを作成するプロセスを詳細に紹介しています。
はじめに
現在多くの企業が効率的かつ効果的なカスタマーサポートを実現するために、チャットボットを導入しています。
本記事ではDialogflow CXを使ってチャットボットを作成するプロセスを詳細に紹介しています。
使用するツールの説明
- Cloud Storage
Google Cloud Storageは、Googleが提供するオンラインストレージサービスです。クラウド上にデータを保存し、アクセスできるようにします。大規模なデータの保管やバックアップ、アーカイブ、データ共有などに利用されます。
- Dialogflow CX
Dialogflow CXは、Googleが提供するチャットボットと会話型エージェントの開発プラットフォームです。自然言語処理(NLP)を活用して、ユーザーとのインタラクションを構築することができます。CX(Customer Experience)は、より複雑な対話フローや大規模な会話シナリオに対応しており、視覚的な対話フロー設計やエージェントのトレーニング、インテグレーションなどの機能を提供します。
- Google Chat API
Google Chat APIは、Google ChatとのインタラクションをカスタマイズするためのAPIです。Google Chatは、チームのコミュニケーションとコラボレーションをサポートするチャットプラットフォームで、Google Workspace(旧G Suite)の一部です。このAPIを使用することで、Google Chat内でのメッセージの送受信、カスタムボットの作成、通知の管理などをプログラム的に行うことができます。
作成したチャットボットの機能説明
- 質問に対して正しい回答文の生成
- 引用元のPDFファイル名の表示
- 引用元のPDFファイルのリンク(クリックしたら推移可能)
実装手順
チャットボットは以下の手順で作成しました。
4-1. バケットの作成
4-2. Vertex AIでデータストアとアプリの作成
4-3. Dialogflow CXの設定
4-4. Google Chat APIとの連携
では順に説明していきます。
4-1. バケットの作成
4-1-1. Cloud Storageでバケットの作成
- バケットで「作成」をクリックします。
- 「バケットに名前を付ける」で任意の名前を付けます。
- 「データの保存場所の選択」のロケーションタイプとして「Multi-region」をクリックし、「asia」を選択してください。
4-1-2. 作成したバケットにデータをアップロード
- 先ほど作成したバケットを選択し、ファイルまたはフォルダをアップロードします。
4-1-3. 引用元のPDFファイルのリンクをクリックできるようにするにはバケットを一般公開する必要があります。その場合は、機密情報などはバケット内に入れないようにしましょう。
以下がバケットを一般公開する手順です。
- 2で作成したバケットの「権限」をクリックします。
- 「公開アクセス防止を削除」と表示されていたらクリックし、公開アクセス防止を削除します。
- 「アクセス権を付与」選択し、「プリンシパルの追加」に”allUsers”(全ユーザーに公開)か”allAuthenticatedUsers”(Googleアカウントを持つユーザーのみに公開)のどちらかを入力します。
- ロールを「Storage Object Viewer」とします。(これによってバケット内のファイルが公開されます。)
※引用元をページ単位で出力する方法
引用元ファイル名と引用元リンクをページ単位で出力したい場合は、バケット内にページ単位で分割したPDFファイルをアップロードする必要があります。
PDFファイルをページごとに分割する方法は以下のブログを閲覧ください。
PythonでPDFファイルをページごとに分割する方法 | Data Driven Knowledgebase (since2020.jp)
4-2. Vertex AIでデータストアとアプリの作成
4-2-1. データストアの作成方法
- 「データストアを作成」をクリックします。
- データストアで「Cloud Storage」を選択してください。
- バケット内にPDFファイルのアップロードしたので「非構造化ドキュメント」を選択します。
- 先ほど作成したバケットをインポートします。
- マルチリージョンを「global(グローバル)」とし、任意のデータストア名をつけて「作成」をクリックします。
4-2-2. アプリの作成方法
- 「アプリを作成する」をクリックします。
- チャットを選択します。
- 任意の会社名、エージェント名を入力し、「エージェントのロケーション」をマルチリージョン、global(グローバル)にします。
- タイムゾーンとデフォルトの言語を以下のように変更します。
- 先ほど選択したデータストアを選択し、「作成」をクリックします。
4-3. Dialogflow CXの設定
4-3-1. フローの設定
- 先ほど作成したアプリを選択します。
- 「Start Page」をクリックします。
- 「Edit data stores」がない場合は「Add state handler」で「Data stores」を追加します。
- 「Edit data stores」をクリックします。
- 「Unstructured documents」を先ほど作成したデータストアに変更します。
- Transitionを以下のように変更します。このようにすることで繰り返し、回答が可能になります。
4-3-2. 回答方法のカスタマイズ
引用元のタイトルは request.knowledge.sources の title に、引用元のリンクは request.knowledge.sources の uri にそれぞれ入っています。
- Fulfillmentのparameterで以下の2つを追加します。
Parameter : uri
Velue : “$sys.func.GET_FIELD($sys.func.GET($request.knowledge.sources[0], 0),\”uri\”)”
Parameter : title
Velue : “$sys.func.GET_FIELD($sys.func.GET($request.knowledge.sources[0], 0),\”title\”)”
- Agent responsesで現在あるものをすべて削除し、「Add dialogue option」で「Text」と「Custom payload」を追加します。
Text
Custom payload
- 「save」をクリックします。
変更が正しく更新されているかを「Text Agent」で確認しましょう。
4-3-3. Google Chat APIとの連携設定
- Manageタブを開き、「Versions」をクリックします。
- 「Default Start Flow」をクリックし、「+Create」で任意の名前と説明を記入し、保存します。
- 「Environments」で「+Create」をクリックし、任意の名前と説明を記入し、「Default Start Flow」で先ほど作成したVersionを選択し、保存します。
- 「Integrations」で Google Chat を選択します。
- 任意の名前とAvatar URL、説明を入力します。(Avatar URLはチャットボットのアイコンになります。)
- Environmentは「Environments」で作成したものに変更し、自分のEmailを入力します。
- 「Start」をクリックします。
4-4. Google Chat APIとの連携
- Google Chat APIを有効にします。
- 「構成」タブをクリックします。
- 以下の通りに設定し、保存してください。
アプリのステータス:ライブ-ユーザが利用可能
アプリケーション情報
アプリ名:Dialogflow CXで設定したものと同じ名前
アバターのURL:Dialogflow CXで設定したものと同じURL
説明:Dialogflow CXで設定したものと同じ説明文
インタラクティブ機能
インタラクティブ機能を有効にする。
1:1のメッセージを受信する
スペースとグループの会話に参加する
接続設定:Dialogflow
Dialogflow CX
エージェントまたは環境リソース名は、Dialogflow CX上のURLの以下の部分です。
projects/{your_project_id}/locations/{your_locations_id}/agents/{your_agents_id}
公開設定:任意のユーザーのメールアドレスを登録
ログ
エラーをLoggingに記録する。
以上で実装手順は完了です。
結果
Google Chatを起動して、チャットボットが正しく機能するのかを見てみましょう。
- Google Chatを開きます。
- 「チャットを新規作成」をクリックします。
- Google Chat APIで設定したアプリ名を検索してください。
- 質問したい内容をチャットして、正しい回答、引用元タイトル、引用元リンクが返ってきたら成功です。
まとめ
本記事ではDialogflow CXによるチャットボットの作成方法について記載しました。
今後チャットボットを作成する機会がありましたら、この記事を参考にしてみてください。