我的Watson Conversation机器人通常有一个节点,我将一些数据加载到上下文中。这通常包含所有可能的答案,字符串和各种其他数据。
因此,我在任何漫游器中的第一个节点如下:
{
"type": "standard",
"title": "Load Messages",
"output": {
"text": {
"values": [
""
],
"selection_policy": "sequential"
}
},
"context": {
// A whole bunch of data here
}
...
我可以放多少数据有限制吗?目前,我大约有70 KB,但为方便在会话中运行逻辑,我可以在其中放置几MB。 (是的,我知道全部数据都将被发送回客户端,这不是很有效)
答案 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"
}
您的返回响应将更新这些变量,然后再次清除上下文变量。如果还有其他上下文变量需要保留,则将其存储在一个对象中并仅擦除该对象。