Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dialogflow es 实体与后续意图_Dialogflow Es - Fatal编程技术网

Dialogflow es 实体与后续意图

Dialogflow es 实体与后续意图,dialogflow-es,Dialogflow Es,假设我想做一个比萨饼订购代理。要订购比萨饼,我们需要三样东西:尺寸,类型和配料 如果我们想使用后续意图方法而不是使用实体,那么将有很多组合,用户可以在其中提供信息 1:我想要一个比萨饼->无信息 2:我想要小比萨饼->尺寸 3:我想要小奶酪比萨饼->大小和类型 4:我想要小奶酪橄榄比萨->大小、类型和配料 5:我想要一个小比萨饼,上面有橄榄->大小和配料 … 等等 如何解决这个问题? 如果我们有更多的实体(2^n个组合),将有如此多的组合 注1:无法采用实体和慢速填充选项,因为如果我们沿着这条路

假设我想做一个比萨饼订购代理。要订购比萨饼,我们需要三样东西:
尺寸
类型
配料

如果我们想使用后续意图方法而不是使用实体,那么将有很多组合,用户可以在其中提供信息

1:我想要一个比萨饼->无信息
2:我想要小比萨饼->尺寸
3:我想要小奶酪比萨饼->大小和类型
4:我想要小奶酪橄榄比萨->大小、类型和配料
5:我想要一个小比萨饼,上面有橄榄->大小和配料

等等

如何解决这个问题?
如果我们有更多的实体(2^n个组合),将有如此多的组合

注1:无法采用实体和慢速填充选项,因为如果我们沿着这条路走下去,会出现很多问题,如重新提示循环、验证等。
有没有更好的解决办法

注2:如果我们使用实体,将它们标记为必需,并设置提示,然后多次如果它没有从用户那里获得所需的输入,它就会陷入重新提示循环,即它不断要求用户对同一实体进行相同(或随机)提示。在我的用例中,这对用户体验是有害的。如果我们改为使用后续意图,那么我们可以为解决此问题的所有意图设置回退意图。(请注意,这只是用例的示例)


关于我为什么使用跟踪意图,它也解决了我的日期捕获问题。我使用了
@sys.date.recent
并设置了一个回退意图来捕获输入,如
上周、上月等,这是不可能使用插槽的。

首先,记住意图应该反映用户所说的内容,而不一定反映您正在做的事情

从表面上看,不清楚为什么插槽填充(通过实现或使用内置提示)不能满足您的需求。因为您已经指出所有三位信息都是必需的(大小、类型和顶部),所以您可以在短语中标记它们,Dialogflow将提示您输入缺少的信息,直到获得所有信息为止

您几乎肯定不想使用后续意图。当您发送的特定响应总是包含一组非常狭窄的用户回复时,这些响应是好的,但是如果您的操作的响应将提示用户以多种不同的方式回复,则这些响应将非常差


相反,我会使用一个相关的概念:上下文。(至少如果你不打算使用插槽填充)当你问他们想要什么时,设置一个上下文,让你知道他们想要什么。然后有一个或多个意图,将其作为输入上下文,接受用户可能说的各种话。您的webhook应该查看您是否拥有所需的信息,如果没有,则提示他们您还需要什么。最后,提示确认,但他们可能会说一些调整顺序的话。

您能否更新您的问题,说明在这些情况下,您希望对话进行得如何?(也就是说,你什么时候问更多的信息,你希望对话听起来怎么样?)囚犯更新了问题的细节。关于对话,需要对所有参数进行进一步处理,因此我们需要收集所有信息。用户可以按任何顺序给它们。我们应该能够正确收集所有信息。感谢您的响应,插槽填充和内置提示导致验证中出现问题,如果用户没有为插槽提供正确的值,则会卡在重新提示循环中。我指的是问题中有上下文的意图,而不是实际的后续意图。很抱歉给你带来了困惑。