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