首页 > 其他分享 >界面控件 DevExpress v24.2 新版亮点 - 自定义和扩展 AI 驱动的扩展

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

时间:2025-01-14 09:32:29浏览次数:1  
标签:控件 string 自定义 AI DevExpress 扩展 request public

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

标签:控件,string,自定义,AI,DevExpress,扩展,request,public
From: https://www.cnblogs.com/AABBbaby/p/18670068

相关文章

  • Winform自定义控件与案例 - 打造炫酷的自定义开关按钮控件
    文章目录1、控件效果2、开关控件需求说明3、案例实现1、属性扩展代码实现2、控件外观绘制3、事件实现4、拓展方法4、案例演示5、总结1、控件效果2、开关控件需求说明在开发Winform应用程序时,拥有一个美观且功能强大的UI控件库是非常重要的。本文将详细介绍如......
  • Django Admin 自定义操作封装
    1.为什么需要封装?在Django开发中,我们经常需要在Admin界面添加自定义操作按钮,以便管理员执行特定的任务。通过封装,我们可以:减少重复代码统一管理自定义操作的逻辑提高代码的可维护性和可扩展性©ivwdcwso(ID:u012172506)2.CustomActionMixin的实现让我们看看C......
  • 【Python】深入解析Python的上下文管理器与资源管理:实现自定义的`with`语句
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界在现代编程中,资源管理的高效与安全性至关重要。Python通过上下文管理器与with语句为开发者提供了一种简洁而强大的资源管理机制。上下文管理器......
  • Qt 自定义控件(Qt绘图)
    一、QPaintEvent绘图事件1、QPaintEvent是Qt框架中一个重要的事件类,专门用于处理绘图事件。2、当Qt视图组件需要重绘自己的一部分时,就会产生QPaintEvent事件。3、Qt视图组件重绘自己,通常发生在以下情况: (1)、窗口第一次显示时:当窗口或控件第一次出现在屏幕上时,系统会生......
  • 20章12节:多元统计分析的可视化扩展包,从主成分分析到时间序列,从K-means聚类到广义线性
    多元统计分析中的数据可视化是科学研究与分析中不可或缺的一部分,它不仅能够帮助研究者直观地理解数据结构,还能为复杂的统计模型提供清晰的解释。然而,传统的R语言制图方法往往需要较高的学习成本,尤其是对于需要从多种统计包中提取结果并进行可视化的任务。基于此背景,作为一个构......
  • 24. 基于项的控件
    一、基于项的控件  PySide6有专门的显示数据的控件和存储数据的模型,可以显示和存储不同形式的数据。显示数据的控件分为两类,一类是基于项(item)的控件,另一类是基于模型(model)的控件,基于项的控件是基于模型的控件的简便类。基于项的控件把读取到的数据存储到项中,基于模型的控件......
  • 一个非常实用的Win系统瘦身项目,轻量好用,能去除预装应用程序,还能禁用那些偷偷摸摸收集
    Win经常我们都经常用,但系统里总是预装了一些我们可能并不需要的应用程序。这些应用不仅占用了宝贵的存储空间,还可能拖慢了我们的电脑速度。特别是Windows11,一些花里胡哨的功能和后台服务,让我们的电脑变得不那么“清爽”。今天给大家介绍一个非常实用的Win系统瘦身项目-Win11......
  • 【JAVA 基础 第(16)课】自定义异常类,会更帅哦
    自定义异常类   编译期异常类: class异常类名 extendsException{}   运行期异常: class异常类名extendsRuntimeException{}   类中添加两个构造方法:一个默认消息的构造方法,一个是指定消息的构造方法代码示例:自定义一个游戏输赢异常类publicclassNot_......
  • C语言常用数据类型和自定义数据类型的存储空间
    C语言常用数据类型和自定义数据类型的存储空间想知道各种数据类型的存储空间长度,编码测试,代码如下:注意:用到offsetof宏,在stddef.h头文件中定义,一定要包含进去!!!/*filename:sizeof.c*/#include<stdio.h>#include<stddef.h>//foroffsetofmacro/*compile:gccsizeof......
  • 数据虚拟化平台的可扩展性:在复杂数据生态中提供灵活性与集成能力
    随着数据存储的多样化以及应用程序的日益增多,全球企业正在面临越来越多的数据管理挑战。如今,数据被存储在各式各样的系统和格式中,从多个不同的应用程序中被访问和使用。这种数据增长不仅意味着更多的数据集成的机会,也意味着要访问这些数据所需的协议和方法日益增多,且这些变化的......