Watson对话中节点内部的上下文大小限制

时间:2018-08-06 04:37:15

标签: watson-conversation

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

因此,我在任何漫游器中的第一个节点如下:

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

我可以放多少数据有限制吗?目前,我大约有70 KB,但为方便在会话中运行逻辑,我可以在其中放置几MB。 (是的,我知道全部数据都将被发送回客户端,这不是很有效)

1 个答案:

答案 0 :(得分:1)

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

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

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

您可以一次将上下文值存储在输出对象中。

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

这将在您下次通话时丢弃。

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

例如:

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

您在应用层的下一个响应将发送以下消息:

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

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