IBM Chatbot Assistant:处理多个实体

时间:2018-09-20 12:49:18

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

我有一个名为 @spare_part 的实体,该实体具有 4 个值,每个值均带有以下示例同义词:

两者和同义词过滤器油位指示器

未定义,其同义词为备件

only_gear ,其同义词为阀门密封

whole_gear_box ,其同义词为整套齿轮箱

我希望能够处理同一输入中给定的多个实体,并在以后根据需要解决它们。为此,我在JSON编辑器中编写了以下代码:

{
"context": {
"sparepartrequest": "@spare_part.values"
},
"output": {
"generic": [
  {
    "values": [
      {
        "text": "You want an offer for the following parts: <? 
  $sparepartrequest.join(', ') ?>."
      }
    ],
    "response_type": "text",
    "selection_policy": "sequential"
  }
  ]
  }
  }

我已经创建了一个名为 sparepartrequest 的上下文变量,如上面的代码行所示。例如,当用户说“我要过滤器和密封件的要约”时,该漫游器的输出为以下句子:

您要提供以下零件的报价:only_gear。

我不希望机器人提示输入实体 @spare_part 的值的名称,而是希望它存储用户的确切输入,对于我们来说,这是过滤器密封。因此,如果该机器人按照我的意愿工作,则输出将如下所示:

您需要以下零件的报价:过滤器,阀门。

同样,我相信可以使用JSON编辑器来处理。谢谢 !

1 个答案:

答案 0 :(得分:3)

使用两个上下文变量。 sparepartrequest (已完成)和 sparepartrequest_literals 如下:

"sparepartrequest_literals":"<? entities['spare_part'].![literal].join(', ') ?>"

然后,在您的文本响应中,用$sparepartrequest_literals进行调用以打印出提到的部分,或使用$sparepartrequest来引用检测到的值。