Loading
BLOG 開発者ブログ

2018年12月10日

【DialogFlow】手軽にチャットボットが作れる!4つの魅力とは?

DialogFlowを使ったサービスを実際に開発して感じた4つの魅力を紹介します。

dialogflow image

この記事は アイソルート Advent Calendar 10日目の記事です。

こんにちは!webソリューショングループのsato.kです。

 

今回は、katsu.tさんの過去記事(乗り遅れるな!Dialogflow(旧API.ai)で作るGoogle Home アプリ開発)でも紹介されたDialogFlowについて、サービス開発を通して感じた魅力について紹介していこうと思います。

 

DialogFlow って何?

DialogFlowは、Googleの提供しているサービスの一つで、難しい部分をほとんど意識せずに
「誰でも簡単にチャットボットが作れる」のが特徴です。
特に、人と会話するようなチャットボット作成に不可欠な自然言語処理を自動で行ってくれます。
そのおかげで複雑な設定をせずとも、人と会話するようなチャットボットが手軽に作成できます。
(日本語の言い回しにはまだまだ弱い部分もありますが…)

 

開発を通して感じたDialogFlowの魅力

実際にDialogFlowを使用したサービス開発を通して感じた、DialogFlowの魅力を紹介します。

 

  • 開発の手軽さと動作までの速さ

GoogleアカウントがあればすぐにでもDialogFlowを利用することができるため、
手軽にテスト用のアカウントを作成し動作の確認をすることができました。
また、チャットアプリの認証情報をDialogFlowに登録するだけで実際にチャットアプリから
ボットにつなぐことができ、スムーズに開発を進めることができました。
※まだ未対応のチャットアプリもあります

 

  • ブラウザ上で開発が行える

簡単な応答を返すようなチャットボットを作成する場合、ブラウザ上のDialogFlowコンソールの中だけで開発が行えるため、
自前サーバーを用意する必要がありませんでした。

 

  • 非エンジニアでも運用が可能

DialogFlowの運用では基本的にコーディングが必要ないため、会話シナリオの新規作成や改善といった部分は
完全に非エンジニアに引きついで運用してもらうことができました。

 

  • 自由度が高い

EntityやContextを適切に使うことで会話の制御を行ったり、Webhookサーバーを開発しDialogFlowからリクエスト流すことでより複雑な会話シナリオを実現させることができました。

 

どんなチャットボットを作るか

上でも挙げたように、DialogFlowでは手軽にチャットボットを作成できるのが魅力の一つですが
一方で、EntityやContextなどのDialogFlowの機能を活用して複雑な会話シナリオを実現したり
Webhookサーバーを開発してより賢い応答を返すチャットボットにすることも可能です。

「シンプルなボットをサクッと作りたい!」から「リッチなボットにしたい!」まで様々なニーズにこたえられるのもDialogFlowの魅力の一つです。

どんな場合にWebhookが必要なのかを簡単に紹介します。

  1. ユーザーの発話に対してあらかじめ設定した応答を返す

    開発対象: DialogFlowのAgent
    例: ユーザー:好きな食べ物は?
    ボット:リンゴが好きです。

  2. ユーザーの発話の一部を利用して応答を返す

    開発対象: DialogFlowのAgent(Entity, Contextを利用) ※
    例: ユーザー:リンゴは好きですか?
    ボット:リンゴは大好きです!

  3. ユーザーの発話を複数利用して応答を返す

    開発対象: DialogFlowのAgent(Entity, Contextを利用)
    例: ボット:苗字は?
    ユーザー:〇〇です。
    ボット:名前は?
    ユーザー:△△です。
    ボット;〇〇△△さんですね!

  4. 外部のAPIを利用して応答を返す

    開発対象: DialogFlowのAgent, Webhook
    例: ボット:苗字は?
    ユーザー: ユーザー:今日の天気は?
    ボット:(wheather apiに問い合わせて)晴れです。

  5.  DBにアクセスして応答を返す

    開発対象: DialogFlowのAgent, Webhook
    例:  ユーザー:商品の在庫は?
    ボット;(DBにアクセスして)残り3個です。

※ Entity, ContextはDialogFlowの機能の一つで、会話の前後関係やユーザーの発話を取得するために利用します。

上げたのは一例ですが、開発になにが必要なのかをある程度把握するためにも
あらかじめどんなチャットボットを作るのかを決めておくとよいと思います。(もちろん後から機能追加することもできます)

 

最後に

誰でも手軽にチャットボットが作成できるDialogFlowの魅力が少しでも伝わったでしょうか?
少しでも興味があるのならまずは一度使ってみるのが良いと思います。
自分の設定したシナリオをボットがしゃべってくれるのは作っていてとても楽しいです。
開発に慣れてきたら、少し複雑な会話に挑戦してみるのもいいでしょう。
この記事を見て少しでもチャットボットやDialogFlowに興味を持ってもらえたら幸いです。

明日はimai.kさんの初めてのSpinnaker 〜継続的デリバリー(CD)の実現〜(第一弾)です。