此存储库包含 Bot Framework Web 聊天组件的代码。 Bot Framework Web 聊天组件是 Bot Framework v4 SDK 的高度可定制的基于 Web 的客户端。 Bot Framework SDK v4 使开发人员能够对对话进行建模并构建复杂的机器人应用程序。
该存储库是 Microsoft Bot Framework 的一部分,这是一个用于构建企业级对话式 AI 体验的综合框架。
Web 聊天支持内容安全策略 (CSP)。建议 Web 开发人员启用 CSP 以提高安全性并保护对话。您可以在本文中阅读有关 CSP 的更多信息。
本节指出重要的版本注释。有关更多信息,请参阅相关链接并查看
CHANGELOG.md
注意:建议 Web 开发人员使用~
(波形符范围)来选择次要版本,其中包含新功能和/或修复。使用^
(插入符号范围)选择主要版本,其中可能包含重大更改。
在此版本中,我们专注于性能改进,包括内存和加载时间优化。
机器人现在可以直播他们的回答。在 Bot Framework SDK 支持此功能之前,机器人作者可以按照 LIVESTREAMING.md 中的详细信息构建直播响应。
Web Chat 现在与 CommonJS(命名和未命名导出)一起导出为 ES 模块(命名导出)。
最终用户现在可以在将文件上传到机器人之前添加消息并确认。要选择退出新体验,请在样式选项中传递sendAttachmentOn: 'send'
。
我们很高兴添加主题包支持。开发人员现在可以将所有自定义打包到一个包中并将其发布到 NPM。
我们很高兴地宣布 Fluent UI 主题包正在开发中,目前处于实验阶段。该主题包专为希望为客户带来原生 Copilot 用户体验的 Web 开发人员而设计。
我们将继续添加新功能,并以同等水平支持白标体验和 Fluent UI 体验。
您可以使用
封装 Web Chat 来尝试新体验。
import ReactWebChat from 'botframework-webchat' ;
import { FluentThemeProvider } from 'botframework-webchat-fluent-theme' ;
export default function MyComponent ( ) {
return (
< FluentThemeProvider >
< ReactWebChat / >
< / FluentThemeProvider >
) ;
}
Web Chat 现在将在 Markdown 中呈现 HTML。我们已经将我们的清理程序和辅助功能修复程序移植到 HTML 级别。 Markdown 和 HTML-in-Markdown 都将受到相同的处理,并满足我们的安全性和可访问性要求。
您可以通过将styleOptions.markdownRenderHTML
设置为false
来关闭此选项。
Web Chat 现在支持高达 1.6 的自适应卡架构。自适应卡中的某些功能处于预览状态或设计为在 Bot Framework 之外使用。网络聊天不支持这些功能。
从 4.16.0 开始,不再支持 Internet Explorer。在 Internet Explorer 11 正式退役一年多后,我们决定停止支持 Internet Explorer。这将帮助我们为网络聊天带来新功能。 4.15.9 是最后一个以有限方式支持 Internet Explorer 的版本。
adaptiveCardsParserMaxVersion
Web Chat 4.12.1 补丁包含一个新的样式属性,允许开发人员选择最大自适应卡架构版本。有关代码更改,请参阅 PR #3778。
要指定不同的最大版本,您可以调整样式选项,如下所示:
window . WebChat . renderWebChat (
{
directLine ,
store ,
styleOptions : {
adaptiveCardsParserMaxVersion : '1.2'
}
} ,
document . getElementById ( 'webchat' )
) ;
PR #3703 中的 Web Chat 添加了新的辅助功能更新。默认情况下,此更改为转录本(粗体黑色边框)和aria-activedescendent
聚焦活动(黑色虚线边框)创建视觉焦点。在适用的情况下, transcriptVisualKeyboardIndicator...
值也将应用于轮播( CarouselFilmStrip.js
)子项。这样做是为了匹配自适应卡当前的默认焦点样式,该卡可能是轮播的子项。
要修改这些样式,您可以通过styleOptions
更改以下属性:
transcriptActivityVisualKeyboardIndicatorColor: DEFAULT_SUBTLE,
transcriptActivityVisualKeyboardIndicatorStyle: 'dashed',
transcriptActivityVisualKeyboardIndicatorWidth: 1,
transcriptVisualKeyboardIndicatorColor: 'Black',
transcriptVisualKeyboardIndicatorStyle: 'solid',
transcriptVisualKeyboardIndicatorWidth: 2,
上面的代码显示了您将在网络聊天中看到的默认值。
Web Chat API 已重构为单独的包。要了解更多信息,请查看 API 重构摘要。
从 Web Chat 4.7.0 开始,支持 Direct Line Speech,这是在 Web Chat 中提供集成语音功能的首选方式。我们正在努力缩小 Direct Line Speech 和 Web Speech API(包括认知服务和浏览器提供的语音功能)之间的功能差距。
从 Web Chat 4.6.0 开始,Web Chat 需要 React 16.8.6 或更高版本。
尽管我们建议您尽早升级主机应用程序,但我们知道主机应用程序可能需要一些时间才能更新其 React 依赖项,特别是对于大型应用程序。
如果您的应用程序尚未准备好使用 React 16.8.6,您可以按照混合 React 示例在您的应用程序中使用双主机 React。
网络聊天中有关语音和输入提示的行为预期发生了重大变化。详细信息请参阅4.5.0之前的输入提示行为部分。
查看迁移文档以了解如何从 Web Chat v3 进行迁移。
首先,使用 Azure 机器人服务创建一个机器人。创建机器人后,您将需要在 Azure 门户中获取机器人的 Web 聊天密钥。然后使用该密钥生成令牌并将其传递到您的网络聊天。
Web 聊天在 Direct Line 和 Direct Line 语音通道之上提供 UI。有两种方法可以通过客户端的 HTTP 调用连接到您的机器人:发送机器人密钥或通过密钥生成令牌。
我们强烈建议使用令牌 API,而不是向应用程序提供您的密钥。要了解更多原因,请参阅有关令牌 API 和客户端安全性的身份验证文档。
如需进一步阅读,请参阅以下链接:
将 Web 聊天与 Azure Bot 服务身份验证结合使用
增强的 Direct Line 身份验证功能
Web Chat 旨在使用 JavaScript 或 React 与您现有的网站集成。与 JavaScript 集成将为您提供适度的样式和可定制性选项。
您可以使用完整的、典型的 Web 聊天包(称为全功能包),其中包含最常用的功能。
以下是将网络聊天控件添加到您的网站的方法: