DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

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

来源:   发布时间:2025-01-13   浏览:56次

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

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

DevExpress v24.2正式版下载

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()));

更多产品更新咨询,请戳这里直接咨询>>


更多DevExpress线上公开课、中文教程资讯请上中文网获取

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/5018.html

相关产品: DevExpress WPF Subscription, DevExpress WinForms Subscription, .NET开发框架eXpressApp Framework(XAF), DevExpress Universal Subscription, DevExtreme跨平台开发框架,

扫码咨询
电话咨询
023-68661681
返回
顶部