Watson Conversation 中节点内的上下文大小限制

Context size limit inside a node in Watson Conversation

我的 Watson Conversation 机器人通常有一个节点,我可以在其中将一些数据加载到上下文中。这通常包含所有可能的答案、字符串和各种其他数据。

所以我在任何机器人中的第一个节点看起来像这样:

{
  "type": "standard",
  "title": "Load Messages",
  "output": {
    "text": {
      "values": [
        ""
      ],
      "selection_policy": "sequential"
    }
  },
  "context": {
    // A whole bunch of data here
  }
  ...

我可以放多少数据有限制吗?目前我有大约 70 KB,但为了方便 运行 Conversation 中的逻辑,我可能会在那里放几兆字节。 (是的,我知道这整个数据将被发送回客户端,效率不高)

没有记录限制。在 Watson Assistant 出现任何问题之前,您更有可能遇到网络问题。

但是将整个应用程序逻辑存储在上下文对象中被认为是一种反模式。

您的上下文对象应该只存储 Watson Assistant 中需要的内容,然后如果可能只存储对话的相关部分。

对于一次性上下文值,您可以将它们存储在输出对象中。

{
    "context": {
    },
    "output": {
      ...
      "one_time_var": "abc"
    }
}

这将在您下次调用时被丢弃。

如果您有大量可以在不同时间使用的数据,那么可以使用的一种模式是上下文请求对象。

例如:

"context": {
    "request": "name,address,id"
}

来自应用层的下一个响应将发送:

   "context": {
        "name" : "Bob",
        "address": "123 street",
        "id": "1234"
   }

您让返回的响应更新这些变量,然后再次清除上下文变量。如果您有其他需要保留的上下文变量,则将它们存储在一个对象中并仅删除该对象。