Bot Framework
最近はやりのBot。マイクロソフトもちょっと前にフレームワークを出しましたが、このBotBuilderを使って、まずは標準入出力で簡単に動かせるものを作ってみました。
環境: node ver 4.4.5 / Windows 10
Nodeは下記からダウンロード
https://nodejs.org/en/download/
node-v4.4.5-x64.msi
インストール
npm init
npm install –save botbuilder
npm install –save restify
Botは入力に対して、何かを返すというのが基本ですが、予想していない入力に対しては’?'で返し、ユーザの名前が登録されていないときは名前を尋ね、以後その名前で語りかけるという仕組みをつくったつもりです。
var builder = require('botbuilder'); var dialog = new builder.CommandDialog(); dialog.matches(["Hi", "Hello"], function (session) { if (!session.userData.name) { session.beginDialog('/getname'); } else{ session.send("> Hello, " + session.userData.name + "!"); } }); dialog.matches("How are you", function (session) { session.send("> I'm fine.") }); dialog.matches("bye", function(session){ session.send("> See you.") session.endDialog(); }); dialog.onDefault(function (session) { if(session.userData.name != session.message.text){ session.send("> " + session.message.text + "?"); } }); var bot = new builder.TextBot(); bot.add('/', dialog); bot.add('/getname', [ function(session) { builder.Prompts.text(session, "> What's your name?"); }, function(session, results) { session.userData.name = results.response; session.send('> Hi, ' + session.userData.name); //session.endDialog(); session.beginDialog('/'); } ]); bot.listenStdin();
/getnameセッションが終わると、/に戻るかと思いましたが、そうならないためまたセッションを再度開始しています。
まだ調査不足のところがありますが、とりあえずここまでメモしておきたいと思います。
参考:
http://qiita.com/o0h/items/1a51cd0bbd9c38027388
http://www.atmarkit.co.jp/ait/articles/1604/15/news032_3.html