【问题标题】:Watson Conversation api - Dynamic response variablesWatson Conversation api - 动态响应变量
【发布时间】:2017-04-05 12:08:20
【问题描述】:

您好,我已经使用对话 API 创建了一个 watson 服务。

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

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

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

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

【问题讨论】:

  • 你知道怎么使用上下文变量吗?

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


【解决方案1】:

您可以使用上下文变量来获取用户输入的一些数据或使用正则表达式获取确切的数据。

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

您也可以使用系统实体,并通过@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]+)(.*)') ?>"
  }

【讨论】:

    【解决方案2】:

    这些是上下文变量。

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多