AABBbaby

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

界面控件 DevExpress v24.2 新版亮点 - 自定义和扩展 AI 驱动的扩展

DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 今年第一个重要版本v23.1正式发布,该版本拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场景问题。

DevExpress官方已正式发布v24.2,新版本针对人工智能(AI)方面的功能做了着重加强,欢迎下载最新版产品体验!

DevExpress技术交流群11:749942875      欢迎一起进群讨论

人工智能(AI)
自定义和扩展AI驱动的扩展

DevExpress v24.2的AI驱动扩展附带默认提示——官方鼓励您根据需要自定义这些提示,下面的例子创建了一个定制的WilliamShakespeareStyleExtension(基于ProofreadExtension),要定制提示符,覆盖GetSystemPrompt方法:

C#

public class WilliamShakespeareStyleExtension : ProofreadExtension {
public WilliamShakespeareStyleExtension(IServiceProvider serviceProvider) : base(serviceProvider) { }
protected override string GetSystemPrompt(ProofreadRequest request) {
return "Rewrite this text using a William Shakespeare style.";
}
}

要替换校对扩展的默认实现,请使用Register方法:

WinForms/WPF

AIExtensionsContainerDesktop.Default.Register<ProofreadRequest, WilliamShakespeareStyleExtension>();

Blazor/ASP.NET Core

builder.Services.AddDevExpressAI();
builder.Services.GetService<IAIExtensionsContainer>().Register<ProofreadRequest, WilliamShakespeareStyleExtension>();

要实现您自己的AI扩展,创建一个TextRequest和ChangeTextExtension类的后代:

WinForms/WPF

public class AuthoredStyleRequest : TextRequest {
public AuthoredStyleRequest(string Author, string Text) : base(Text) {
this.Author = Author;
}
public string Author { get; init; }
}

public class AuthoredStyleExtension : ChangeTextExtension<AuthoredStyleRequest> {
public AuthoredStyleExtension(IServiceProvider serviceProvider) : base(serviceProvider) { }
protected override string GetSystemPrompt(AuthoredStyleRequest request) {
return $"Rewrite this text in the {request.Author} style";
}
}
//This extension method allows you to resolve the extension from the extensions container at runtime
public static class CustomAIIntegration {
public static AuthoredStyleExtension CreateAuthoredStyleExtension(this IAIExtensionsContainer container){
return (AuthoredStyleExtension)container.GetExtension(typeof(AuthoredStyleRequest));
}
}

注册扩展:

WinForms/WPF

AIExtensionsContainerDesktop.Default.Register<AuthoredStyleRequest, AuthoredStyleExtension>();

Blazor/ASP.NET Core

builder.Services.AddDevExpressAI();
builder.Services.GetService<IAIExtensionsContainer>().Register<AuthoredStyleRequest, AuthoredStyleExtension>();

要在运行时调用自定义扩展,请使用以下代码片段:

WinForms/WPF

AuthoredStyleExtension extension = AIExtensionsContainerDesktop.Default.CreateAuthoredStyleExtension();

var request = new AuthoredStyleRequest("Mark Twain", textToModify);

//You can also set up the Temperature variable that will be used to execute this particular request
request.Options.Temperature = 0.9f;
string result = await extension.ExecuteAsync(request, CancellationToken.None);

Blazor/ASP.NET Core

AuthoredStyleExtension extension = builder.Services.GetService<IAIExtensionsContainer>().CreateAuthoredStyleExtension();

var request = new AuthoredStyleRequest("Mark Twain", textToModify);

//You can also set up the Temperature variable that will be used to execute this particular request
request.Options.Temperature = 0.9f;
string result = await extension.ExecuteAsync(request, CancellationToken.None);
管理长输入和AI响应

为了防止资源繁重的操作(在API成本和处理时间方面),新版本的实现基于AIIntegrationChatMaxTokensDefault属性值自动将大型内容分解为可管理的块(包括段落、句子、单词、标点符号和其他文本元素)。当用户选择的文本超过定义的限制时,系统会警告他们不能在单个操作中处理请求,并且系统会计算处理任务所需的阶段数。对话框出现后,用户可以选择按顺序处理文本并逐步查看结果,也可以选择同时完成所有操作。下图演示了该功能的实际操作:

DevExpress v24.2产品图

您还可以使用以下静态API成员来配置文本内容和图像的大小限制:

  • ChatMaxTokensDefault - 指定模型请求可以处理的tokens的最大数量,适用于所有DevExpress AI支持的扩展。
  • ChatTemperatureDefault - 指定基于聊天的AI扩展的默认温度。
  • ChunkMaxLength - 指定每个文本块中允许的最大字符数。
  • ImageBufferMaxSize - 指定每个请求的Base64图像的最大大小,以字节为单位。
  • TextBufferMaxSize - 指定每个请求的输入文本的最大大小,以字节为单位。
本地化

DevExpress AI支持的扩展可以本地化,通过本地化AI支持的扩展,您可以修改用户界面元素和预定义内容,以满足语言和文化偏好,还可以根据区域偏好自定义提示(例如,在使用单语言AI模型时)。

错误记录和处理

要显示用户友好的错误消息(从AI服务发送请求/接收响应时遇到的错误),实现IAIExceptionHandler接口并使用RegisterAIExceptionHandler方法在DevExpress扩展容器中注册它:

C#

using DevExpress.AIIntegration;
using DevExpress.AIIntegration.Extensions;

public class AIExceptionHandler : IAIExceptionHandler {
private readonly ILogger _logger;
public AIExceptionHandler(ILogger logger) {
this._logger = logger;
}
public Exception ProcessException(Exception exception) {
_logger.LogInformation($"An error occurred: {exception.Message}");
return new Exception ("Something went wrong. Please try again later.", exception);
}
}

WinForms/WPF

AIExtensionsContainerDesktop.Default.RegisterAIExceptionHandler(new AIExceptionHandler(new MyFavoriteLogger()));

Blazor/ASP.NET Core

builder.Services.AddSingleton<IAIExceptionHandler>(new AIExceptionHandler(new MyFavoriteLogger()));

posted on   AABBbaby  阅读(16)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
历史上的今天:
2022-01-14 移动应用组件DevExpress Xamarin v21.2新亮点 - 全新的VS项目模板
2021-01-14 如何打造时尚的移动应用界面,这款控件新功能可以了解一下!
2020-01-14 2020全新出发,DevExpress WPF 计划发布功能蓝图—Part 5
2019-01-14 使用DevExpress Reports和PDF Viewer创建AcroForm Designer
点击右上角即可分享
微信分享提示