首页 > 解决方案 > 在 Watson Assistant 和 Node RED 中使用槽

问题描述

我正在使用 Watson Assistant 和 Node RED 在 Telegram 上构建一个聊天机器人。我需要从用户那里获取一个日期和时间来进行预约,所以我使用了一个需要插入这两个信息的插槽。使用 Watson 提供的试用聊天机器人,我对 slot 没有任何问题;但是使用 Node RED,我只能输入日期。通过debug,看到输入日期后,再运行第一个slot后,返回这个错误“msg.payload.content is empty”。此外,查看助手返回的输出消息正文,msg.payload.output.generic 字段为空。另一方面,它应该包含请求在输入日期后也插入时间的助手的响应。机器人似乎卡在输入日期,但实际上我不这么认为,

可能是什么问题呢?

标签: ibm-cloudtelegram-botnode-redwatson-assistantslots

解决方案


Assistant V1 和 V2 都没有设置或查看msg.payload.content。他们在输入时查看msg.payload并在退出时将来自 Watson Assistant 的响应分配给msg.payload.

如果您收到“msg.payload.content”是空错误,那么这将发生在您的流程中的某个地方。最有可能在您尝试处理响应的最后。如果 msg.payload.content 为空,则助手对话框不会返回任何输出。这很奇怪,因为它应该返回当前空槽的提示。

msg.payload看起来像什么?

您使用的是 V1 还是 V2 节点,您使用的是哪个版本的 node-red-node-watson 节点?你可以通过调色板来判断。

但是,V1 和 V2 节点都已使用插槽进行了测试,并且响应确实以msg.payload.content. 当前发布的 node-red-node-watson 版本是 0.9.0。


推荐阅读