2017-09-26 18 views
0

我有多個使用triggerAction觸發的對話框。我使用LUIS觸發/匹配特定對話的話語。如何在不觸發Microsoft Bot框架中的新意圖的情況下使用Prompts.text

每一個對話框有兩個步驟(功能):

  1. 如果實體是有效的查詢DB和結束對話,否則提示用戶與Prompts.text()缺少實體之一,並繼續下一步
  2. 集對話框狀態和重複對話框從步驟1 next() *

我的問題是,對於一些提示輸入(即實體值)LUIS將觸發新的無關對話。在這些情況下,對話框堆棧丟失(因爲我使用了triggerAction)並且對話流程中斷。

如何確保提示丟失的實體不會觸發新的對話框?我的談話有缺陷嗎?

我已經有很多訓練有素的話語了。我猜我的LUIS模型「足夠鬆散」,足以匹配多個單詞實體(在提示後輸入)到(短)意圖話語。

*從docs當機器人到達瀑布的末端而沒有結束對話框時,用戶的下一條消息將在瀑布的第一步重新啓動該對話框。

回答

1

您可以使用LuisRecognizer.onEnabled()來禁用您在LUIS調用時處於dialogStack中間,甚至在對話框中間。這將解決您在提示中間被識別的意圖問題。

這是example我使用RegExpRecognizer.onEnabled()IntentRecognizer繼承)實現該方法時寫的。

這是一個answer到我寫的堆棧溢出問題。

+0

Steven,樣本鏈接丟失 –

+0

哎呀,謝謝你指出這一點!已添加鏈接到答案 –

+1

感謝您的回覆,最終我選擇了此解決方案https://stackoverflow.com/a/43351847/6696049 – edo

相關問題