在不使用 Azure 机器人服务的情况下集成 Microsoft Web Chat

Integrating Microsoft Web Chat without using Azure Bot Service

我目前正在考虑使用 Microsoft Web Chat 与基于 MS Bot Framework Core 构建但使用 DialogFlow 作为 NLU 的现有 Node Js 应用程序进行交互。

当前实现:网页 -> 自定义 UI 小部件 -> 连接到 Node.js 基于 MS Botframework Core 构建的应用程序 -> 查询 DialogFlow NLU 以识别意图 -> Node.js 应用构建对话框 -> 向用户提供响应。

查看 Web Chat 组件,我找不到使用除 Azure Bot Service 之外的任何其他 NLU 的引用。是否必须使用 Azure Bot Service/LUIS NLU 与 Web Chat 集成?

我也看过 offline-directline npm 模块,但该模块的最后一个开发者是 3 年多以前了。

首先,回复一条关于使用 offline-directline 的快速消息,您应该对此感到相当满意。它已经有几年历史了,但似乎经受住了持续使用的时间考验,而且我所听到的问题很少。

另一种选择是使用“browser bot”。在这种情况下,机器人包含在托管页面的 html/scripts 中。因此,不依赖于使用 Direct Line。我不知道你的整个设置,所以这可能符合也可能不符合你的整体需求和架构。

至于将 Web Chat 与 Azure Bot Service 以外的其他东西一起使用,这将是一场艰苦的战斗。从理论上讲,这在某种程度上可能是可以实现的。问题在于网络聊天与 BotFramework-DirectLineJS 库高度集成。您可能能够从 Web Chat 中挑选特定的组件,用您自己的品牌替换 Direct Line 库,并修改剩余的代码以与您的 'service' 一起使用。但是,我不确定这种努力是否值得。这是你必须自己决定的事情。

如果您确实朝这个方向发展,您可能需要配置 'service' 以在与 Web Chat 通信时发送符合 BotFramework 架构的消息。即使不依赖于 Direct Line 来连接到服务,许多 Web Chat 仍然面向传入消息的外观(即 BotFramework Activity)并根据其包含的属性对其进行处理。

首先,您应该查看以下几个方面,以便正确配置您的服务以处理进出网络聊天的入站和出站消息:

  • BotFramework Activity 架构
  • BotFramework Card 架构
  • BotFramework Transcript 架构
  • 网络聊天的 Activity、卡片、附件等 Types - 目前,这些都是松散定义的。我希望这会在未来的某个时候发生变化,这可能会证明是您特定情况下的变化中断。

这并不详尽,需要进行更多的研究,因为除了我上面列出的几个之外,可能还有其他考虑因素。但是,如果您决定使用 offline-directline.

,这可能不是必需的