在同一级别触发 Parent 或 Intent

Triggering Parent or Intents at same level

我尝试搜索解决方案并在这个问题上停留了几天。我正在使用 actions-on-google (nodeJS) 和 dialogflow 制作聊天机器人

这是一个序列:

1. Choose between food and drinks
2. If food:
----------- does it have to be gluten free?
----------- does it have to vegeterian
----------- Confirm order
----------- Would you like a drink with it?
----------- If yes, go to drink intent and pass food params too. (This is the step I am basically stuck at)
3. If drink,
----------- If coming from food, add it to order
----------- which drink?
----------- confirm order
4. Order placed successfully.

我无法从跟进转移到主要意图。有办法吗? conv.followup 仅适用于儿童跟进。

意图代表用户所说或所做的事情,而不是您如何回应他们所说的内容。所以在这种情况下,说你想要 "trigger" drink Intent 是没有意义的。

相反,您会询问他们是否想喝一杯,如果他们说 "yes",您会提示他们要他们想要的饮料。同样,如果他们只是预先说他们想喝一杯,您会提示他们选择饮料。这是两个不同的 Intent,但它们得到相同的响应,然后继续沿着相同的路径前进。

您不能"pass parameters"您可能想的那样,但是您可以将值存储在上下文的参数中(或者在会话存储中,如果你正在开发一个动作)。一种好的技术是构建订单并将其存储在 Context 中,然后当您完成所有操作后,从 Context 中获取值以确认并下订单。

上下文也常用于选择处理答案的范围 - 具有输入上下文的意图需要设置上下文才能被触发。 Followup Intents 使用它来限制 Intent 何时生效,因此您可以在 Fulfillment 期间自行设置该 Context。

(您也不需要使用 Followup Intent Contexts - 您可以使用您自己管理的 Contexts 来处理这个问题。)