2017-05-05 2 views
0

Ich begann vor kurzem mit der Entwicklung einer BOT-Anwendung mit Microsoft BOT-Framework mit Node.js SDK. Ich möchte wissen, ob es möglich ist, in einem Dialog nach einer passenden Absicht zu suchen. Zum Beispiel:Microsoft BOT-Framework Intents Maching

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

Diese Absicht wird nach Begrüßungen suchen.

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); 
    } 
]); 

Diese Absicht wird für Scheckkartenguthaben übereinstimmen.

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

Und das ist der Dialog für 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(); 
    } 
]); 

, was ich wissen will, ist, ob es möglich, für jeden der passende Absicht innerhalb des Check-Balance Dialog zu überprüfen. Nehmen wir an, der Benutzer gibt eine ungültige Kartennummer ein und ich möchte sicherstellen, dass der Befehl nicht mit einer der definierten Absichten übereinstimmt, sodass ich die ungültige Kartennummerantwort sicher anzeigen kann und bei Übereinstimmung die übereinstimmende Absicht ausführen kann.

+0

Die Eingabeaufforderung mit "balance" oder "hi" löst ihre entsprechenden Dialoge nicht aus. Bei Verwendung von 'Prompts.text()' sollte nicht versucht werden, Absichten zu entsprechen. Wenn Sie 'triggerAction()' verwenden, werden jedoch alle Äußerungen ausgelöst, die der Eigenschaft "" entsprechen "" entsprechen. –

Antwort

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

Also in diesem Fall muss ich für jede Absicht mit einer Reihe von if else Aussagen überprüfen. – Lakmal