2017-10-14 41 views
1

說得清用戶說我創造Dialogflow意圖AskForFruitDialogflow:如何限制的動作參數的允許值之一

I want an apple

這裏

蘋果被分配到PARAM fruit

我想將fruit的值限制爲'apple','orange'和'banana'

如果用戶說'桃子',代理將以'請選擇在蘋果,橙子和香蕉之間'

如何限制fruit的價值僅限於這3種水果?

回答

3

有兩件事情你需要:如果沒有

  1. fruit應該被分配到自定義實體類型
  2. 您將需要一個後備意圖(或較低的優先級意圖)來處理輸入一場比賽。

自定義實體

你會選擇右側的Entity菜單項創建自定義實體,然後創建實體。

enter image description here

你會在這個實體可以採取的可能值輸入。如果需要,您還可以爲某些實體添加別名。

enter image description here

當你去創造你的意圖,你要確保輸入的短語強調一個詞,實體類型正確選擇了這個詞。 (而且,正如在評論@Ido筆記,你可能想說的是所需要的參數。)

enter image description here

回退意向

當用戶說的一個,處理的情況下有效的水果。但是無效水果呢?你如何處理這取決於你正在談論的其他事情。

最簡單的解決方案是創建一個回退意圖,如果沒有其他匹配項,這是最後一招的意圖。如果您使用上下文,則可以爲特定上下文創建回退意圖,這是跟蹤您在對話中的位置的好方法。

在任何一種情況下,您都會編輯您的回覆,告訴他們可以選擇哪些有效的成果。

enter image description here

但是,如果你想,如果他們問你不想要的東西很明確迴應,你可以創建一個低優先級的意圖,如果沒有更好的匹配,將匹配。如果您有很多對話部分並且沒有使用上下文(但您應該使用上下文),或者希望爲更常規的消息保留回退意向,則此功能非常有用。

您可以通過單擊意圖名稱旁邊的點來更改意圖的優先級。因此,例如,如果您有一個AskForSomethingElse意圖可以匹配更通用的@ sys.any類型,那麼您可以讓它使用有效類型進行響應。

enter image description here

+0

在你想使您創建所需的實體「askForFruit的意圖,不是嗎? –

+0

好點 - 可能。奇怪的是,在這種情況下,如果你沒有指定一個有效的水果,它會貫穿到'AskForSomethingElse'意圖,所以最終的結果差不多。但這不是很好的做法。我已經更新了答案。謝謝! – Prisoner

+0

酷!謝謝! –