チャットボットを自在に作成!「Dialogflow」ってどんなサービス?
-
-
-
はてな -
-
目次
Dialogflowとは
今回ご紹介するDialogflowは、Google傘下の開発元による、チャットボットを簡単に作成できるAIエンジンです。ユーザーが入力するテキストや音声をAIが解析し、その内容に応じて、事前に設定した応答を返してくれたり、受けとったキーワードをデータベースに連携してくれます。もともと「api.ai」の名称で開発され、2016年にGoogleの一部となりました。
類似のサービスには、IBM Watson Assistant、Microsoft Azure bot service、Amazon Lexといった大手によるものがあります。その中でもDialogflowの特徴には、
- コーディングなしでチャットボットの設定が可能
- デバイスやプラットフォームを問わない連携先
- 日本語、英語をはじめ、20以上の言語に対応
といったことが挙げられます。また、Googleの傘下ということで、同社の持つ膨大なデータやノウハウに基づいた自然言語処理も期待できるでしょう。今回はWebサイトに設置する想定で、Dialogflowの機能や設定方法、料金などをご紹介していきます。
Dialogflowで出来ること
Dialogflowは基本的には、「ユーザーの入力を認識して、返事をする」というもの。ここからは、Tシャツを扱うECサイトにチャットボットを設置すると仮定して、主な機能をご紹介していきます。
(1)ユーザーの入力内容からキーワードを抽出
チャット画面で、「Tシャツの送料を知りたい」とユーザーが尋ねたとします。するとDialogflowは内容を理解し、事前に設定しておいた「送料を聞かれたときのシナリオ」に沿って行動してくれます。
ユーザー側の質問表現には他にも、「送料は何円なの?」「送るのにいくらかかりますか?」など様々なパターンが想定できますが、それはAIにお任せ。いくつかトレーニング用の例文を与えておくことで、AIが学習を行なってくれるため、新しい表現もフォローしてくれます。
(2)マニュアルに沿って応答
送料を聞かれているときのシナリオとして、「一律500円、お買い上げ5000円以上で無料になります」のように定型文で返す設定をしていれば、Dialogflowはその通りに返答します。返答文は複数のものを覚えさせることが可能です。
この(1)(2)の繰り返しが、Dialogflowが行なう動作の最小単位になります。様々なシチュエーションをつなぎ合わせたり、外部のサービスやデータと連携したりして、より高度なチャットボットを構築していくのが基本となります。
(3)データベースと連携
「Sサイズの赤い半袖Tシャツが欲しい」とユーザーが入力したとします。するとDialogflowは、(1)の流れで、「Sサイズ」「赤」「半袖」といったキーワードを抽出してくれます。キーワードが足りなければ、「サイズはどうされますか?」のように聞き返すこともできます。
ここでDialogflowは、ECサイトのデータベースと通信。ユーザーが求める「サイズ」「色」「袖の長さ」をもとに検索し、結果を受け取ります。データベースの検索結果に基づいて、(2)の流れで、「Sサイズの赤いTシャツが62件見つかりました」といった文章を生成してくれます。
なお、この通信はWebhookと呼ばれる技術を活用することで可能になります。検索対象のデータベース側でも、Webhookでのリクエスト・レスポンスができるようにしておく必要があります。
(4)文脈の設定
チャットボットでは、こうした「入力→応答」を繰り返して顧客とコミュニケーションすることになります。
Tシャツを検索したあとは、購入対象の決定、サイズと数量の確認、送り先や連絡先の入力、支払方法の選択、会員登録への誘導、感謝のメッセージへの表示、などなど様々な段階が想定できるでしょう。また、会話途中で内容が変更になったり、注文自体を考え直す、といった場合もあります。
Dialogflowでは、そうした各段階同士のつながりや優先順位などを細かく設定しておくことができます。操作自体はコーディング不要、ポチポチと項目を入力するだけですので、複雑なチャットボットを作る際にも、会話の流れや内容の設計に集中できるというメリットがあります。
(5)トレーニング
ユーザーとのやりとり履歴をもとに、AIをトレーニングすることができます。過去にうまく解釈できなかったフレーズに対して、新たな対応方法を教えたり、「赤いTシャツ」「赤のTシャツ」「レッドの」「真っ赤な」といったように、覚えさせる例文や用語を増やして、AIの学習効率を高めることができます。
また、現状は英語のみのベータ版機能ですが、文章形式のFAQなどを自動で学習してくれる機能も開発されているようですよ。
(6)自分のWebサイトで使用
最後に、自分のWebサイトなどにチャットボットを搭載できる機能です。やりとり自体はREST API経由、JSON形式で行われますので、扱いは比較的簡単。チャット画面のデザインや、サイト側の言語はなんでもOKです。なお、チャットボットの作成中は、応答の確認が随時できるカラムが表示されていますので、環境構築なしでもテストは可能ですよ。
DialogFlowの使いかた
Dialogflowの公式サイトにアクセスし、オレンジの「Sign up for free」ボタンを押します。Googleアカウントが必要になりますので、ひとつ用意しておきましょう。
コンソールが開き、このような画面が表示されるはずです。「CREATE AGENT」からAgentを作成します。Agentとは、チャットボット1つをあらわす単位、というように捉えて頂ければ結構です。Agentは複数作ることができますが、1つのAgentにつき「日本語」「英語」などの言語は1つのみ選択できます。
Dialogflowには独自用語がいくつか使われていますので、主要なものをご紹介していきます。
Entity
Entityは、会話から抽出するキーワードを表します。上のTシャツ販売サイトの例で言えば、「色」「サイズ」「袖の長さ」といったキーワードの内訳に、具体的にどんな言葉が入るのかを指定することができます。「サイズ」のEntityであれば「S」「M」「L」や、それを表す言葉を登録することになります。
単純な単語リストの形も可能。また、正規表現を使って分類したり、AIが学習によって自動で項目を増やすことを許可したり、打ち間違いなどをフォローする「あいまい一致」をオンにすることも可能です。また、時間、地名、色といった頻繁に使われるEntityは、Dialogflowに最初から用意されているものを使用することが可能です。
Intent
Intentは、ある話題について「ユーザーの入力」→「ボットの応答」を行なう1単位と考えていただければ大丈夫です。例えば、「Tシャツの種類の検索」「支払方法の選択」「送り先の入力」といったそれぞれの段階を指し、そこでどのような入力を受け取って、どのように応答するかを設定することができます。
IntentはDialogflowの中心となる要素ですので、設定画面に表示される6つの項目を、よく使う順にご紹介していきます。
1.Action and Parameters
このIntentで抽出するキーワードの種類を管理します。例えば、「色」「サイズ」「袖の長さ」を取ってほしい、とAIに教えることができます。また、「赤いTシャツをください」と入力された場合に、足りない要素である「サイズ」や「袖の長さ」を聞き返す文言の設定もここで可能です。
2.Training Phrases
ユーザーからの入力の例文をAIに学習させます。「赤くて小さい、半袖のTシャツはありますか?」のような例文を与え、その中から「赤」「小さい」「半袖」といったキーワードを抽出するように教える項目です。
3.Responses
実際の応答文言を指定します。複数のパターンを用意することが可能で、より豊かな挙動を設定できます。
4.Fulfillment
データベースとのやりとりなど、外部連携のオンオフを設定できます。
5.Contexts
このIntentの前後にあたる文脈を関係づけることができます。「送り先を聞いたあとに支払い方法を質問する」「支払い方法のやりとりのあとには会員登録への誘導をする」といった設定がここで可能です。
6.Events
通常の会話以外に、このIntentを使う場面を選択できます。「一番最初に呼ばれたとき」「スカイプを使って一番最初に呼ばれたとき」などがあります。
基本的には、この6項目を設定したり、見直したりしていくことでチャットボットの作成をおこないます。Intentを切り分けたりまとめたりすることもあるでしょう。管理画面では、右側にテスト用のカラムが常に表示されていますので、こまめなテストもはかどりますよ。
Fulfillment
Fulfillmentは会話中にチャットボットが使う情報を、自分のサイトのデータベースなどと連携させる機能です。例えばECサイトにあるTシャツ商品のデータベースなどを設定します。実際にチャットボット自体を設置するサイトやサービスとは異なります。
通信はWebhookと呼ばれる技術を用いて行ないます。データベースの側に、 Dialogflowからのリクエストを受け取り、レスポンスを返すよう設定しておく必要があります。お使いの環境に合わせて活用してみてください。
DialogFlowとWebサイトの連携方法
さて、Dialogflowで作成したチャットボットを実際に利用する方法をお伝えします。Dialogflowは大きく2つの利用方法があります。
APIを使う
APIを使いJSON形式でやりとりする方法です。Webサイト側で、ユーザーの文言入力を受け取る場所を用意し、そこから文言をDialogflowに送信、Dialogflowからの応答をサイトで受け取って、ユーザーに表示する、というページを用意します。
文言のやりとりのみを行なうので、サイト上でのデザインやレイアウトなどは完全に自由。Node.js、PHP、Javaほか、様々な環境に向けたライブラリを、公式が配布してくれていますので、現行のサイトでも手軽に導入が可能です。
Integrations(連携機能)を使う
連携しているサービスの多さもDialogflowの魅力の一つです。LINE、Slack、Facebook Messengerをはじめ、様々なサービスでチャットボットを利用することができます。Webサイト用のチャットボットをそのままLINEでも活用することも可能です。
さらに音声認識サービスとの連携も。特に、電話を用いた自動応答は注目です。作成したチャットボットで、そのままユーザーからの電話にも応答できますよ(2020年3月時点でベータ版)。
DialogFlowの料金
料金プランは個人・中小事業向け(Standard Edition)、大規模事業向け(Enterprise Edition)の2つに分けられます。 Standard Editionは基本的に無料です。Enterprise Editionは有料ですが、サポートの拡充や、リクエスト上限の引き上げが受けられます。
Standard Edition | Enterprise Edition(Essentials) | |
テキスト認識 | •無料 •1分に180リクエストまで |
•$0.002/1リクエスト •1分に600リクエストまで |
音声認識 | •無料 •制限は音声認識と同じ |
•通常音声 $4/1,000文字 •WaveNet音声 $16/1,000文字 •制限は音声認識と同じ |
音声出力 | •利用不可 | •〜1,000リクエストまで: 1,000リクエストごとに$1.00 •1,000〜5,000リクエストまで: 1,000リクエストごとに$0.50 •5,000〜20,000リクエストまで: 1,000リクエストごとに$0.25 |
感情分析 | •利用不可 | •〜1,000リクエストまで: 1,000リクエストごとに$1.00 •1,000〜5,000リクエストまで: 1,000リクエストごとに$0.50 •5,000〜20,000リクエストまで: 1,000リクエストごとに$0.25 |
電話(ベータ版) 音声認識・音声出力を含む |
•無料通話:無料 •有料通話:利用不可 •1分にのべ3分、1日にのべ30分、1ヶ月にのべ500分まで |
•無料通話:$0.05/1分 •有料通話:$0.06/1分 •1分にのべ100分まで |
※「有料通話」はユーザーが電話料金を払う番号での通話
ちなみに、Enterprise Editionには、ご紹介した「Essentials」のほか、FAQなどの文章や記事を自動で学習してくれる「Knowledge Connectors」を
無制限に使える「Plus」プランが存在します。ただし現時点では、「Knowledge Connectors」はベータ版、英語のみ対応となっています。気になった方は、Dialogflow公式をチェックしてみてください。
Webサイト以外にも使えるDialogFlow
今回は主にWebサイトに設置する想定でご紹介しましたが、LINEなど様々なサービスでも活用できます。Android端末やGoogle Homeで活用することも可能。オフィスの入り口にGoogle Homeを設置して受付を任せる、といった使い方もできるかもしれません。
AIには学習が必要ですので、最初のうちは返答がぎこちない時もあるかもしれません。トレーニングを繰り返すことで確実に精度が上がってきます。検討の際はAIを育てる時間も含めて検討してみてください。
-
-
-
はてな -
-