Watson Conversation api - 动态响应变量

Watson Conversation api - Dynamic response variables

您好,我已经通过对话 api 创建了一个 watson 服务。

我已经创建了简单聊天应用程序的普通演示。它按预期工作,但我不明白他们是如何在网络调用的响应中创建动态变量设置的。

这是汽车演示聊天应用程序link

P.s 响应在上下文中设置的变量很少。我不知道该怎么做。

我已经搜索了它们的文档,但没有任何帮助。

这些是上下文变量。

该对话是无状态的,这意味着它不会保留从一个交换到下一个交换的信息。您的应用程序负责维护任何持续信息。但是,应用程序可以将信息传递给对话框,对话框可以更新上下文信息并将其传递回应用程序。

对话框上下文是在对话框和您的应用程序代码之间传递信息的机制。

您可以在此处 https://www.ibm.com/watson/developercloud/doc/conversation/dialog-build.html#context-variables

阅读有关 上下文变量 的更多信息

您可以使用上下文变量获取用户键入的一些数据或使用 Regex 获取准确的数据。

在这种情况下,为了使用,您必须在对话 API 中创建一个流,并且,首先,请求数据,然后在下一个节点中,添加 "context" 用于提取用户输入的所有数据。

您也可以使用系统实体,并使用@nameOfyourEntitie 获取数据。

第一个节点:

{
  "output": {
    "text": {
      "values": [
        "Please, type your number."
      ],
      "selection_policy": "sequential"
    }
  }
}

第二个节点:

{
  "context": {
    "number": "<? input.text ?>"
  },
  "output": {
    "text": {
      "values": [
        "The number is $number."
      ],
      "selection_policy": "sequential"
    }
  }
}

要在对话中使用此数据并确认,例如,您可以使用 $number,并且您确定在您的应用程序中为用户定义了上下文变量以满足您的需要。

查看一个使用正则表达式进行对话的示例:

:

Obs.: 您可以在条件或上下文变量中使用正则表达式来提取数据。

  {
  "context": {
    "number":  "<? input.text.extract('^([0-9]+)(.*)') ?>"
  }