なんとかするから、なんとかなる

エンジニア関係のことを書きます

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