DialogFlow CX 不允许在条目填写中引用表单参数?

DialogFlow CX not allowing to reference form parameters in entry fulfillment?

我有一个名为 shirt_order 的页面,其中包含两个参数 shirt_size 和 shirt_color。

作为此页面的条目实现,如果机器人还不知道 shirt_size 和 shirt_color 来自用户之前的话语。如果机器人已经从用户之前的话语中知道 shirt_size 和 shirt_color(即机器人将它们作为意图参数接收),机器人应该说“好的,让我们订购一件衬衫......幸运的是我已经有了订单所需的所有输入。

所以我的计划是在shirt_order页面的entry fulfillment中输入条件响应。在这种情况下,我想检查带有两个表单参数的表单是否已经填写如下:

if $page.params.status = "FINAL" ... I first need to have some inputs form you... else ... I already have all inputs... endif

但是条件$page.params.status = "FINAL"好像总是假的?!?! $page.params.shirt_size.status = "UPDATED" 也一样。然后我尝试在条目履行中只输出文本 $page.params.shirt_size 但该参数从未被填充。

所以我感觉在某个页面的entry fulfillment中是不能引用同一个页面的表单参数的,因为在all entry fulfillment的时候表单参数还不存在。这是真的吗?这将是 Google 的相当薄弱的设计,对吧?

谢谢!

请注意,您只能使用 form status references in a condition requirement of a condition route

对于您的用例,除了使用 $page.params.status 或 $page.params.parameter_name,您还可以使用 $session.params.parameter_name 为您的条目履行创建条件响应:

if $session.params.shirt_color = null OR $session.params.shirt_size = null
   OK, let's order a shirt. But first I need to have some info from you
else
   OK, let's order a shirt... and luckily I already have all inputs that I need for the order
endif

结果如下: