IBM Chatbot Assistant:处理多个实体

IBM Chatbot Assistant: Handling Multiple Entities

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

both with synonyms filter, oil level indicator

not_defined同义词spare part

only_gear 同义词 valve, seal

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 的上下文变量,从上面的代码行可以看出。例如,当用户说 "I want an offer for a filter and a seal" 时,机器人的输出是以下句子:

您想要以下部分的报价:两者,only_gear。

我不希望机器人提示回实体值的名称 @spare_part,我宁愿它存储确切的输入用户,在我们的例子中是 filterseal。因此,如果机器人按照我的意愿工作,输出将如下所示:

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

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

使用两个上下文变量。 sparepartrequestsparepartrequest_literals 如下:

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

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