简介
node-red-contrib-iboost-conversation 是一个用于 Node-RED 的 npm 包,它提供了一系列节点,便于用户从 Node-RED 中轻松地集成和使用 IBoost 人工智能对话服务。IBoost 人工智能对话服务是基于 AI 技术的自然语言理解和文本智能处理服务,通过该服务,用户可以快速构建和部署自己的智能对话机器人。本篇文章将介绍该 npm 包的使用方法和示例代码。
安装
使用 npm 安装:
npm install node-red-contrib-iboost-conversation
或者在 Node-RED 交互式编辑器的 palette 中直接搜索并安装。
使用
使用 node-red-contrib-iboost-conversation 前,首先需要注册 IBoost 账号,并且创建一个对话机器人。具体的注册流程和操作说明可以参考官网的文档。创建好对话机器人之后,就可以开始使用该 npm 包来集成该机器人了。
设置
在 Node-RED 的工作区中,双击添加一个 iBoost Conversation Config 节点。该节点用于配置对话机器人的参数,如下图所示:
该节点的配置参数如下:
- 账户 ID:IBoost 账户 ID。
- API Key:IBoost API Key。
- Secret Key:IBoost Secret Key。
关于如何获取该参数,可以参考 IBoost 官网的文档。
对话
在 Node-RED 的工作区中,可以使用 iBoost Conversation Node 节点来实现与 IBoost 对话机器人的交互。该节点有两个模式:发送模式和接收模式,分别对应用户向机器人发送消息和机器人向用户返回消息。
发送模式
在发送模式下,用户可以向机器人发送消息,节点将返回机器人返回的结果。如下图所示:
该节点的配置参数如下:
- 设备 ID:iBoost 设备 ID。
- 会话 ID:用户会话 ID。
- 请求消息:用户发送的消息。
这里需要注意的是,发送消息时,需要提供对话机器人所需的相应参数。其中,设备 ID 用于标识设备唯一性,并维持用户和机器人之间的交互状态;会话 ID 表示用户的一个唯一会话编号,可以通过判断相同会话 ID 下前后发送的“卡片编号”等信息来确定会话状态,提高多轮上下文理解能力。
接收模式
在接收模式下,机器人会向用户发送指定的信息。如下图所示:
该节点的配置参数如下:
- 设备 ID:iBoost 设备 ID。
- 会话 ID:用户会话 ID。
- 卡片编号:机器人返回的“卡片编号”,从而能够匹配相应的响应模板。
- 语言:用户当前使用的语言。如“cn”表示中文。
需要注意的是,接收模式下,需要由机器人创建一个该节点所需的 payload 对象,并通过 MQTT 协议推送到设备上,方能触发该节点的执行。因此,需要通过相关的接口或代码实现 IBoost 对话机器人和设备之间的通信。
示例代码
发送模式
[{"id":"456223ae.068fb8","type":"ib-conv-send","z":"a3b5a890.276f5","name":"","accountId":"e2502b94-xxxx-xxxx-xxxx-xxxxxxxxc1dc","apiKey":"cb60fd33-xxxx-xxxx-xxxx-xxxxxxxx6174","secretKey":"da42fd29-xxxx-xxxx-xxxx-xxxxxxxx4b75","deviceId":"135","sessionId":"bob123","request":"hello world","x":780,"y":200,"wires":[["e02e727a.4ebf8"]]},{"id":"e02e727a.4ebf8","type":"debug","z":"a3b5a890.276f5","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":990,"y":200,"wires":[]}]
接收模式
[{"id":"5f5f5b5a.908994","type":"ib-conv-receive","z":"a3b5a890.276f5","name":"","accountId":"e2502b94-xxxx-xxxx-xxxx-xxxxxxxxc1dc","apiKey":"cb60fd33-xxxx-xxxx-xxxx-xxxxxxxx6174","secretKey":"da42fd29-xxxx-xxxx-xxxx-xxxxxxxx4b75","deviceId":"135","sessionId":"bob123","msg-cardnumber":"1001","msg-lang":"cn","x":780,"y":320,"wires":[["e02e727a.4ebf8"]]},{"id":"e02e727a.4ebf8","type":"debug","z":"a3b5a890.276f5","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":990,"y":320,"wires":[]}]
总结
通过 node-red-contrib-iboost-conversation 包,用户可以轻松地将 IBoost 人工智能对话服务集成到 Node-RED 平台中,并构建出自己的机器人。同时,用户可以通过本篇文章所述的方式,按需定制和扩展该服务,从而满足更加复杂的应用场景。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005592181e8991b448d694d