我目前正在採取與微軟Botframework爲NodeJS聊天機器人的第一步。BotFramework:可以結合LUIS意圖和正常意圖嗎?
我到目前爲止看到的「正常」的意圖和LUIS.ai意圖
是否可以將兩者結合起來?
我有一個.onDefault意圖不是一個LUIS和一個LUIS意圖,但不管輸入是什麼,它總是返回LUIS意圖的輸出。
有人能給我一個快速的例子或指向我嗎?
在此先感謝
我目前正在採取與微軟Botframework爲NodeJS聊天機器人的第一步。BotFramework:可以結合LUIS意圖和正常意圖嗎?
我到目前爲止看到的「正常」的意圖和LUIS.ai意圖
是否可以將兩者結合起來?
我有一個.onDefault意圖不是一個LUIS和一個LUIS意圖,但不管輸入是什麼,它總是返回LUIS意圖的輸出。
有人能給我一個快速的例子或指向我嗎?
在此先感謝
可以結合LUIS意圖和正常意圖。爲此,我們將使用兩個IntentRecognizers; LuisRecognizer和RegExpRecognizer。
let pizzaRecognizer = new builder.LuisRecognizer('YOUR-LUIS-MODEL');
let mathRecognizer = new builder.RegExpRecognizer('MathHelp', /(^mathhelp$|^\/mathhelp$)/i);
現在,讓我們創造我們的IntentDialog並配置其options ...
let intents = new builder.IntentDialog({ recognizers: [mathRecognizer, pizzaRecognizer], recognizeOrder: 'series' })
通過我們的pizzaRecognizer和mathRecognizer組合成一個列表,我們可以通過這個名單我們的「識別」屬性,因此IntentDialog用途兩個認識者。我們要去處理的最後一個屬性是'recognitionizerOrder',它的默認值是'parallel'。通過將值更改爲'series',IntentDialog現在將首先觸發我們的RegExpRecognizer'mathRecognizer'。如果存在匹配得分爲1的匹配項,則不會使用LuisRecognizer,從而節省浪費的LUIS端點命中。
我想重申一下,如果您想要使用RegExpRecognizers來加速聊天機器人的響應並減少聊天機器人的LUIS呼叫數量,您需要首先將這些識別器傳遞給您的識別器列表。然後,您需要將recognizerOrder
設置爲'series'
。如果沒有將您的訂單設置爲系列,您的chatbot將繼續執行LUIS呼叫。還要注意,任何匹配的意圖都必須得分1.0以防止其他識別器被僱用。爲了鼓勵完美匹配,您應該使用RegExp量詞^
和$
來定義與您的模式匹配的清晰的開始和結束點。 (例如,請參閱mathRecognizer
)
如果準確性是您的首要任務,那麼您不應該更改'recognizerOrder'
的值,該值將立即使用所有識別器。
我建立了一個示例here供您檢查。我還包括Luis模型,名爲LuisModel.json。
是否真的如簡單的添加識別器到陣列上? 謝謝!這會讓我走。 很愛 – Kyriediculous
你有沒有經過[this](https://github.com/Microsoft/BotBuilder-Samples/tree/master/Node/intelligence-LUIS) –
這與文檔沒有什麼不同。 它也不能解釋爲什麼任何輸入直接到LUIS意圖。 這不是說我的代碼與文檔不同。 – Kyriediculous
bot框架的思想是讓你(一個bot設計者)能夠構建一個bot,而不必處理自然語言輸入的複雜性。出於同樣的原因,您沒有收到文本輸入,而是在Luis識別它之後收到文本輸入的意圖。 –