Dialogflow es 如何从webhook更改ActionComplete的值 我的要求是:

Dialogflow es 如何从webhook更改ActionComplete的值 我的要求是:,dialogflow-es,google-home,api-ai,Dialogflow Es,Google Home,Api Ai,假设我有我有一个意图,那就是要求两件事: 用户:给我看看电脑 bot:请选择以下标准:高性能、低价格、构建质量 用户:高性能 博特:在高性能方面,我有两个品牌,苹果和华硕,你会选择哪一个 你喜欢什么 用户:苹果 机器人:你想如何排序,按发布日期或评级 用户:评级 机器人:这是你们的电脑,按等级分类:imac 2018和macbook pro 2018 用户:uywiuewrw 机器人:这是你们的电脑:imac 2018和macbook pro 2018 用户:kljrtklet 机器人:这是你们

假设我有我有一个意图,那就是要求两件事:

用户:给我看看电脑 bot:请选择以下标准:高性能、低价格、构建质量

用户:高性能 博特:在高性能方面,我有两个品牌,苹果和华硕,你会选择哪一个 你喜欢什么

用户:苹果 机器人:你想如何排序,按发布日期或评级

用户:评级 机器人:这是你们的电脑,按等级分类:imac 2018和macbook pro 2018

用户:uywiuewrw 机器人:这是你们的电脑:imac 2018和macbook pro 2018

用户:kljrtklet 机器人:这是你们的电脑:imac 2018和macbook pro 2018

我需要的是,当用户说“uywiuewrw”时,我需要它掉入后备状态

我有什么代码 我使用slot filling form webhook是因为我需要代表第一个参数从数据库中获取一些数据,然后第二个参数的查询也依赖于第一个参数

根据我的案例,我的意图中有三个输入,但事实上,我的意图中总共有5个动作参数,并且所有参数都标记为必需,因为如果我不将其标记为必需,则在插槽填充期间会忘记该值

为什么我有5个参数: 我有第一个实体有三种可能性(高性能、低价格、建造质量),在选择每种可能性后,我有更多的可能性, 如果用户选择高性能,我需要苹果和华硕,这是第二个实体 如果用户选择低价,我需要询问“100台以下新电脑”或“二手电脑”,这是我的第二个实体 如果用户选择构建质量,我需要询问“工业级”或“军事级” 然后我要求按“发布日期”或“评级”排序,这是我的第五个实体

由于我要求所有参数都是必需的,所以在收集了两个参数后并没有将intent标记为completed,但实际上我只需要填写两个参数,如果是4,我不能将其中任何一个参数标记为可选的,因为它在插槽填充期间忘记了vlue(实际上,在这种情况下,它不会忘记,但在我的实际情况下,在这些参数之后,我还有更多的问题,比如您希望如何排序等)

用例: 实际上,我还有一些常见问题解答,比如“这个聊天机器人做什么”或“你的公司在哪里?”因此,用户可以随时提出这些问题,在完成计算机推荐后,如果用户询问任何常见问题,它会正确回答,因为我正在终止上下文,但是如果用户命令与任何常见问题的意图不匹配,它应该转到回退,在回退中,我随机向他们提供问题示例,如“嘿,我没听清你的问题,你可以问这个,这个,还有这个”


正在寻找帮助

不清楚您的问题到底在哪里,但听起来您可以做一些事情来简化设计:

  • 不要使用时隙填充。因为需要哪些参数取决于之前设置的条件,所以不要尝试使用时隙来找出已经说了什么和没有说什么。参数/时隙最适合于用户可能在一次响应中全部说出来的内容,而不是您期望必须提示他们的内容

  • 使用上下文跟踪他们已经提供的值

  • 在您的webhook逻辑中,您可以使用他们已经说过的值(存储在上下文中)和他们说的值(在当前回复的参数中)的组合来确定下一步要提示他们什么。所有提示都将来自您的webhook,而不是Dialogflow回复

  • 添加一个或多个其他意图,这些意图将处理用户的一般响应,其中的参数包含用户答复时使用的值。应将传入上下文设置为条件,以便在用户答复时触发。您将这些值传输到webhook中的上下文


  • 我知道你要去哪里,但我不确定你的问题是什么或什么不起作用。你能澄清一下吗?我尽了最大努力弄清楚,如果我不使用插槽进行慢速旋转,在问了第一个问题后,它就落在了回退中,因为意图标记为已完成。我必须有一种方法在指定的页面上手动标记意图已完成c条件(当我看到所有参数都完成时),有时我也会面临这样的情况,比如我有10个参数要从用户那里收集,当用户开始给出每个参数时,我转到逻辑并检查这些参数是否足以以正确的答案响应(有时4个足够,有时7个足够),如果是,我只想给出一个答案,并将意图标记为已完成,这样它就不会出现在用户的响应上,而是转到其他匹配的意图或回退,正如我所说的-您将使用上下文存储这些值,您的webhook逻辑可以确定它们何时回答了所有问题。我更新了我的答案,以尝试进一步澄清例如心脏病预测聊天机器人,它询问生命体征,有时5,有时7生命体征就足以预测“是的,你可能有心脏问题”