Ibm cloud Watson对话api-动态响应变量

Ibm cloud Watson对话api-动态响应变量,ibm-cloud,ibm-watson,watson,watson-conversation,Ibm Cloud,Ibm Watson,Watson,Watson Conversation,嗨,我已经用对话api创建了一个watson服务 我已经创建了一个简单聊天应用程序的普通演示。它按预期工作,但我不明白他们是如何在网络调用响应中创建动态变量设置的 这是汽车演示聊天应用程序的最新版本 另外,响应在上下文中设置的变量很少。我不知道怎么做 我搜索了他们的文档,但没有得到任何帮助 这些是上下文变量 对话框是无状态的,这意味着它不保留从一个交换到下一个交换的信息。您的应用程序负责维护任何连续信息。但是,应用程序可以将信息传递给对话框,对话框可以更新上下文信息并将其传递回应用程序 对话框上

嗨,我已经用对话api创建了一个watson服务

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

这是汽车演示聊天应用程序的最新版本

另外,响应在上下文中设置的变量很少。我不知道怎么做


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

这些是上下文变量

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

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


您可以在此处阅读更多有关上下文变量的信息

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

在这种情况下,为了使用,您必须在对话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"
    }
  }
}
第二节点:

{
  "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。”
],
“选择策略”:“顺序”
}
}
}
例如,要在对话和确认中使用此数据,您可以使用$number,并且您必须确保为应用程序中的用户定义了上下文变量,以满足您的需要

请参见与regex对话中的一个示例:

:

Obs:您可以使用regex内部条件或内部上下文变量来提取数据

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

您知道如何使用上下文变量吗?