Azure Bot Service のNode.js SDK概要
Azure Bot ServiceのNode.js SDKに関するドキュメントを読んだまとめです。
需要が高そうなら、真面目に記事に直します。
基本形
bot.dialog("something", function(session) {"MY_CODE"}).triggerAction({"MY CODE2"});
triggerAction
- そのdialogを着火するためのキーワードを定義する
- matchesで正規表現によるトリガーを定義
- 基本的にはダイアログスタックはクリアされてしまうので、クリアしないようにするにはonSelectAction で実行する際の手続きを定義する。
- args.actionがダイアログのIDを保持している。
- beginDialogでダイアログを入れ替えるが、呼び出すダイアログをハードコードしない。ハードコードしたい場合は beginDialogActionを使用する
beginDialogAcction
- そのダイアログ内で特定のアクションを着火するためのキーワードや着火するDialogを指定する
- dialogArgを利用することで呼び出しダイアログに情報を送ることもできる
reloadAction
- matches で指定した言葉に一致した場合、実行中のDialogが再実行される。
- confirmPromtsで実行するのかを確認できる
replaceDialog
- realoadDialogに似ているが、reloadは同じものが実行されるのに対してReplace Dialog はその場で別のダイアログと置き換えられる
cancelAction
- matchesで指定した言葉にして一致した場合、実行中のDialogをキャンセルする。自動で次のダイアログを実行できないので、ユーザに入力するをうながす
- confirmPromts で実行するかを確認できる。
customAction
- customActionではonSelectActionがすぐに呼ばれる。ダイアログがスタック追加されることはない。即答できるものとかに適してる
考察
- ユーザの入力は現在のDialogから呼び出しもとDialogまで伝搬していく。
- はじめて入力に一致したものが呼び出し対象となる。
session.endConversation
- 会話を終了されるときに使用する
- dialog stack とconversationDataがクリアされる
endConversationAcction
- dialog 内で指定のワードを利用すると会話が終了する
- confirmPrompts: Acctionの実行を確認するときに利用する
cancelDialog(index, "replaces先"
- スタックされているダイアログのインデックスを指定して、指定したいダイアログと置きかえる。
- cancelActionはあくまでも、そのダイアログのみを止めることをにしているがCancelDialogはスタックを遡って、指定したいダイアログの以降すべてキャンセルする事が出来る。
inputHint
- ユーザからマイクでの入力などを促した場合に、マイクが切れているときにその情報を伝えるなど、入力に関するヒントを提示する
expectingHint
- inputHintによってマイクがONなったときなどに、改めて情報を伝える。
Ignoring input
- 入力ダイアログがオフになってり、マイクがオフになったときに、ユーザに入力が無視されることを伝えるためのメッセージh