在输出对象中包含附加信息是个好主意吗?

Is including additional information in the output object a good idea?

我正在试验一个对话,我想以几种不同的方式修改输出:

看来我可以添加额外的输出详细信息,使其顺利传递给客户端。例如,在 text...

旁边添加 speech
{
  "output": {
    "speech": {
      "Hi. Please see my website for details."
    },
    "link": "http://www.example.com",
    "text": {
      "Hi. Please see http://www.example.com for details."
    }
  }
}

对于语气,我想知道是否可以制定一个自定义选择策略,不幸的是它似乎将其视为随机选择策略。例如...

{
  "output": {
    "text": {
      "values": [
        "Hello. Please see http://www.example.com for more details.",
        "Hi. Please see http://www.example.com for details."
      ]
    },
    "append": false,
    "selection_policy": "tone"
  }
}

不过我可以向 output 添加一个单独的音调敏感对象,所以这不是什么大问题。

以这种方式向 output 添加内容会有任何问题吗?

您绝对可以使用 output 字段来指定您希望客户端应用程序看到的自定义变量,好处是这些变量不会在多个对话回合中持续存在(如果您将它们添加到context 字段)。

现在目前没有 "easy" 定义自定义选择策略的方法(除了运行时现在支持的随机和顺序)——但你仍然可以 return 一个数组客户端应用程序的可能答案,其中一些属性告诉客户端应用程序要使用哪个选择策略,您将在客户端应用程序中实施此策略。