2017-05-05 7 views
0

最近、Node.js SDKを使用したMicrosoft BOTフレームワークを使用したBOTアプリケーションの開発を開始しました。ダイアログ内で一致するインテントがあるかどうかを調べることができるかどうかを知りたい。たとえば、Microsoft BOTフレームワークインテント機械加工

var builder = require('botbuilder'); 
var bot = new builder.UniversalBot(connector); 
var intents = new builder.IntentDialog(); 
bot.dialog('/', intents); 

このインテントは挨拶を確認します。

intents.matchesAny([/^hi/i, /^hello/i], [ 
    function (session) { 
     var displayName = session.message.user.name; 
     var firstName = displayName.substr(0, displayName.indexOf(' ')); 
     session.send('Hello I’m M2C2! How can I help you %s? If you need help just say HELP.', firstName); 
    } 
]); 

このインテントは、チェックカードの残高と一致します。

intents.matchesAny([/^balance/i, /^card balance/i], [ 
    function (session) { 
     session.beginDialog('/check-balance'); 
    } 
]); 

これはチェックバランスのダイアログです。私が知りたい

bot.dialog('/check-balance', [ 
    function (session) { 
     builder.Prompts.text(session, "Sure, I can find the balance for you! May I know the card number that you want to check the balance of?"); 
    }, 
    function (session, results) { 
     if (isNaN(results.response)) { 
      session.send('Invalid card number %s', results.response); 
     } else { 
      session.send('The balance on your %s card is $ 50', results.response); 
     } 
     session.endDialog(); 
    } 
]); 

は、チェックインバランスダイアログ内の一致した意思のいずれかをチェックすることができますかどうかです。ユーザーが無効なカード番号を入力し、コマンドが定義されたインテントのいずれとも一致しないようにして、無効なカード番号の応答を表示できるようにし、一致する場合は一致するインテントを実行します。

+0

"balance"または "hi"でプロンプトに応答すると、対応するダイアログが表示されません。 'Prompts.text()'を使うとき、それはインテントにマッチするべきではありません。しかし、 'triggerAction()'を使用している場合、そのプロパティにマッチするすべての発声は起動します。 –

答えて

0
intents.matches(/^(exit)|(quit)/, [ 
function (session) { 
    session.beginDialog('/exit'); 
}]); 


bot.dialog('/exit',[ 
function(session){ 
    if(session.message.text=='exit'||'quit'){ 
     session.send("Yor are exit"); 
    } else { session.send("you are not exit"); }                
}]) 
+0

この場合は、それぞれの意図をif else文で確認する必要があります。 – Lakmal

関連する問題