聊天机器人进阶应用概览
在本节中,我们将带您了解 Stella 的编程概念,以便您可以将您的代码应用于任何节点的 Actions 和 Advanced 模式。
Stella 在 JavaScript 上运行
Stella 运行在最新的 JavaScript 版本上。 具体来说 @babel/preset-env 和 @babel/plugin-proposal-async-generator-functions io/docs/en/babel-plugin-proposal-async-generator-functions)。
聊天机器人概念
树状图
要匹配的节点
Stella 会保存一个成员最后进入的节点。那么,当前节点的子节点、当前树的全局节点或通道的全局节点可以是 当成员有另一个输入时要匹配的节点。
为了您的快速参考,子节点是直接连接到当前节点的节点。 全局节点 是树视图上部的节点。 通道全局节点在通道视图中选择。
优先事项
每个匹配的节点将按其 priority 排序,lower 值在前。 然后将执行第一个匹配的节点。 如果最低值的节点超过 1 个,将随机选择一个节点并执行。 节点的默认优先级为“0”。 普通节点的优先级没有上限,可以设置为‘-9’。 优先级小于或等于 -10 的节点称为 静音节点,很快就会包含在文档中。
通用频道
对于新用户,将匹配通道中所有树的头节点,以及通道全局节点。 在通道中选择的任何全局节点都可以跨通道触发。
树节点和通用节点的处理
当一个节点匹配时,有一个自上而下的执行顺序,如下图所示。
您可以参考下表,了解特定组件(高级)在节点中的作用:
参考 | 说明 | 执行顺序 |
---|---|---|
触发器 | 通过计算其触发器来匹配节点。 | 1 |
行动前/行动 | Action 是一个 Promise 函数,可用于逻辑、内部数据库操作和外部 API 调用。它在发送响应之前运行。 | 2 |
回复 | 一个响应对象或一组响应对象可以通过 promise 函数的“resolve”回调来解析。它包含聊天机器人消息。 | 3 |
动作后/动作 | Action 是一个 Promise 函数,可用于逻辑、内部数据库操作和外部 API 调用。它在发送响应后运行。 | 4 |
会员标签 | 当成员通过启用了成员标签的节点时,Stella 将向该成员添加标签。 | 5 |
分析 | 当为成员执行启用了分析的节点时,无论是通过触发器还是重定向,都会记录分析事件。 | 6 |
重定向 | 当一个节点成功执行并且打开了该节点的重定向时,接下来将执行重定向的节点。 | 7 |
"this" 范围、参考和方法
在聊天机器人会话期间,即从 Stella 收到消息事件的那一刻到执行所有后续重定向节点的那一刻,Stella 将在“this”范围内存储临时数据和其他相关功能。 this
中的所有更改都将通过节点和重定向的所有部分。
Stella 有任何高级功能或参考对象的 Reference 文档列表。
参考 | 说明 |
---|---|
消息事件 | 消息事件是平台提供的包含消息信息的对象,可以通过this.messageEvent 访问。 |
节点 | Node是我们数据库中存在的一个对象,里面包含了节点的信息,可以通过this.node 访问。 |
会员 | Member 是我们数据库中存在的一个对象,它包含有关聊天机器人成员的信息,可以通过 this.member 访问。 |
频道 | Channel 是存在于我们数据库中的一个对象,它包含有关聊天机器人频道的信息,可以通过 this.channel 访问。 |
集成 | Integrations 是我们数据库中存在的一个对象,允许用户访问有关 Stella 和可用应用程序之间集成的相关信息,这些信息可以通过 this.integrations 访问。 |
议程元 | Agenda Meta 允许用户将不同的数据传递给节点以供议程使用。用户可以将 this.newAgenda 或 redirectMemberToNode 与 meta 对象一起使用,该对象稍后可以通过 this.agendaMeta 访问。 |
组 | 仅适用于“团队合作”和“WhatsApp”。 Group 是一个对象,包含有关该组的所有信息。这是仅在实时聊天中可用的属性。在实时聊天期间,每当有一些传入或传出消息需要由机器人或树处理时,此属性将添加到“this 对象”中,该对象可以通过“this.group”访问。 |
方法 | 这些是可以通过this 访问的方法。大多数方法都是对数据库的 crud 操作。您可以使用这些方法来执行不同类型的功能,例如设置新议程、发送电子邮件等。 |
Radiate.js | 您可以使用 Radiate.js 在您的网络和网络聊天之间创建不同的交互。 |
第 3 方库 | this 范围内有第三方库。 Node-fetch (this.fetch ) 是一个用于发送 http(s) 请求的库。 Moment (this.moment ) 是一个时间相关逻辑的库。 Lodash (this.lodash ) 是一个可以提高 QoL 的实用程序库。 |
将高级功能应用于聊天机器人
您可以尝试将上述方法和对象应用于您的聊天机器人流程。 按照下面的文档并测试一些功能!