处理聊天机器人的错误
在Stella中,用户可以在Logs中检查后台的聊天机器人性能。所有的信息包括错误和警告都可以显示出来,这使得用户在调试他们的聊天机器人时可以查看和搜索。
在开始之前,我们需要先了解在Stella中构建聊天机器人时关于**节点匹配的基本概念。
一般来说,Stella中的聊天机器人是基于树状结构的,用户通过输入一个节点然后再输入另一个节点来完成对话流程。节点匹配是根据不同的条件,如触发器和优先级,来决定在当前节点进入下一个节点。
通过了解这些基本概念,我们能够看到每个步骤如何反映在**日志中。
Log Session
- 在Log中,通过点击这个符号,你可以查看一个完整的日志会话,也就是一个成员的完整的聊天机器人旅程。
- 在一个Log Session的开始,你可以查看成员的条目。
- 然后,你可以查看该成员的基本信息,以及信息事件。
- 在进入一个聊天工具时,节点匹配的过程是为了找到正确的节点来触发。这些节点在日志中被列在这里。
- 匹配的对话点被列出来。
- Mute Node指的是优先级值为-10的节点,Stella将首先寻找并执行静音节点(如果有的话)。之后,Stella将再次运行Mute Node,并在静音节点之后呈现一个匹配的音符列表。
- Stella将从匹配的节点中选择要执行的对话点。然后,该对话点将展开并被执行。
- 对话点中的组件,如重定向和预反应,将按顺序执行。
- 然后,被执行对话点的响应将通过相应的消息平台(例如WhatsApp)发送给用户。
- 节点中 "response "后面的其他组件,如post-action、analytics和member tagging将在发送响应后执行。最后,所有的信息将被添加回会员资料中(Patched Memebr)。
特殊情况
然而,在某些情况下,Stella的Log可能无法反映错误。在一个对话点中,如果用户在进阶模式下应用async
功能(即预操作、响应、重定向),错误不能显示在日志中。
因此,当你在你的树上应用了async
功能后,你的聊天机器人出现了问题,而日志中没有反映出错误信息,请使用以下方法来识别错误。
包含async
功能的代码示例。
return new Promise(async (resolve, reject) => {
const resp = await this.fetch("https://google.com")
await resp.text()
await resp.text()
resolve()
})
在代码中应用 try...catch
。
return new Promise(async (resolve, reject) => {
try {
const resp = await this.fetch("https://google.com")
await resp.text()
await resp.text()
resolve()
} catch (error) {
reject(error)
}
})
Log的示例结果。