Dialogflow CX页面实现响应文本参数为列表ES用户也可能知道答案

问题描述

我有一个定义为列表的参数。当我在“ {Agent Says””框中引用该参数时,例如quick start guide,我会在Agent响应文本中得到带有括号的列表。

实现响应文本: 那是$session.params.supported_toppings的比萨。

代理模拟器响应: 那是[意大利辣味香肠]披萨。

我到处都是CX和ES的文档,但是在创建Webhook之外,我似乎找不到任何解压缩列表的方法(出于某种原因,我试图避免这样做)。有什么想法吗?

解决方法

我今天检查了引用参数时静态响应的行为,看来我们现在可以显示某个参数的值列表,而响应中没有方括号。

这是以下格式: $ session.params.parameter-name 我曾经在响应中显示列表。测试结果如下。 CX agent isList

此外,对于Dialogflow ES Edition,它受支持。它使用格式 $ parameter-name 返回特定参数的值列表。这是ES代理的示例: ES agent isList

,

检查会话参数引用后,格式应如下:$session.params.parameter-id[i]有关更多信息,请参见此处:https://cloud.google.com/dialogflow/cx/docs/concept/parameter#session-ref

这是我最终完成的一个示例测试:

  1. isList参数 enter image description here
  2. isList参数的条件 enter image description here
  3. 在Dialogflow CX模拟器中测试 enter image description here

根据上面的屏幕截图,引用isList参数的格式有效。

如果您对isList参数有预期的值数量,则可以使用静态响应来实现:https://cloud.google.com/dialogflow/cx/docs/concept/fulfillment#static。您可以根据要返回的参数添加多个响应,如提供的示例所示。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...