LoginSignup
11
6

More than 5 years have passed since last update.

Dialogflow チュートリアル | 簡単なチャットボットを作ってみる

Last updated at Posted at 2019-03-24

この記事では、最小限の手順でとりあえず動いているように見えるチャットボットをコーディング無しで作ってみます。この記事を書かれていることを行うと、Dialogflow を少し触ってみることができると思います。

お題は、日時と場所を伝えると天気を教えてくれるBot です。

成果物

このチュートリアルを通してできるチャットボットは以下のようなものです。

https://bot.dialogflow.com/d534cccb-773b-429a-8917-8781b40222d8

作成手順

1. Google アカウントの準備とログイン

Google アカウントを作成し、Dialogflow Console にログインします。

2. Agent の作成

Agent とは Dialogflow 内のプロジェクトの単位になります。公式用語集では以下のように定義されています。

A project that you can create in Dialogflow to handle specific conversational experiences; each agent can have its own intent mappings and corresponding fulfillment and entity definitions. Agents can also handle multiple languages, and have versions (for example, "dev" and "prod").

  1. 画面左上のDialogflow アイコン下にある をクリックし、Create new agent を押します。
    Image from Gyazo

  2. Agent の名前と言語を設定します。ここでは、Agent名をWeather, 言語をJapanese としています。Agent名には日本語は設定できないのようなので、注意します。
    Image from Gyazo

  3. CREATE をクリックして、しばらく待つとAgent が作成されます!

3. Intent の作成

Intent とは、会話を通してユーザーが行いたいタスクの単位になります。例えば、「天気を聞く」や「ホテルを予約する」などでしょうか。公式用語集では以下のように定義されています。

A goal or task that users want to do, such as ordering coffee or finding a piece of music. In Actions on Google, this is represented as a unique identifier and the corresponding user queries that can trigger the intent. When using Dialogflow, this refers to the intent mappings you define in your agent.

  1. 画面左のメニューから Intents をクリック
  2. 画面上部の CREATE INTENT をクリックImage from Gyazo
  3. 画面上部の Intent name に任意の名前を設定し、SAVE をクリック。ここでは、天気 と入れます(日本語でOK)。Image from Gyazo
  4. そのままの画面で、少し下にある Training phrases 欄の ADD TRAINING PHRASES をクリック(上の画像にも表示されています)
  5. テキストボックスが表示されるので、ここでは 今日の島根の天気は? と入力してEnter キーを押します。 Image from Gyazo
  6. テキストボックス欄の下に先程入力した文字が出てきます。そこで、島根 をドラッグして選択すると、このキーワードが何を表しているかを選択するリストが出てくるので、@sys.location を探して、クリックします。 Image from Gyazo
  7. 同様に、今日 に対して、@sys.date を割り当てます。
  8. 5.-7. をフレーズを変えて何度か行います。語尾の を消してみたり、日付を指定してみたり、いろいろやってみましょう。 Image from Gyazo
  9. 画面上のSAVE をクリックします。

4. Response の作成

トレーニングしたフレーズに対して、応答文を作成します。

  1. 先程と同じ画面の下に行くと Responses という欄があるので、ADD RESPONSE をクリックします。 Image from Gyazo
  2. テキストボックスが表示されるので、以下のように入力します。$ がついているものは、変数として扱われ、Bot でユーザーが入力した値が入ります。ユーザーが入力した文章から変数に入れるワードを切り取るのは、先程のトレーニングをもとにDialogflow がやってくれます。例えば、$location には 島根大阪 などが入ります。
    Image from Gyazo

  3. 同様に曇りや雨のパターンも作ってしまいましょう。複数パターンを入れると、この中からランダムに応答文が決められます。

  4. SAVE をクリックします。

  5. 応答文がちゃんと返ってくるかチェックします。画面右上のテキストボックスに、明日の北海道の天気は? などの文を入れてみましょう。先程入力した応答文が返ってきたら成功です。
    Image from Gyazo

5. 不足情報を補完する対話を追加

ここまでの設定では、今日の天気は?兵庫の天気は? など、「場所」と「日付」のどちらかが欠けていると、ちゃんとした応答が返ってきません。ここでは、足りない情報をBot から聞いてくれるような動作を追加します。

  1. 先程と同じ画面内の Action and parameters 欄を開きます。 Image from Gyazo
  2. location, date に対して、REQURED チェックを入れます。
  3. すると、右側に PROMPTS という列が追加されるので、 Define Prompts をクリックします。
  4. テキストボックスに、その情報が欠落していたときに問い合わせる文章を入力します。 Image from Gyazo
  5. date に対しても同様に行います。そして、一旦 SAVEImage from Gyazo
  6. Training phrases で、情報が欠落した場合のトレーニングを何フレーズか行い、 SAVE します。 Image from Gyazo
  7. 画面右側で 今日の天気は? と入力して、問い合わせが返ってきたら成功です。 Image from Gyazo

5. 公開する

ここで作成したAgent を公開してみます。Dialogflow では、Slack や Google Home などを通して簡単に公開する方法がありますが、今回はシンプルにWebページを使った Demo として公開してみます。

  1. 画面左のメニューから Integrations をクリック
  2. Web Demo をクリック Image from Gyazo
  3. ポップアップ上部のスイッチを ON にする Screenshot from Gyazo
  4. ボットのURLが表示されるので、アクセスしてちゃんと動作すれば完了!

このあと

今回は、datelocation など予め準備されているパラメータしか使いませんでしたが、Entity を使用すると開発者側でパラメータの定義を追加することができます。

また、今回はノーコーディングで行い、天気の情報もランダムに返すことしかできませんでしたが、Fulfillment を使って、取得した情報を処理して応答文を作成したりすることもできるみたいです。今回でいうと、DateLocation の情報から実際の天気の情報をどこからか取得する感じでしょうか。

何れにせよ、ここで紹介した機能はごく一部なのでぜひいろいろと触ってみてください。

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6