簡體   English   中英

Watson Assistant Slots:如何允許用戶使用非字典實體重新輸入數據?

[英]Watson Assistant Slots: how to allow the user to re-enter data using non-dictionary entities?

我想從用戶那里捕獲以下輸入並使用這些實體:

  • 名字和姓氏:使用 sys-person(我稍后使用雲操作提取名字和姓氏)。
  • Email 地址:使用模式實體,名稱@contactEmail 和值“電子郵件”模式\b[A-Za-z0-9._%+-]+@([A-Za-z0-9-]+.)+[ A-Za-z]{2,}\b
  • 手機號碼:使用模式實體,名稱@contactPhone 和值“mobileNumber”模式^[1-9][0-9]{7}[0-9]+$

插槽

我創建了一個帶插槽的節點:

插槽

設置如下:

檢查:

  • 檢查:@sys-person.literal 將其另存為 $person 如果不存在:輸入您的姓名
  • 檢查:@contactEmail.literal 將其另存為 $email 如果不存在:輸入您的 email
  • 檢查:@contactPhone.literal 將其另存為 $contactPhone 如果不存在:輸入您的手機。

這一切都很完美,我得到了名字,email 地址和電話號碼。

挑戰但我希望用戶能夠確認詳細信息是正確的。 所以我有一個名為#response_yes 的意圖,它由“yes”、“yep”等內容激活。

我有第四個插槽來檢查#response_yes。

  • 檢查#response_yes,將值存儲在 $confirmed 中,如果不存在,請詢問“Got $person, $contactEmail, $contactPhone 是否正確?”

確認

如果未找到#response_yes,則顯示已輸入的值並詢問它們是否正確並等待用戶輸入。

用戶響應后,如果仍然沒有找到 #reponse_yes 意圖,則:

重新開始

回復“讓我們重新開始吧”。 此外,我們需要清除已經輸入的值:

清除值

這是出錯的地方當我嘗試聊天機器人時,節點正確收集輸入並正確顯示值並詢問它們是否正確。 我輸入“no”,#response_no 意圖被正確預測,我希望第一個插槽的提示再次顯示,但事實並非如此。

問題

無論我此時輸入什么,助手都會繞過前三個位置並再次下降到第四個位置。 就好像我需要清除實體,而不是變量。

我究竟做錯了什么? 如何使頂部插槽再次工作?!

啊啊啊。

對於任何感興趣的人,我只是沒有將值重置為 null。

我想我假設將值留空與 null 相同。 不是這樣。 一旦我這樣做了,系統就會完美運行:

將值設置為空!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM