ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

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

2026/8/6 15:23:22 拓冰建站 浏览量
界面控件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获取169725316Blazor 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方法在耗时的操作期间显示内置加载指示器。RazorDxAIChat MessageSendingOnMessageSending / 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事件来记录用于诊断、遥测或审核目的的用户消息该事件不拦截消息传递。除非明确取消否则组件将继续发送和显示消息。RazorDxAIChat MessageSendingLogUserMessages FileUploadEnabledtrue / 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 APIDevExpress Blazor AI Chat公开在应用程序和AI服务之间传输的单个AIContent项目用户可以使用自定义模板呈现丰富的内容以编程方式提交结构化AI请求并隐藏特定消息。提供了以下新的APIBlazorChatMessage.Contents:返回消息中包含的AIContent项的集合。ResponseReceivedEventArgs.Messages:返回上次AI响应中的所有BlazorChatMessage对象。DxAIChat.SendMessageAsync将组合文本、图像、文档和其他内容类型的多模式消息发送到AI服务。BlazorChatMessage.Visible指定聊天历史记录中的消息可见性。与推理模型一起使用时BlazorChatMessage.Contents集合可以包括模型的思想链以及最终响应。在MessageContentTemplate中检查消息内容来在聊天中检测和呈现这些想法。RazorDxAIChat ResponseContentFormatResponseContentFormat.Markdown MessageContentTemplate foreach(var item in context.Contents) { if(item is TextReasoningContent reasoning) { details summaryModel Thoughts/summary pToHtml(reasoning.Text)/p /details } else if(item is TextContent text) { pToHtml(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部件和自动呈现模式中延迟更新减少了输入时不必要的状态更改并提高了较慢设备或资源密集型页面上的聊天响应能力。RazorDxAIChat BindValueModeBindValueMode.OnDelayedInput InputDelay1000 /空聊天自定义DevExpress Blazor AI Chat允许用户自定义对话开始前显示的文本EmptyMessageAreaText指定在空消息区域中显示的文本。InputBoxNullText指定聊天输入框为空时的提示文本。RazorDxAIChat EmptyMessageAreaTextHow can I help you today? InputBoxNullTextAsk a question or describe a task... /UI/UX增强官方简化了空消息区域来改善最初的DevExpress Blazor AI聊天体验。