2017-07-31 11 views
0

私はluisとbotフレームワークで初めてです。今まで私が学んだことは、ルイスによって認識された意図によってダイアログを起動させる方法です。しかし、私はどのようにダイアログ内のルイスにメッセージを送信するのか分からない。私は 'builder.EntityRecognizer.findEntity'メソッドを使用したい。私は確かに私のbuilder.prompts.textは結果として純粋なテキストを与え、LUISによって認識されたこのテキストの意図とエンティティは与えていないと確信しています。しかし、私は 'findEntity'メソッドに必要と思われるluis-jsonオブジェクトを取得するために、どのように私がluisに単一の要求を送ることができるかの解決策を見つけることができません。ボットフレームワークの使用luis - luisへの単一のリクエストの送信方法

bot.dialog('reklamation',[ 
function(session){ 
    session.send('Gerne kümmere ich mich um Ihre Reklamation.'); 
    builder.Prompts.text(session, 'Bitte nennen Sie mir Ihr Anliegen.'); 
}, 
function(session, results){ 
    session.dialogData.reklamation = results.response; 
    session.send('Ich habe Ihre Mitteilung aufgenommen.'); 
    builder.Prompts.text(session, 'Bitte geben Sie mir eine E-Mail-Adresse, unter der wir Ihnen den aktuellen Stand Ihrer Reklamation mitteilen können.'); 
}, 
function(session, results){ 
    var email = builder.EntityRecognizer.findEntity(results.entities, 'email'); 
    session.dialogData.email = email; 
    session.send('Ok! Ich habe folgende Informationen gespeichert:'); 
    session.send('Reklamationsgrund: ' + session.dialogData.reklamation); 
    session.send('E-Mail: ' + session.dialogData.email); 
    session.endDialog('Wir werden uns schnellstmöglich mit Ihnen in Verbindung setzen. Vielen Dank für Ihre Anfrage!'); 
}]).triggerAction({ 
matches: 'reklamation'}); 

私は何か提案を感謝します。

答えて

2

エンティティは、滝の最初のステップで取得されます。意図は基本的にマッチで定義されます。そして、あなたが使用することができます

bot.dialog('reklamation', [ 
    function (session, args, next) { 

builder.EntityRecognizer.findEntity(args.intent.entities, 'email'); 
をだからあなたのコードでは、あなたのLUISアプリが意図「reklamation」

を持っている場合、あなたが最初の関数のシグネチャを更新する必要がトリガされます

あなたが探していることは、手動で滝の最初のステップの後LUISを呼び出すことであれば、あなたが試すことができます:

builder.LuisRecognizer.recognize("your input", modelUrl, (err, intents, entities) { ... } 

詳細については、LUIS Node.js sampleをご覧ください。

+0

これはつまり、私はluisを使ってダイアログ内の新しいメッセージを認識できないということですか? 私の計画は以下の通りです(チャットボット内の短いテキスト例): 私:問題があります! ボット(luisが問題を検出して問題のダイアログを開始します):メールアドレスを教えてください。 私のメールアドレスは[email protected] ボット(エンティティとして[email protected]を認識する必要があります):大丈夫です!私は次のメールアドレスを認識しました: '[email protected]'。あなたの問題を説明してください... ... ... 最後の点は私がルイス認識が必要です。 –

+0

いいえ、私はあなたの質問を誤解している可能性があります。次の2つのオプションがあります:1)手動でluisを呼び出す2)次の 'builder.LuisRecognizer.recognize(actionModel.userInput、modelUrl、(err、intents、entities){ –

+0

}問題はありません。私はちょうど十分に書くのではありませんでしたが、それは私が知りたかったものです。手でルイスに電話するにはどうすればいいですか?ここまで私を助けてくれました。 。少なくとも2週間。:) –

関連する問題