使用 DirectLine javascript 连接两个机器人
Connecting two bots with DirectLine javascript
这是我的场景:
- Bot A(使用 BotFramework-sdk 为 Javascript(Node.js) 制作)接收音频文件,调用 语音服务 REST API 并从中获取文本。
- Bot B(使用 BotFrameworkComposer 制作)具有 qna 功能。
我需要将 Bot A 设置为 proxy 接收音频附件并请求 Bot B 显示 Bot A.
中的返回答案
我已经设法用直线连接了这两个机器人,我的问题是在对话开始后出现的:在 Bot A 中,我正在使用 REST API 用于发送消息,websocket 用于使用 streamURL.
接收活动
创建 websocket 后,我调用 on message 事件来获取来自 Bot B 的消息,但我需要显示他们使用 await context.sendActivity(MessageFactory.text...
[...]
response = await axios.post(url, null, config);
ws = new WebSocket(response.data.streamUrl);
ws.on('message', function incoming(data) {
[...]
}
提前致谢。
请查看 80.skills-simple-bot-to-bot 示例以获取有关如何连接两个机器人的指导。该示例演示了一个“root bot”(您的 Bot A)调用“skill bot”(您的 Bot B)并在将控制权返回给 root bot 之前执行对话。通过使用 SkillConversationIdFactory
.
在 root 和 skill bot 中维护对话 ID
参考 Implement a skill 文档以获取有关设置和使用技能的更多信息。
这是我的场景:
- Bot A(使用 BotFramework-sdk 为 Javascript(Node.js) 制作)接收音频文件,调用 语音服务 REST API 并从中获取文本。
- Bot B(使用 BotFrameworkComposer 制作)具有 qna 功能。
我需要将 Bot A 设置为 proxy 接收音频附件并请求 Bot B 显示 Bot A.
中的返回答案我已经设法用直线连接了这两个机器人,我的问题是在对话开始后出现的:在 Bot A 中,我正在使用 REST API 用于发送消息,websocket 用于使用 streamURL.
接收活动创建 websocket 后,我调用 on message 事件来获取来自 Bot B 的消息,但我需要显示他们使用 await context.sendActivity(MessageFactory.text...
[...]
response = await axios.post(url, null, config);
ws = new WebSocket(response.data.streamUrl);
ws.on('message', function incoming(data) {
[...]
}
提前致谢。
请查看 80.skills-simple-bot-to-bot 示例以获取有关如何连接两个机器人的指导。该示例演示了一个“root bot”(您的 Bot A)调用“skill bot”(您的 Bot B)并在将控制权返回给 root bot 之前执行对话。通过使用 SkillConversationIdFactory
.
参考 Implement a skill 文档以获取有关设置和使用技能的更多信息。