当前位置: 首页 > news >正文

界面控件DevExpress Blazor v26.1新版亮点 - Blazor AI Chat

DevExpress Blazor控件为使用C#为Blazor服务器和Blazor WebAssembly创建高影响力的用户体验,其附带了70+个原生的Blazor组件(包括DataGrid、Pivot Table、Scheduler、图表、数据编辑器和报表)。

在上文中(点击这里回顾>>)为大家介绍了DevExpress Blazor v26.1在辅助功能方面的增强,本文将继续介绍新版本中的Blazor AI Chat,希望能帮助到大家~欢迎点赞关注哦,不定期更新~

DevExpress新旧版本帮助文档下载可进QQ qun获取:169725316

Blazor AI Chat

与供应商无关的AI聊天

为了改善整体用户体验,并使AI聊天与常见的DevExpress Blazor模式保持一致,产品团队在v26.1中引入了一组突破性的更改。这些更改标准化了AI-Chat API界面,增加了与基于代理和不依赖供应商的模型的集成,并最大限度地减少了组件、模型和使用场景之间的配置冲突。

使用DevExpress Project Converter自动更新通用代码模式。请密切关注以下应用程序领域:

  • AI服务注册
  • 引用键控聊天服务或推理参数的组件配置
  • 编程消息处理
消息流增强功能

DevExpress Blazor AI Chat现在包括更灵活的消息发送事件模型,新的API为用户提供了对长时间运行的操作和自定义消息工作流的精确控制。使用它们来预处理用户输入、调用外部服务或将其他响应附加到聊天:

  • 调用AppendMessageAsync将消息添加到聊天历史记录中,而不将其发送到AI服务(例如,追加系统提示、助手消息或补充上下文)。
  • 使用SendMessageAsync方法将用户消息提交给聊天服务。
  • 调用ShowLoadingIndicatorAsync和HideLoadingindicatorAsSync方法,在耗时的操作期间显示内置加载指示器。

Razor

<DxAIChat MessageSending="OnMessageSending" /> @code { private async Task OnMessageSending(MessageSendingEventArgs args) { await args.Chat.AppendMessageAsync($"Translate message to Spanish", ChatRole.System); await args.Chat.ShowLoadingIndicatorAsync("Fetching additional context..."); /* ... */ await args.Chat.HideLoadingIndicatorAsync(); } }

用户可以处理MessageSending事件来记录用于诊断、遥测或审核目的的用户消息,该事件不拦截消息传递。除非明确取消,否则组件将继续发送和显示消息。

Razor

<DxAIChat MessageSending="LogUserMessages" FileUploadEnabled="true" /> @code { private async Task LogUserMessages(MessageSendingEventArgs args) { StringBuilder logMessage = new StringBuilder(); logMessage.AppendLine($@"User message: ""{args.Text}"""); if(args.Files != null && args.Files.Count > 0) { logMessage.AppendLine($"Attachments: {string.Join(", ", args.Files.Select(f => f.Name))}"); } LogConversationHistory(logMessage.ToString()); } }
AIContent API

DevExpress Blazor AI Chat公开在应用程序和AI服务之间传输的单个AIContent项目,用户可以使用自定义模板呈现丰富的内容,以编程方式提交结构化AI请求,并隐藏特定消息。

提供了以下新的API:

  • BlazorChatMessage.Contents:返回消息中包含的AIContent项的集合。
  • ResponseReceivedEventArgs.Messages:返回上次AI响应中的所有`BlazorChatMessage`对象。
  • DxAIChat.SendMessageAsync:将组合文本、图像、文档和其他内容类型的多模式消息发送到AI服务。
  • BlazorChatMessage.Visible:指定聊天历史记录中的消息可见性。

与推理模型一起使用时,BlazorChatMessage.Contents集合可以包括模型的思想链以及最终响应。在MessageContentTemplate中,检查消息内容来在聊天中检测和呈现这些想法。

Razor

