2017-10-14 42 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

酷!谢谢! –