RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

阿里云教程10小时前发布
1 11 0

#春日生活打卡季#

Delphi老粉的福利,从RAD Studio 12.2(Delphi2.3)开始,RAD Studio IDE中推出了第一个集成的AI解决方案,这就是人工智能智能CodeInsight。开发团队紧跟时代的发展,它集成了多个引擎,通过对话人工智能引擎智能CodeInsight,可以得到一些有趣的结果,提高编程效率。

RAD Studio 12.3中的人工智能智能CodeInsight

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

Embarcadero在12.2版本的RAD Studio IDE中推出了第一个集成的AI解决方案。这项名为Smart CodeInsight的技术提供了与不同LLM引擎进行交互的能力,有些是在线的,有些是离线的,但也可以通过特定的OpenToools API接口为其他人工智能引擎安装驱动程序。可用的引擎有:

  • OpenAI
  • Ollama (离线)
  • Gemini
  • Claude

从RAD Studio IDE调用LLM有两种主要方法:使用通用聊天窗口和编辑器中的特定命令,编辑器可以操作(并传递给AI)所选源代码作为提示的一部分。询问人工智能引擎智能CodeInsight如何工作是一个好主意,但是我得到了一些有趣的奇怪的回答,主要是解释Delphi LSP引擎。

新的聊天窗口

在RAD Studio 12.3发布的12.3中,Smart CodeInsight有几个增强功能,最显著的一个是在聊天中显示MarkDown而不是纯文本,提供了更具可读性的答案,如下图所示:

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

Smart CodeInsight聊天窗口的另一个变化是出现了两个新按钮(在窗格的底部),用于复制编辑器或当前单元中当前选定的文本。您可以使用按钮进行“直接粘贴”,而不是手动复制和粘贴。更好的是,您可以在请求中使用特殊的宏。键入您的请求,添加一个$并弹出一个包含可用符号的列表,包括编辑器中当前选定文本的$selection和编辑器中活动单元的整个代码的$Unit:

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

根据当前的编辑器选择,答案再次显示在聊天窗口中。下面是选择表单变量声明,并使用子句作为AI引擎后提示的结果:

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

新编辑器命令:查找单元/标题

IDE中另一个改善了人工智能体验的领域是编辑器。可用的命令以两种方式进行了扩展:第一,有一个新的Find Unit/Header选项(对于Delphi或C++),它可以协助您定位声明特定类型或符号的单元,也就是您需要添加到uses语句中以便能够编译代码的单元。假设您正在键入以下代码,其中有一个未定义的符号:

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

通过选择“TInifile”并发出命令Find Unit,您将在编辑器中获得以下输出:

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

你所需要做的就是把单元的名字添加到注释中(Sytem.IIniFiles)并将其粘贴到当前单元的uses语句中。目前,这并不是基于你实际的项目代码,而且只适用于人工智能被训练的代码中一般被引用的单元,但是发现它对于核心的Delphi RTL数据类型是相当可靠的。

编辑器和聊天

编辑器的另一个变化是能够将Ai请求的结果发送到支持MarkDown的chat,而不是编辑器中的评论,如上例所示。这可以通过编辑器Smart CodeInsight菜单中的选项进行配置,如下所示:

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

通过启用这个特性,您目前可以在编辑器中选择一些代码并发出一个命令(查找bug在这个例子中):

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

配置中的可用型号

在12.3版本中添加到Smart CodeInsight的最后一项新功能,与工具选项对话框中的功能配置有关。一旦您配置了一个AI服务(使用URL和您的凭证),您可以从一个根据请求填充的下拉列表中选择一个可用于特定服务的模型,而不是键入模型的名称。这是相关的,由于随着时间的推移,模型不断增加,我们不能提供一个修复列表:它将在我们发布新版本的那一天过时。(注意,虽然新的模型可以提供更好的结果,但是它们调用起来也可能不便宜)。在OpenAI的情况下,这个特性看起来是这样的:

RAD Studio 12.3(Delphi12.3)中的人工智能智能CodeInsight

概括起来

总之,智能CodeInsight架构提供了多个目标:一切都是可选的,默认情况下是禁用的;我们提供多个提供商,让您选择要启用的提供商;我们包括一个本地安装的离线解决方案,以最大限度地保护隐私。在这个版本中,我们改善了编辑器和聊天窗口的集成,并在聊天中启用了降价显示。开发团队将继续跟踪这一领域并增强这一功能,确保最大限度地尊重用户的知识产权和隐私,提供选择用户喜爱的人工智能引擎的能力,而不是强迫特定的供应商。

© 版权声明

相关文章

11 条评论

none
暂无评论...