スロットフィリングで予約受付ボットを実現|Watson Assistant でAIチャットボットを 作ってみた(第6弾)

AI

Watson Assistant(ワトソンアシスタント)でAIチャットボットを作ってみた(第6弾)として、予約の受付をするチャットボットをスロット・フィリングという機能を利用して作成してみようと思います。

スロット・フィリングってなんだ

スロット・フィリングというのは、対話をしながらお客さんの情報を聞いてその情報(スロット)が全て出揃ったら(フィリング)、処理をするというものです。

例えば、レストランの予約でいくと、「名前は?」「人数は?」「日時は?」「コースは?」といったものを聞いて、それらの情報が揃ったら予約の受付をするという感じです。

さて今回は、ライブチケットの予約を受け付けるチャットボットという設定で作成してみます。

会話の流れとしては以下のような感じになります。

予約したい「バンド名」「日時」「人数」の情報が揃うまで聞き返して、最後に確認するという流れです。

まずは、インテントの作成です。#LIVE_ReservationというIntent(インテント)を用意し、何種類かの文章を登録します。

「人数」と「バンド名」が入っているパターン、「日時」と「バンド名」が入っているパターンなどを登録しました。それぞれ足りないスロット(情報)については、聞き返しをするようにします。

例えば、一番下の文章の場合、「日時」と「バンド名」が入っているけど、「人数」が情報として足りないので、「人数は何名ですか」と聞いて情報を全て埋めるようにするわけです。

ちなみに、さらっと、登録した文章の中に@sys-numberとか@sys-dateなど入っていますが、これはシステムエンティティ(デフォルトの辞書)ですね。ユーザーの発話の中に、「11月1日」等が入っていれば、日時だと認識してくれます。それと、@BANDは、バンド名を登録してあるEntity(エンティティ)です。

(エンティティについては、Watson AssistantでAIチャットボットを作ってみた第3弾をご覧ください。)

それでは、Dialog(ダイアログ)の画面で、スロット・フィリングの設定を行なっていきます。

スロット機能オン!

まず、「ライブ予約サンプル」というノードを作成して、エディット画面を開きます。右上の方に、<Customize>というリンクがあるのでクリックします。

すると以下のような画面が立ち上がります。

<Slots>という項目のトグルスイッチをONにします。

これで、スロットフィリングの設定項目がエディット画面に現れます。

え?Promptなんたらってなに? まあこれはそんなに気にしなくていいです。

え? 知りたい?

分かりました。簡単にご説明致しましょう。ひとことで言うと、デフォルトでは足りない情報を、一つずつ聞いていくのですが、それだとめんどくさいよって時にこれをオンにすると、いっぺんに全ての情報を聞くことができます。

ひとことやないやんけってつっこまんといてください。

ちなみに

「ライブのチケットの予約ですね。バンド名とライブの日程と人数を教えてください。」

こんなかんじでいっぺんに聞くわけです。これは適材適所で使うといいかもしれないですね。

こちらが先ほどのトグルスイッチをオンにした後のエディット画面です。

これは表にすると分かりやすい

Check forSave it asIf not present, ask
@BAND$BANDどちらのバンドのチケットを予約しますか?

入力文中に「@BAND」が含まれているかチェーックして<Check for>、あれば変数「$BAND」に代入して<Save it as>、なければ、「どちらのバンドのチケットを予約しますか?」と聞く<If not present, ask>。と言う感じです。

そして全てのスロット(情報)がそろったら、上記の図のような感じで、予約受付内容を確認します。それぞれの変数のところは実際にお客さんが予約した内容(バンド名、日時、人数)が入ります。

実際にどんな感じかテスト画面で試してみました。

うまくいきました。最初は、バンド名だけしか入っていないので、日時と、人数を順番に聞いていますね。そして最後に確認もできています。

すばらしい!

実用レベルにするには予約システムとの連携が必要

実際にこれを商用で使うためには、予約システム、例えば映画館の空席状況や歯医者さんの予約状況のデータなどとリアルタイムに連携する必要がありますね。

ただ仕組みを作ってしまえば、結構便利なツールになりそうです。

予約受付だけでなくコース料理の内容などの質問に答えてくれたりといった問い合わせ対応も組み合わせれば、かなりの業務負荷軽減に繋がるんじゃないでしょうか。

最後に

それでは、6回に渡ってWatson Assistantを使ってチャットボットを作成する流れを記事にしてきました。

本当は80年代HR/HM好きのチャットボットACOのイラストも作成してWEB APPにでもして完成させたいのですが、それはまたの機会に。

最後に感想としてですが、システム的にはさすがIBMさん、よくできているなと思いました。

一つ気になったのは、あまりコーパスを登録していないせいもあり、ちょっと違う言い回しにしてしまうと回答できなくなってしまうことが多い点ですね。学習させる手間がもう少し減らせればいいのですが、これからの進化に期待です。

コメント

タイトルとURLをコピーしました