【问题标题】:IBM Chatbot Assistant: Handling Multiple EntitiesIBM Chatbot Assistant:处理多个实体
【发布时间】:2018-09-20 12:49:18
【问题描述】:

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

both 同义词 filter油位指示器

not_defined 与同义词spare part

only_gear 与同义词 valveseal

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 的上下文变量,从上面的代码行可以看出。例如,当用户说“我想要一个过滤器和密封件的报价”时,机器人的输出是以下句子:

您想要以下部件的报价:both, only_gear。

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

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

再次,我相信这可以通过 JSON 编辑器来处理。谢谢 !

【问题讨论】:

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


    【解决方案1】:

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

    "sparepartrequest_literals":"&lt;? entities['spare_part'].![literal].join(', ') ?&gt;"

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

    【讨论】:

    • 非常感谢!你怎么知道所有这些东西...... :D 还有一件事。我以后如何参考特定的输入?假设输入是“我想要一个过滤器和一个阀门的报价”。以后当我想称呼“阀门”时,我怎么能引用它?
    猜你喜欢
    • 2019-03-04
    • 1970-01-01
    • 2019-10-02
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-18
    • 2017-03-22
    • 2015-05-05
    相关资源
    最近更新 更多