为复杂输入编写沃森对话?

时间:2017-05-03 12:38:15

标签: javascript python api watson-conversation

我想知道如何在我的对话框中集成一些编码(python或javascript),以避免非常有限的bluemix接口,例如for循环或文本挖掘。

EX:我正在创建一个披萨聊天机器人,我需要能够处理这种请求:

I would like 2 margarita whose one with extra cheese and the other with pepperoni and a regina, with 3 diet cokes and two beers

用bluemix完成它是不可能的。

如果有人有解决方案,我将非常感激。 感谢

1 个答案:

答案 0 :(得分:0)

首先要理解的是Conversation有好的和坏的用例。

如果您的用户可以输入结构化数据,那么最好使用表单。在对话窗口(如Watson Virtual Agent)或您网站/应用中的表单上。

所以你的例子看起来不是一个好的用例。

那说......

使用您的示例,如果您的主要项目是实体,并且您启用了@sys-number系统实体,则可能。然后,您可以检查entities阵列以查看彼此之间的距离。

示例

创建以下实体。

@PizzaType
@PizzaTopping
@Drinks

当我提出您的问题时,entities对象会返回以下内容:

    [
  {
    "entity": "Drinks",
    "location": [
      104,
      114
    ],
    "value": "diet coke",
    "confidence": 1
  },
  {
    "entity": "PizzaType",
    "location": [
      72,
      81
    ],
    "value": "Pepperoni",
    "confidence": 1
  },
  {
    "entity": "Drinks",
    "location": [
      123,
      128
    ],
    "value": "beer",
    "confidence": 1
  },
  {
    "entity": "PizzaType",
    "location": [
      88,
      94
    ],
    "value": "Regina",
    "confidence": 1
  },
  {
    "entity": "PizzaTopping",
    "location": [
      46,
      52
    ],
    "value": "cheese",
    "confidence": 1
  },
  {
    "entity": "PizzaType",
    "location": [
      15,
      24
    ],
    "value": "Margarita",
    "confidence": 1
  },
  {
    "entity": "sys-number",
    "location": [
      13,
      14
    ],
    "value": "2",
    "confidence": 1,
    "metadata": {
      "numeric_value": 2
    }
  },
  {
    "entity": "sys-number",
    "location": [
      31,
      34
    ],
    "value": "1",
    "confidence": 1,
    "metadata": {
      "numeric_value": 1
    }
  },
  {
    "entity": "sys-number",
    "location": [
      101,
      102
    ],
    "value": "3",
    "confidence": 1,
    "metadata": {
      "numeric_value": 3
    }
  },
  {
    "entity": "sys-number",
    "location": [
      119,
      122
    ],
    "value": "2",
    "confidence": 1,
    "metadata": {
      "numeric_value": 2
    }
  }
]

摘要是:

enter image description here

你可以直接看到那里有一些问题。如果用户没有提及号码,您必须考虑到这一点。此问题也会破坏它(除非你满足它)。

I would like margarita pizzas (two).

但重要的是建立具有代表性问题的系统。您的示例问题可能永远不会被最终用户询问,或者您甚至可以调整对话以防止此类输入。