我們正在使用Watson對話構建應用程序,但在處理無效的用戶響應時遇到問題。我們的機器人是爲了使酒店預訂和簡化版本的對話框而設計的:Watson對話 - 處理無效輸入
- 節點1:清除上下文;問「你想要到達什麼日期?」
- 節點2:Trigger @ sys-date;更新日期的上下文;問「你想留多少晚上 」
- 節點3:Trigger @ sys-number;更新 上下文的夜晚數;總結預訂「所以你 到達[日期]對[號碼NIGHTS]」
如果用戶提供合理的答案,那麼所有的作品,但如果他們的入住日期響應「嗒嗒」它因此我們添加了一個新的節點(作爲節點2的兄弟節點),並帶有「anything_else」觸發器並輸出「抱歉,我們想要一個日期,然後再試一次」。
理想情況下,我們希望循環回到我們現有的Node 2,以便觸發器@sys-date可以捕獲用戶修改的響應,但創建了一個無限循環,因此我們將子節點「anything_else」節點2即更新日期的上下文,並詢問「有多少夜晚......」,但現在我們想要在節點3中捕獲對該問題的響應,以便我們可以獲取現有流,從而向節點3添加跳轉。我們最終退出對話分支。
如果我們使用「anything_else」來捕獲無效的用戶輸入,我們如何重新加入現有的對話流?目前我們唯一的解決方案是複製節點2和3,但在真正的對話分支中有更多的節點,因此這種方法不實際。
謝謝。在發佈我的問題之前搜索了幾個星期的解決方案後,我終於明白,在跳躍之前我需要等待用戶回覆,但只能通過在「anything_else」和跳轉之間添加一個額外的「虛擬」節點來實現。帶3個點的氣球解決了這個問題。 –