<DxAIChat ResponseContentFormat="ResponseContentFormat.Markdown"> <MessageContentTemplate> @foreach(var item in context.Contents) { if(item is TextReasoningContent reasoning) { <details> <summary>Model Thoughts</summary> <p>@ToHtml(reasoning.Text)</p> </details> } else if(item is TextContent text) { <p>@ToHtml(text.Text)</p> } } </MessageContentTemplate> </DxAIChat> @code { private readonly HtmlSanitizer sanitizer = new HtmlSanitizer(); MarkupString ToHtml(string markdown) { string html = Markdown.ToHtml(markdown); html = sanitizer.Sanitize(html); return new MarkupString(html); } }
改进AI聊天打字体验

DevExpress Blazor AI Chat允许用户控制何时将输入文本与聊天消息缓冲区同步。

用户可以在每次击键、输入框失去焦点或用户在指定的间隔内停止键入后更新缓冲区,为其的特定使用方案选择最平衡响应性和处理负载的选项。在交互式Web部件和自动呈现模式中,延迟更新减少了输入时不必要的状态更改,并提高了较慢设备或资源密集型页面上的聊天响应能力。

Razor

<DxAIChat BindValueMode="BindValueMode.OnDelayedInput" InputDelay="1000" />
空聊天自定义

DevExpress Blazor AI Chat允许用户自定义对话开始前显示的文本:

  • EmptyMessageAreaText指定在空消息区域中显示的文本。
  • InputBoxNullText指定聊天输入框为空时的提示文本。

Razor

<DxAIChat EmptyMessageAreaText="How can I help you today?" InputBoxNullText="Ask a question or describe a task..." />
UI/UX增强

官方简化了空消息区域,来改善最初的DevExpress Blazor AI聊天体验。

http://www.jsqmd.com/news/1340459/

相关文章:

  • 上海青浦区初创企业财税公司靠谱推荐:创业初期怎么选才不踩坑? - 品牌品鉴馆
  • 高性价比白刚玉生产企业4大热门问题深度解答 - 资讯综合
  • 文件读取漏洞
  • 淘宝14次架构演进:从单体到云原生的千万并发实战
  • OmenSuperHub终极指南:解锁惠普暗影精灵笔记本的完整性能控制
  • 上新:推荐靠谱的乐高积木工厂 - 品牌推广大师
  • 科研翻译不踩坑✨OKBIYE专业学术翻译有多强?学生实测超好用
  • 生态协同再添新成果!国科环宇望获OS完成海光 C86-4G 3000 系列 CPU 兼容性认证
  • 无锡系统门窗厂家如何选择?别只看样本间,先看工厂、玻璃和质保体系 - 中国华商产业观察网
  • 从云端API受限到本地化部署:构建自主可控AI智能体的完整指南
  • Spark SQL distinct操作性能优化全攻略
  • MAA明日方舟自动化助手:从入门到精通的智能游戏管理方案
  • 别再让功耗“吃”掉你的续航!这款1.8V SPI NAND,专为低功耗
  • Helm Chart 入门实战:把一坨 K8s YAML 收敛成可传参的可复用模板
  • Trae创造力大赛:TOP2000礼物拆箱
  • 2026年自助洗车机安装方便的牌子推荐:驴充充1X-A凭实力领跑,赋能创业者稳健入场 - 自由和远方
  • UE5蓝图开发者C++环境配置:Visual Studio 2022与虚幻引擎5无缝集成指南
  • Burp Suite入门指南:Web安全测试核心工具的原理与实战应用
  • 2026 佛山厂区划线驾校划线实测,热熔标线交通标线划线经验 - LYL仔仔
  • IntelliJ IDEA新版Git集成深度解析:从界面操作到高效协作实战
  • 揭秘上海网站建设公司案例背后的真实逻辑与选对团队的避坑指南
  • 深入理解系统调用:从原理到实战编写可运行代码
  • JEnv:Java多版本环境管理的利器,告别手动切换JDK的烦恼
  • 2026 年重庆玻璃隔墙,双玻百叶隔断办公室翻新避坑实战分享 - LYL仔仔
  • Beyond Compare 5密钥生成器:3分钟搞定永久授权的终极指南
  • 2026最新| 分布光度计厂家推荐**TOP榜|多场景实测,科研与产线采购指南 - 商业新知
  • ZBlog宁静致远主题:提升内容展示与SEO的实战解析
  • 3分钟搞定外文网页阅读:DeepL翻译插件终极使用指南
  • JBang 编写Java脚本
  • 河源源城漏水检测维修公司推荐(2026 新)全城上门 - 超人防水