チャットボットを作ろう

このチュートリアルでは、オリジナルのチャットボットを作成することを目標にしています。
まずは、簡単なあいさつができるチャットボットを作成しましょう!

このチュートリアルは、「SUNABAを使ってみよう」が完了していることを前提としています。

チャットボットとは?

一般的にチャットボットは、さまざまなスキルの組み合わせで構成されています。

チャットボットを構成するスキルの例。

  • あいさつ
  • 天気検索
  • 知識検索
  • 乗換案内
  • Q&A

xAIML SUNABAでは、これらのスキルに加えてさらに意図解釈機能をチャットボットに持たせることができます。

意図解釈とは、ユーザ発話からユーザが求めているタスクを判定し、そのタスクに必要な情報の抽出を行う技術です。さらに詳しく知りたい場合はこちらをご覧ください。

意図解釈の例(乗換案内)

チャットボットのスキルを考えよう

チャットボットの利用シーンや、対象とするユーザなどの情報をもとに、チャットボットにどのようなスキルを持たせるかを考えましょう。

xAIMLと一般公開されている外部のAPIやスマートフォンアプリなどを連携することで、独自のスキルを作成できます。

まずは動くチャットボットを作りたいという方はこのままチュートリアルを進めましょう。

チャットボットを作成しよう

チャットボットを「スキルコントローラ」と「スキル」の2種類のボットにわけて作成していきます。
それぞれのボットについては後述をご覧ください。

スキルコントローラ

ユーザと直接対話し、ユーザ発話の内容に応じて適切なスキルを呼び出すボットです。
本チュートリアルでは「スキルコントローラボット」とも呼びます。

呼び出すスキルは意図解釈によって適切にコントロールされ、チャットボット開発者は少ないシナリオの記述で、多種多様なユーザ発話にスキルを結びつけることができます。

スキル

チャットボットを構成するスキル群を、スキル単位に分割したボットです。
本チュートリアルでは「スキルボット」とも呼びます。

スキル単位にボットを分割しておくことで、シナリオが複雑になりにくいなどのメリットがあります。

スキルコントローラを作成しよう

チャットボットのスキルをコントロールする、「スキルコントローラ」を作成します。

作成手順

  1. ボット作成画面で任意の名称でボットを作成します。
    (ControllerBotなど、コントローラボットであることがわかる名称がおすすめです)
  2. 作成したボットにスキルコントローラの処理を記述したシナリオ(GreetingSkillController.aiml)を登録します。
  3. 作成したボットのシナリオをコンパイルして転送します。

あいさつスキルを作成しよう

ユーザからの初期発話(init)をトリガーに、時間帯に応じたあいさつを返す、「あいさつスキル」を作成します。

作成手順

  1. ボット作成画面で任意の名称でボットを作成します。
    (GreetingBotなど、あいさつスキルであることがわかる名称がおすすめです)
  2. シナリオ設定画面で「<sraix>による呼び出し」の設定を「project」に変更します。
  3. 作成したボットにあいさつスキルを記述したシナリオ(GreetingSkill.aiml)を登録します。
  4. 作成したボットのシナリオをコンパイルして転送します。

動作確認しよう

Webシナリオテストツールで動作確認します。
(Postmanをご利用になる場合は、Postmanのタブを押下してください)

WebシナリオテストツールPostman
  1. Webシナリオテストツールを起動します。
    シナリオテストツール
    Webシナリオテストツールの使用方法はこちらを参照。
  2. voice textに、「init」を入力し、Sendを押下します。
  3. レスポンスに「おはよう。今日もよろしく。」が設定されていれば成功です。
  1. Postmanからシナリオ対話APIに、以下のJSONを送信します。
  2. レスポンスのsystemTextに時間帯に応じたあいさつが含まれていれば成功です。

さらにスキルを追加しよう

本チュートリアルで作成したチャットボットに、さらにスキルを追加したい方はこちらをご覧ください。