Watson Conversation api - 动态响应变量

时间:2017-04-05 12:08:21

标签: ibm-cloud ibm-watson watson watson-conversation

您好我已经使用会话api创建了一个watson服务。

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

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

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

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

2 个答案:

答案 0 :(得分:2)

您可以使用上下文变量来获取用户输入的某些数据,或使用Regex获取准确的数据。

在这种情况下,要使用,您必须在会话API中创建一个流,并且,1,请求数据,并在下一个节点中添加“上下文”以提取用户键入的所有数据。

您也可以使用系统实体,并使用@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,并且您确定为您的应用程序中的用户确定了上下文变量。

enter image description here

请参阅与正则表达式进行对话的一个示例:

enter image description here

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

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

答案 1 :(得分:1)

这些是上下文变量。

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

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

您可以在此处详细了解上下文变量 https://www.ibm.com/watson/developercloud/doc/conversation/dialog-build.html#context-variables