【问题标题】:Watson Conversation: Show user all entitiesWatson 对话:向用户显示所有实体
【发布时间】:2018-02-02 15:07:11
【问题描述】:

在 Watson 对话中。我有一个实体水果

Fruit values:
    -Apple     
    -Orange
    -Banana
    -Kiwi

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

User: "What fruits do you have?"

然后我希望 Watson 做出回应

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

我发现的所有内容都是关于识别用户输入中的实体,例如

User: "Do you have apples?"

Watson 拿起苹果

只是为了澄清,如下所示在上下文变量上以声明方式设置一个包含可能选项的数组对我没有好处,我需要从实体中动态获取它们

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

谢谢!

【问题讨论】:

  • 您的意思是要访问实体的定义方式吗?每个实体值都可以有同义词。你到底需要什么?
  • 一些关于如何访问我一直在收集的“东西”的例子:github.com/IBM-Cloud/watson-conversation-variables
  • @data_henrik 如果我错了,请纠正我,据我了解,同义词应该用于解释用户输入的实体(例如:John 可能是一个实体的同义词value Jonathan,因此如果用户输入“我想和 John 转一圈”,Watson 知道他正在谈论的实体是 Jonathan)。我的需要是专门为用户列出一个实体的每个实例的 values。在这种情况下,在实体 Fruits 中,每个值都有一个实例 [“Apple”、“Banana”、“Orange”、“Kiwi”]

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多