除了用户的自然语言输入外,客户端应用程序还可以在用户对 Teneo 的请求中包含输入参数。然后,这些输入参数的值可以存储在例如全局变量中,以便流、集成等可以使用它们。

有关客户端应用程序如何与 Teneo 交互的更多详细信息,请参阅部署机器人中的 Teneo 引擎客户端 API 页面

在此示例中,我们将假设来自客户端应用程序的请求可以包含一个名为”折扣参数”的输入参数,我们希望存储在全局变量中。为了存储它,我们需要做两件事:

  1. 创建全局变量以存储输入参数的值。
  2. 填充全局变量。

创建全局变量

若要创建全局变量来存储用户的折扣代码,请按照以下步骤操作:

  1. 打开解决方案窗口中的”解决方案”选项卡。
  2. 在左侧的紫色栏中选择”全局”,然后选择”变量”。
  3. 单击”添加”。用于指定新变量的面板显示在右侧。
  4. 为变量命名: discountCode , 并将其初始值设置为空字符串: ""
  5. 单击”保存”。

由于这是一个全局变量,它可用于任何流,它也可用于分配基于变量的上下文限制

读取输入参数

现在,我们有一个全局变量折扣代码,我们可以用输入参数折扣参数的值填充它。为此,我们需要使用引擎脚本 API,特别是引擎环境类中可用的 getParameter() 方法。存储参数的代码如下所示:

Java

 

1
如果(发动机环境获取参数("折扣参数")=折扣代码=发动机环境获取参数 ("折扣参数"|

此代码将确保仅在找到输入参数时填充全局变量折扣代码,并且如果输入参数不再包含在请求中,则不会清除全局变量。

我们将将此代码存储在全局脚本中。要使用的全局脚本取决于您预期何时接收输入参数。最常见的地方是:

  • 预处理
    在许多情况下,您不会确切地知道输入参数将存在于哪个请求中(可能处于开始,可能处于会话的中间)。或者,输入参数的值可能会在整个会话中更改。在这种情况下,最好将上述代码存储在全局预处理脚本中。在 Teneo 对输入进行任何处理之前,将在每个传入请求上执行预处理脚本。
  • 开始对话
    如果您确定输入参数将包含在第一个请求中,并且在整个会话中不会更改,则可以使用全局Begin 对话框脚本。这稍微效率高一些,因为脚本在会话开始时只执行一次,而不是每个请求。

在此示例中,我们将脚本存储在预处理中:

  1. 打开解决方案窗口中的”解决方案”选项卡(如果您尚未使用)。
  2. 在左侧的紫色栏中选择”全局”,然后选择”脚本”
  • 粘贴脚本:if (engineEnvironment.getParameter('discountParameter')) { discountCode = engineEnvironment.getParameter('discountParameter') }
  • 单击”保存”。
  • 最终结果应看起来像:


    测试输入参数

    input panels

    我们可以通过将输入参数添加到 Teneo 主窗口中的输入面板来模拟输入参数:

    1. 单击右侧的”输入面板”
    2. 添加参数并命名它:discountParameter
    3. 添加参数的值,该值是折扣代码:CyberMon

    要查看全局变量”折扣代码”是否已如预期填充,请打开试用面板并给出任何输入。然后打开”响应信息”面板并检查全局变量。您应该会看到全局变量”折扣代码”填充了”CyberMon”。

    Inspecting global variable 'discountCode'

    Comments are closed.