Watson Conversation:向用户显示所有实体

时间:2018-02-02 15:07:12

标签: ibm-watson spring-el watson-conversation

在沃森的谈话中。我有一个实体水果

Fruit values:
    -Apple     
    -Orange
    -Banana
    -Kiwi

我想创建一个新对话框,其中用户的意图是获取特定实体的所有值的列表,在这种情况下是所有水果的列表,。所以谈话应该去:

User: "What fruits do you have?"

然后我想让沃森回应

Watson: "The fruits we got in store are: Apple, Orange, Banana, Kiwi"

我找到的所有内容都是识别用户输入中的实体,例如

User: "Do you have apples?"

Watson选择 Apples

只是为了澄清,如上所示在上下文变量上声明性地设置一个带有可能选项的数组对我来说没有用,我需要从实体动态获取它们

{
  "context": {
    "fruits": [
      "lemon",
      "orange",
      "apple"
    ]
  },
  "output": {
    "text": {
      "values": [
        "This is the array: <? $fruits.join(', ') ?>"
      ],
      "selection_policy": "sequential"
    }
  }
}

Thankss!

1 个答案:

答案 0 :(得分:1)

AFAIK无法从对话框中直接访问工作区元数据。您可以访问使用意图,实体和上下文变量检测到的内容。但是,我看到你有两个选择:

  1. 使用驱动聊天的应用程序即时访问实体定义,然后创建一个上下文变量,在其中提供实体选择。 API to list entities可以在任何编程语言中使用,并且有SDK。
  2. 使用相对较新的功能,您可以invoke server or client actions from within a dialog node,即进行程序化调用。使用上面提到的API和API来获取实体值列表。