2016-05-25 9 views
2

私はLuisDialogで作業しています。特定の目的のために、私はユーザーからの情報を得るためのウォーターフォールダイアログを持っています。このプロセスでは、LUISを使用してユーザーの文章/応答を解析したいと考えています。滝のダイアログでユーザーの応答からインテントを取得する

luisDialog.on('orderItem', [ 
    function (session, args) { 
    builder.Prompts.text(session, "Please enter your item ID:"); 
    }, 
    function (session, results) { 
    // parse user's response with LUIS 
    // User can text: "1245" or "my item ID is 1245" 
    // Need to get "1245" as item_number which is an entity in LUIS train model 
    } 
]); 

この目的を達成する方法はありますか?

答えて

1

node.jsで直接行う方法があるかどうかわかりません。ただし、LUISにはRESTインターフェイスがあります。これにより、サービスを呼び出してJSONを手作業で処理し、必要なデータを取得することができます。

あなたは

https://api.projectoxford.ai/luis/v1/application?id=applicationid&subscription-key=subscriptionkey&q=my に電話をかけることができますので、アイテムIDは1245選択のあなたのRESTクライアントを使用して

です。必要なデータを抽出するために処理できるJSON応答が返されます。 applicationidとサブスクリプションキーは、ルイスモデルの適切な値に置き換えてください。

+0

はい、そうです。しかし、ボットフレームワークがapi/methodをサポートしているかどうかは不思議です。いずれ良くなるだろう。 –

+0

別のLuisDialogを使って行う以外に、そこにはわからない。考慮すべきもう一つの質問は、あなたがそれを行う必要があるかどうかです。 「あなたの商品IDを入力してください」と尋ねる場合、「私の商品IDは1234」ではなく、単に「1234」という数字を入力すると仮定するのが妥当だと思います。なぜ彼らは余分なタイピングをしますか?あなたが「千二百三十四」に入ることができるようにしたいのでない限り、その場合には、ルイスは使えるでしょう。 –

0

このようにすることができます。

bot.dialog("/schedule", [ 
    (session, args, next)=>{ 
     builder.Prompts.text(session,"When do you prefer new appoitment"); 
    }, 
    (session,results,next)=>{ 
     session.sendTyping(); 
     builder.LuisRecognizer.recognize(results.response,model, (err,intents,entities)=>{ 
       if(err){ 
        console.log("Some error occurred in calling LUIS"); 
       } 
       console.log(intents); 
       console.log("=================="); 
       console.log(entities); 
     }); 

    } 
]); 
+0

LuisRecognizer.recognize()メソッドで認識されるすべてのエンティティを含むオブジェクトをsession.dialogData.myEntitiesという名前の新しい変数に割り当てる方法はありますか?このエンティティをどこかに保存する必要があるので、ダイアログが終了する前に再び滝で使うことができます... –

関連する問題