こんにちは。SCSKの江木です。
以前、以下の記事を執筆しましたが、Dialogflow CX自体が初めてでわかりくいという方もいらっしゃったかもしれません。
そこで今回は、Dialogflowの基礎知識を改めて整理して紹介していきます。
この基礎知識があれば、Dialogflow CXでAgentを構築できるようになるので、最後までご覧ください。
Dialogflowとは?
CCAIサービスの1つで、仮想エージェントを備えた、自然な会話を実現するAIです。一言でいうと、チャットボット兼ボイスボット(以下、チャットボットと省略して記載します。)を作ることができるサービスです。DialogflowにはCXとESの2種類が存在します。
- Dialogflow CX
- 大規模なエージェントや非常に複雑なエージェントに適した高度なエージェントタイプを提供
- Dialogflow ES
- 小規模エージェントとシンプルなエージェントに適した標準エージェントタイプを提供
Dialogflow CXについて
GUI
Dialogflow CXのGUIは以下のようになっております。
右側の[Build]タブ、[Manage]タブからAgentの設定をすることができます。また、左側の[Test Agent]でテストを行うこともできます。
用語
続いて、Dialogflow CXを触るうえで理解する必要がある用語解説していきます。
Agents
Dialogflow CXで作成するチャットボットのことです。Dialogflow CXでは様々なロケーションにエージェントを作ることができます。また、1つのプロジェクトで複数のエージェントを作成することもできます。
Flows
複雑な会話に関して、複数のトピックを取り扱うための仕組みです。会話の流れや分岐を視覚化したもので、Page同士のつながりを見ることができます。開始時にはDefault Start FlowというFlowが存在します。以下の図全体がFlowです。
Pages
会話の各ステップを表したものです。PageにはEntry fulfillmentやRoutes(後述します)を設定します。以下の赤枠で囲った部分がPageです。
Entry fulfillment
そのPageに遷移したときにAgentが発言するメッセージです。下図の例ですと、Start PageからStore Hoursに遷移したとき、Entry fulfillmentに設定されている「月曜日から土曜日まで9:00-19:00mで営業していま…」をAgentが発言します。
Routes
会話のFlowを制御するためのもので、PageからPage(またはFlow)への遷移を決定します。Routeにはintentsを設定します。このRouteで以下の図の矢印がRouteです。
Intents
エンドユーザー(チャットボットを利用する人)の意図(言葉)を分類します。以下の図のように「Training phrases」という項目でエンドユーザーが発言する言葉を学習させます。
Agentの作り方
Agentの作り方の基本を紹介していきます。
まず、Dialogflow CXのコンソールにアクセスし、[Create Agent]を押下します。
自由にカスタマイズしたいので、[Build your own]を選択します。
Agentの設定を行います。言語はjaにしてください。設定が完了したら、[Create]を押下してください。
Agent作成画面が立ち上がりました。
FlowやPageを作りたい場合は、[Build]タブから、IntentやEntity、外部との連携をしたい場合は[Manage]タブからAgentの機能を開発していきます。
実際に作成したAgentをもとに、会話の流れをつかんでみる
今回はDialogflow CXのハンズオンをもとにAgentを作成しました。ハンズオンの詳細が知りたい方は以下のサイトをご参照ください
作成したAgentは以下の通りです。ここでは下図のStart PageからStore Hoursへ遷移するときの発言の流れを例に説明します。
Start PageにはStore Hoursに遷移するためにstore.hoursという名前のRouteを設定しています。また、store.hoursにはstore.hoursという名前のintentを設定しています。設定は以下の通りです。
Start Pageからの遷移先であるStore HoursのEntry fulfilmentには以下の通りの設定をしています。
以上の設定を踏まえると、Agentとの会話の流れは以下の通りです。
- Start Pageからスタート
- エンドユーザが営業時間を聞くようなフレーズを入力
- intentであるstore.hoursのTraining phrasesに登録されたフレーズに類似したフレーズがエンドユーザーから入力されたため、store.hoursというRouteが選択される
- Routeであるstore.hoursの遷移先はStore Hoursであるため、Start PageからStore Hoursへ遷移
- Store HoursのEntry fulfillmentに登録した、「月曜日から土曜日まで9:00 -19:00 で営業しています。日曜祝日は定休日です。その他ご用件はございますでしょうか。」というフレーズをAgentが発言
一般化してみる
Agentとの会話の流れを一般化してまとめてみます。
上のようなフローがあるとき、Agentとの会話の流れは以下の通りとなっています。
- Page Aからスタート。Page AのFufillmentのAgent saysで設定された「こんにちは」というフレーズをAgentが発言。
- エンドユーザがフレーズを入力
- Page AのRoute1に設定されたIntentのTraining phrasesに登録されたフレーズに類似したフレーズがエンドユーザーから入力されるとRoute1が選択される
- Route1のTransition(遷移先)はPage Bであるため、Page AからPage Bへ遷移
- Page AのEntry fulfillmentのAgent saysに設定した、「遷移したよ」というフレーズをAgentが発言
FufillmentやRoute以外にもPageには様々な設定項目があり、Agentに柔軟な発言をさせることができますが、遷移の基礎は上記の通りになります。
おわりに
今回はDialogflow CXの基本を整理してみました。
今回紹介した内容でも十分Agentを作ることができますが、自由度は低いです。
今後の記事では、紹介していない機能や生成AIの機能、Dialogflow CXでAgentを作成するときのTipsについて紹介できたらと思います。
最後まで読んでいただきありがとうございました。